我是Caffe的新手,如果有人指导我,我会很感激。我将使用convert_imagenet.cpp从jpg创建lmdb,但不能成功。 create.sh的内容如下:
#!/usr/bin/env sh
# Create the caltech101 lmdb inputs
# N.B. set the path to the caltech101 train + val data dirs
EXAMPLE=examples/caltech101
DATA=data/caltech101
TOOLS=build/tools
TRAIN_DATA_ROOT=examples/caltech101/caltech101_train/
VAL_DATA_ROOT=examples/caltech101/caltech101_train/
# Set RESIZE=true to resize the images to 256x256. Leave as false if images have
# already been resized using another tool.
RESIZE=true
if $RESIZE; then
RESIZE_HEIGHT=256
RESIZE_WIDTH=256
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_caltech101.sh to the path" \
"where the caltech101 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_caltech101.sh to the path" \
"where the caltech101 validation data is stored."
exit 1
fi
echo "Creating train lmdb..."
GLOG_logtostderr=1 $CAFFE_ROOT/build/tools/convert_imageset \
--resize_height=256 \
--resize_width=256 \
--shuffle \
$CAFFE_ROOT/examples/caltech101/caltech101_train/ \
$CAFFE_ROOT/data/caltech101/caltech101_train.txt \
$CAFFE_ROOT/examples/caltech101/caltech101_train_lmdb
echo "Creating val lmdb..."
GLOG_logtostderr=1 $TOOLS/convert_imageset \
--resize_height=256 \
--resize_width=256 \
--shuffle \
$CAFFE_ROOT/examples/caltech101/caltech101_train/ \
$CAFFE_ROOT/data/caltech101/caltech101_test.txt \
$CAFFE_ROOT/examples/caltech101/caltech101_test_lmdb
echo "Done."
此外,执行create.sh后,输出为:
root@samar-Dell-Precision-M3800:~/caffe# ./examples/caltech101/create_caltech101.sh
Creating train lmdb...
I0701 20:17:34.589217 3256 convert_imageset.cpp:86] Shuffling data
I0701 20:17:34.589913 3256 convert_imageset.cpp:89] A total of 84 images.
I0701 20:17:34.590143 3256 db_lmdb.cpp:35] Opened lmdb /home/samar/caffe/examples/caltech101/caltech101_train_lmdb
E0701 20:17:34.645048 3256 io.cpp:80] Could not open or find file /home/samar/caffe/examples/caltech101/caltech101_train/
I0701 20:17:34.768301 3256 convert_imageset.cpp:153] Processed 83 files.
Creating val lmdb...
I0701 20:17:34.787917 3258 convert_imageset.cpp:86] Shuffling data
I0701 20:17:34.788311 3258 convert_imageset.cpp:89] A total of 40 images.
I0701 20:17:34.788477 3258 db_lmdb.cpp:35] Opened lmdb /home/samar/caffe/examples/caltech101/caltech101_test_lmdb
I0701 20:17:34.872882 3258 convert_imageset.cpp:153] Processed 40 files.
Done.
创建了两个文件,包括caltech101_train_lmdb和caltech101_test_lmdb,但大小未知。
感谢您的大力帮助。
答案 0 :(得分:1)
首先,对所有变量使用绝对路径:
EXAMPLE
DATA
TOOLS
TRAIN_DATA_ROOT
VAL_DATA_ROOT
接下来,您似乎只有84张图片。如果是这种情况,您的数据库将非常小。请仔细检查您是否正确提供了培训和验证图像。您需要有两个文本文件 - 一个用于培训,另一个用于验证。在每个文件中,您将有两列。在每一行中,第一列包含图像的路径,第二列包含相应的标签。标签始终是一个数字。两列用空格分隔。
答案 1 :(得分:0)
用于lmbd中的create database:
创建火车数据文件夹 创建train.txt文件,包含文件名标签 创建验证数据文件夹 创建val.txt文件contatining filename和label
***编辑此文件examples / imagenet / create_imagenet.sh ***************: - )
RESIZE=true
./examples/imagenet/create_imagenet.sh
string = 'Special $#! characters spaces_ 888323.mp4'