记录一下训练SSD过程中所遇到的问题。
1,下载Caffe
git clone https://github.com/weiliu89/caffe.git
cd caffe
git checkout ssd
2,编译Caffe
第一步:
cp Makefile.config.example Makefile.config
这是复制原有配置文件,生成新的配置文件。
第二步:
make -j8
make py
make test -j8
make runtest -j8
可能遇到的问题:
make -j8时报错:在Caffe目录里打开Makefile.config文件,看到首行:
把CUDNN前面的#号去掉,把OPENCV前面的#号去掉,OPENCV = 1。
把最后3行,就是60,61这三行前面加个#号注释掉,降低版本。具体是什么原因不知道,但是可解决第一个make命令报错的问题。最后一个make命令,执行过程可能很久,耐心等待就好。
make编译错误后,记得用make clean清除编译生成的东西。
3,下载相关文件
第一步:下载VGGNet的模型,并放到Caffe根目录的models目录,这里可能会没有VGGNet这个文件夹,新建一个,把下载的东西放在这个文件夹里。
第二步:下载和解压数据集
# Download the data.
cd $HOME/data
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
# Extract the data.
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
可以直接解压,也可以放在新建的data文件夹里。
4,生成LMDB文件
cd $CAFFE_ROOT #这是指打开根目录
./data/VOC0712/create_list.sh
(如果执行这条命令,我们发现系统提示无法找到create_list.sh文件,这是因为下载Caffe的那个阶段没执行git checkout ssd命令,重新开始,每条命令都不要遗漏了。)
系统又报错了:
我们打开create_list.sh看看:第一行是root_dir=$HOME/data/VOCdevkit/
,这里需要修改我们之前解压的那三个数据包的路径,例如我的就改成
root_dir=/raid/wangw/VOCdevkit/
同时要注意,如果你只用了其中的一个数据集要在
for name in VOC2007 VOC2012
这里进行修改,去掉你没有使用的那个数据集。
再次执行./data/VOC0712/create_list.sh
,又报错了:
这是指没有get_image_size这个文件,打开create_list.sh看看第41行是什么情况