从环境搭建开始:
在文件夹目录下输入:git clone https://github.com/weiliu89/caffe.git 下载SSD版本的caffe
发现这样只执行这个git clone 有一些文件会缺失,导致后面制作数据的时候需要的文件没有。所以需要再运行下面两条命令
cd caffe
git checkout ssd
这样就可以了,再进行编译
又试了下像fasterrcnn那样加参数git clone --recursive参数试了下还是不行,
因为之前对caffe已经配过一遍了,一些细节就不说了,我只记录一下我修改的东西和内容,方便我以后换了实验环境进行重新搭建。
因为是ubuntu16.04所以搭建caffe这个跟ubuntu14不太一样,需要改一些地方,别的博客里也有提到。
我就直接把之前改过的编译好的Makefile.config 和Makefile复制了一份过来
修改Makefile.config的部分
备份一份cp Makefile.config.example Makefile.config
根据自己情况解除注释:USE_CUDNN := 1 OPENCV_VERSION := 3 WITH_PYTHON_LAYER := 1
报错:# Whatever else you find you need goes here.
这里主要是hdf5的问题,没安装成功的重新安装hdf5,安装好以后把这边的包含目录改好,安装hdf5在http://blog.csdn.net/bankeey/article/details/76280646里面有。
这是我的目录环境,仅供参考,我这里贴出来是为了我方便以后用哈
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial
修改Makefile的部分:
将:NVCCFLAGS+=-ccbin=$(CXX)-Xcompiler-fPIC $(COMMON_FLAGS)
替换为:NVCCFLAGS+=-D_FORCE_INLINES-ccbin=$(CXX)-Xcompiler-fPIC $(COMMON_FLAGS)
编辑/usr/local/cuda/include/host_config.h
将其中的第115行注释掉:
将
#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
改为
//#error-- unsupported GNU version! gcc versions later than 4.9 are not supported!
重新编译发现编译有好多坑,再记录一下出现的问题和解决方法。
报错collect2: error: ld returned 1 exit status
Makefile:619: recipe for target '.build_release/tools/upgrade_net_proto_binary.bin' failed
make: *** [.build_release/tools/upgrade_net_proto_binary.bin] Error 1
搜了一下解决方法:
cd build
cmake ..
make all
make test
make runtest
make pycaffe
make distribute(这一步有问题)然后又cd回caffe目录下,make了一下没报错,暂时算他编译成功了。有问题再回来补充。
试了一下其他博客的测试caffe是否成功方法:
cd caffe/python
python
import caffe 没报错就是编译成功
看github上回复说,只要make 没报错就算编译成功。不用管make test那些。
下载预训练模型:
git上的网址:https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6
下载完成后保存在目录:caffe/models/VGGNet/
下载完成后:
下载VOC2007和VOC2012数据集, 放在/data目录下:
cd 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
对下载的数据进行解压
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
之前搭建pva环境的时候下载过VOCdevkit2007,这三个数据太大,网速比较慢,我就不下载了
主要是参考数据格式。VOC的数据格式就是在VOC文件夹下:准备三个文件夹
Annotations里面放标注好的xml文件使用的这个工具,参考http://blog.csdn.net/jesse_mx/article/details/53606897。
ImageSets 下的Main文件夹里面放 test.txt train.txt trainval.txt val.txt这四个txt文件里面是几种数据集的图片编号
JPEGImages 下放没处理的原始图片。
问题处理:
1、
.sh文件的执行权限不够
修改权限 chmod u+x *.sh
2、
./create_data.sh的时候、运行ssd_pascal.py报错AttributeError: 'module' object has no attribute 'LabelMap'
需要加python环境变量。export PYTHONPATH=$caffe_root/python:$PYTHONPATH
from __future__ import print_function
import sys
sys.path.insert(0,'/data/SSD/caffe/python')
import caffe
3、
利用caffe自带的脚本绘制loss和accuracy曲线
参考
http://blog.csdn.net/u013078356/article/details/51154847
注意的是最好把plot_training_log.py.example名字改为plot_training_log.py,然后
python plot_training_log.py 0 save.png my.log