linux下的create_lmdb.sh内容如下:
#!/usr/bin/env sh
MY=examples/myfile
echo "Create train lmdb.."
rm -rf $MY/img_train_lmdb
build/tools/convert_imageset \
--shuffle \
--resize_height=256 \
--resize_width=256 \
/home/xxx/caffe/data/re/ \
$MY/train.txt \
$MY/img_train_lmdb
echo "Create test lmdb.."
rm -rf $MY/img_test_lmdb
build/tools/convert_imageset \
--shuffle \
--resize_width=256 \
--resize_height=256 \
/home/xxx/caffe/data/re/ \
$MY/test.txt \
$MY/img_test_lmdb
echo "All Done.."
没有找到windows下的create_lmdb.bat,就自己写了个。
原始图像在data\re\train和data\re\test下,
带类别标号的文件列表在train.txt和test.txt中,
最后创建的lmdb文件在img_train_lmdb和img_test_lmdb中:
@set rootp=d:\deep_learning\caffe-windows-master
@set MY=%rootp%\examples\myfile
@echo Create train lmdb..
rd /S /Q "%MY%/img_train_lmdb"
%rootp%\bin\convert_imageset %rootp%\data\re\ %MY%\train.txt %MY%\img_train_lmdb
@echo Create test lmdb..
rd /S /Q "%MY%/img_test_lmdb"
%rootp%\bin\convert_imageset %rootp%\data\re\ %MY%\test.txt %MY%\img_test_lmdb
@echo All Done..
pause
运行create_lmdb.bat创建完成后,查看如下目录的data.mdb,如果只有几kb就是失败了
test的data.mdb要小一点
注意2个data.mdb的大小差不多是4:1的关系,这是对的,因为原始图片数量也是4:1的关系。
特别注意:conver_imageset.cpp编译时最好在里面写上resize_height=256和resize_width=256,否则默认值是0的:
int resize_height = std::max<int>(0, FLAGS_resize_height);
int resize_width = std::max<int>(0, FLAGS_resize_width);
int resize_height = std::max<int>(256, FLAGS_resize_height);
int resize_width = std::max<int>(256, FLAGS_resize_width);