在caffe root/examples/imagenet中有个create_imagenet.sh文件,我们将其复制到我们的build_lmdb文件夹下重命名为create_mynet.sh,然后对其中需要修改的地方进行修改:
其中EXAMPLE=myfile/build_lmdb改为自己文件的路径
DATA=myfile/datatest,改为自己的路径
TRAIN_DATA_ROOT和TRAIN_DATA_ROOT修改到路径datatest,这里因为train.txt文件的路径是从datatest开始的
TOOLS保持不变
resize是调整其大小为224*224
#!/usr/bin/env sh
# Create the imagenet lmdb inputs
# N.B. set the path to the imagenet train + val data dirs
set -e
EXAMPLE=mydata/ResNet-18/build_lmdb/
DATA=mydata/ResNet-18/dataset/
TOOLS=build/tools
TRAIN_DATA_ROOT=/home/llp/caffe/mydata/ResNet-18/dataset/train
VAL_DATA_ROOT=/home/llp/caffe/mydata/ResNet-18/dataset/val
# Set RESIZE=true to resize the images to 256x256. Leave as false if images have
# already been resized using another tool.
RESIZE=false
if $RESIZE; then
RESIZE_HEIGHT=224
RESIZE_WIDTH=224
else
RESIZE_HEIGHT=0
RESIZE_WIDTH=0
fi
if [ ! -d "$TRAIN_DATA_ROOT" ]; then
echo "Error: TRAIN_DATA_ROOT is not a path to a directory: $TRAIN_DATA_ROOT"
echo "Set the TRAIN_DATA_ROOT variable in create_imagenet.sh to the path" \
"where the ImageNet training data is stored."
exit 1
fi
if [ ! -d "$VAL_DATA_ROOT" ]; then
echo "Error: VAL_DATA_ROOT is not a path to a directory: $VAL_DATA_ROOT"
echo "Set the VAL_DATA_ROOT variable in create_imagenet.sh to the path" \
"where the ImageNet validation data is stored."
exit 1
fi
echo "Creating train lmdb..."
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
echo "Creating val lmdb..."
GLOG_logtostderr=1 $TOOLS/convert_imageset \
--resize_height=$RESIZE_HEIGHT \
--resize_width=$RESIZE_WIDTH \
--shuffle \
$VAL_DATA_ROOT \
$DATA/val.txt \
$EXAMPLE/ilsvrc12_val_lmdb
echo "Done."
cd caffe
sh ./mydata/ResNet-18/build_lmdb/create_imagenet.sh