Ubuntu16.04+cuda8.0+cudnnV5.1 caffe SSD配置、训练及测试过程
2017-08-04 17:31
537 查看
Python版本可以按以下步骤DIY训练SSD
1.在/home/bay(您的服务器名字)/下新建ssd文件夹,在/home/bay/ssd/目录下clone作者github下的caffe文件包,执行以下命令:
2.配置caffe所需文件并进行编译
执行以下命令安装。
$ sudo apt-get install libopenblas-dev
tips2:如果在make all的时候出现/src/caffe/util/xxx.cpp报错,如io.cpp,bbox_util.cpp等报错问题,根据查到的一些资料显示可能是作者在生成ssd的时候用的是opencv2.0,而此处我用的是opencv3.2,这两个版本的opencv有很多不同的地方导致了这个错误,[Opencv 3.0环境下编译SSD的问题以及解决方法]。所以我按照下面的这种方法[Ubuntu 16.04 + Opencv3.0 + gtx1080 + caffe(SSD) + ROS(Kinetic)]
(http://blog.csdn.net/hh5945/article/details/53515564)可以配置成功:
3.下载预训练模型
4.下载VOC2007和VOC2012数据集
1.在/home/bay(您的服务器名字)/下新建ssd文件夹,在/home/bay/ssd/目录下clone作者github下的caffe文件包,执行以下命令:
$ git clone https://github.com/weiliu89/caffe.git $ cd caffe $ git checkout ssd (出现“分支”则说明copy-check成功...作者caffe目录下有三个分支fcn/master/ssd,利用git checkout来切换分支,否则只有master目录下的文件)
2.配置caffe所需文件并进行编译
1)因为make指令只能make Makefile.config文件,而Makefile.config.example是caffe给出的makefile例子,因此,首先执行以下命令将Makefile.config.example的内容复制到Makefile.config $ cp Makefile.config.example Makefile.config 2)打开并修改配置文件 $ sudo gedit Makefile.config#打开Makefile.config文件 根据个人情况修改文件: a.若使用cudnn,则 将#USE_CUDNN := 1修改成: USE_CUDNN := 1 b.若使用的opencv版本是2的,则 将#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 2 若使用的opencv版本是3的,则 将#OPENCV_VERSION := 3 修改为: OPENCV_VERSION := 3 c.若要使用Python来编写layer,则 将#WITH_PYTHON_LAYER := 1 修改为 WITH_PYTHON_LAYER := 1 d. 重要的一项 : 将# Whatever else you find you need goes here.下面的 INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 修改为: 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/hdf 这是因为ubuntu16.04的文件包含位置发生了变化,尤其是需要用到的hdf5的位置,所以需要更改这一路径. 3)修改makefile文件 打开makefile文件,做如下修改: 将: NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS) 替换为: NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS) 4)编译源代码 $ make -j 8 all $ make -j 8 runtest $ make -j 8 pycaffe #model是通过python编写的文件进行训练的 tips1:make: *** [.build_release/lib/libcaffe.so.1.0.0-rc3] Error 11./usr/bin/ld: 找不到 -lopenblas,编译过程找不到对应库文件。其中,-lxxx表示链接库文件 libxxx.so,通过执行命令 apt-get install libxxx-dev安装。
执行以下命令安装。
$ sudo apt-get install libopenblas-dev
tips2:如果在make all的时候出现/src/caffe/util/xxx.cpp报错,如io.cpp,bbox_util.cpp等报错问题,根据查到的一些资料显示可能是作者在生成ssd的时候用的是opencv2.0,而此处我用的是opencv3.2,这两个版本的opencv有很多不同的地方导致了这个错误,[Opencv 3.0环境下编译SSD的问题以及解决方法]。所以我按照下面的这种方法[Ubuntu 16.04 + Opencv3.0 + gtx1080 + caffe(SSD) + ROS(Kinetic)]
(http://blog.csdn.net/hh5945/article/details/53515564)可以配置成功:
$ cd ~/caffe $ make clean $ mkdir build $ cd build $ cmake .. $ make all -j16 $ make install $ make runtest $ make pycaffe
3.下载预训练模型
链接:http://pan.baidu.com/s/1miDE9h2 密码:0hf2 在/home/bay/ssd/caffe/models/下新建VGGNet文件夹,将它放入/home/bay/ssd/caffe/models/VGGNet/目录下
4.下载VOC2007和VOC2012数据集
1)在/home/bay/下新建data文件夹,放到/home/bay/data下 $ cd .. $ mkdir data $ cd data/ 2)下载数据集 $ 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 3)解压这三个文件,终端输入: $ cd /home/bay/data $ tar -xvf VOCtrainval_11-May-2012.tar $ tar -xvf VOCtrainval_06-Nov-2007.tar $ tar -xvf VOCtest_06-Nov-2007.tar(请严格按照这个顺序解压) 4)生成LMDB文件 终端输入: $ cd /home/bay/ssd/caffe $ ./data/VOC0712/create_list.sh $ ./data/VOC0712/create_data.sh 在运行第三步时如果出现no module named caffe或者是no module named caffe-proto 这是由于caffe的Python环境变量未配置好,可按照下面方法解决,在终端输入:
$ echo "export PYTHONPATH=/home/bay/ssd/caffe/python" >> ~/.profile $ source ~/.profile $ echo $PYTHONPATH #检查环境变量的值 然后再次执行生成LMDB文件命令,在data/VOC0712/中生成trainval.txt,test.txt, and test_ 9ae1 name_size.txt。 可以通过修改create_list.sh和create_data.sh来针对自己的数据集产生LMDB文件。 产生的trainval和test数据位于/home/bay/data/VOCdevkit/VOC0712/lmdb/VOC0712_trainval_lmdb和/home/bay/data/VOCdevkit/VOC0712/lmdb/VOC0712_test_lmdb。 1)训练 打开caffe/examples/ssd/ssd_pascal.py这个文件,找到gpus=’0,1,2,3’这一行,如果您的服务器有一块显卡,则将123删去,如果有两个显卡,则删去23,以此类推。如果您服务器没有gpu支持,则注销以下几行,程序会以cpu形式训练。(这个是解决问题cudasuccess(10vs0)的方法) #Ifnum_gpus >0: # batch_size_per_device =int(math.ceil(float(batch_size) / num_gpus)) #iter_size =int(math.ceil(float(accum_batch_size) / (batch_size_per_device * num_gpus))) # solver_mode =P.Solver.GPU # device_id =int(gpulist[0]) 保存后终端运行: $ cd /home/bay/ssd/caffe $ python examples/ssd/ssd_pascal.py 如果出现问题cudasuccess(2vs0)则说明您的显卡计算量有限,再次打开caffe/examples/ssd/ssd_pascal.py这个文件,找到batch_size =32这一行,修改数字32,可以修改为16,或者8,甚至为4,保存后再次终端运行 $ python examples/ssd/ssd_pascal.py 2)测试 终端输入: $ python examples/ssd/score_ssd_pascal.py(演示detection的训练结果,数值在0.718左右) 3)演示 演示网络摄像头识别效果,终端输入: $ python examples/ssd/ssd_pascal_webcam.py
相关文章推荐
- Ubuntu16.04 +gtx 1070+CUDA 8.0+ +caffe环境配置过程
- ubuntu16.04安装CPU版SSD及caffe配置,训练及测试过程
- Caffe + Ubuntu 15.04/16.04 + CUDA 7.5/8.0 在服务器上安装配置及卸载重新安装(已测试可执行)
- Ubuntu16.04,CUDA8.0,Caffe-ssd,OpenCV3.1配置指南(二)
- Ubuntu16.04,CUDA8.0,Caffe-ssd,OpenCV3.1配置指南
- Ubuntu16.04+CUDA8.0+caffe配置
- [Wiki]Ubuntu16.04+CUDA8.0编译Caffe过程
- ubuntu16.04+CUDA8.0+cuDNN5.1+opencv2.4.13+Anaconda的caffe编译过程
- Ubuntu16.04+Cuda8.0(gtx1060)+OpenCV2.4.13+anaconda2+caffe详细配置
- Ubuntu16.04+cuda8.0+cudnnV5.1配置faster-rcnn的方法
- ubuntu16.04 cuda8.0 opencv3.1 gtx1080 配置ssd
- Ubuntu16.04 +cuda8.0+cudnn+opencv+caffe+theano+tensorflow配置明细
- 深度学习框架Caffe配置:Ubuntu 16.04+CUDA8.0+cuDNN5.1+OpenCV3.1+Anaconda+Octave4.0.3
- Ubuntu16.04 CUDA8.0+caffe+gpu运行环境配置
- Ubuntu16.04下安装Cuda8.0+Caffe+TensorFlow-gpu+Pycharm过程(2018年1月23)
- Caffe+Ubuntu16.04+GTX1080+CUDA8.0+SSD配置+Loss曲线绘制
- Ubuntu16.04+CUDA8.0+caffe配置
- 看这一篇就够了ubuntu16.04,cuda8.0,cudnnV5.1,python2.7,opencv3.3+contrib,caffe
- Ubuntu16.04+CUDA8.0+cudnn7.5+Caffe安装过程
- Ubuntu16.04+CUDA8.0+caffe配置