在编译成功后的 ./build/tools/目录下(windows下面是caffe-windows\bin)有一个convert_imageset或者convert_imageset.sh,这个工具就是用来将自己的图片数据转换为Caffe所需要的数据格式。
打开看看,里面有一段:
GLOG_logtostderr=1 $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$TRAIN_DATA_ROOT \
$DATA/train.txt \
$EXAMPLE/ilsvrc12_train_lmdb
我用的是alexnet,照着上面的改就好了。训练数据生成(默认生成mdb文件,也可以生成leveldb):
bin\convert_imageset.exe examples/Car/dataset/trainImages/ examples/Car/dataset/Train.txt examples/Car/dataset/Train4_mldb --resize_width=227 --resize_height=227格式应该是:
convert_imageset.exe trainImages_path(图片路径)
Train.txt(每行写一个图片名称和类别,例如 第一行neg-0.png 0,第二行neg-1.png 0 第500行 pos-1.png 1)
Train4_mldb(生成文件mdb文件路径 )
--resize_width(图片宽)=227
--resize_height(图片高)=227
这两个参数--resize_width --resize_height必须要带,不然训练的时候的blob的weight和height和预期的不一样,大家试试就知道了。因为里面没有设置图片的宽度和高度,而默认的是0,所以这样创建的数据库文件是无法使用的
默认生成的是mdb文件,我生成的是data.mdb 和lock.mdb
如果想要生成leveldb文件,就直接在命令行加上 --backend=leveldb就好了