SSD的配置安装

SSD的配置安装

SSD github地址:

https://github.com/weiliu89/caffe/tree/ssd#installation

安装文档:

http://blog.csdn.net/samylee/article/details/51822832

SSDSingle Shot MultiBox Detector 配置问题一览

http://blog.csdn.net/u010733679/article/details/52125597

电脑配置:

显卡英伟达1070CUDA8.0cudnn5


第一部分:安装SSD(caffe)

1、从github上下载caffe-ssd,解压

2、安装NVIDIA驱动和CUDA


3、安装caffe依赖

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler  python-pip python-dev python-opencv

4、安装Atlas

sudo apt-get install libatlas-base-dev

5、安装cudnn

https://developer.nvidia.com/cudnn

解压

tar -xzvf cudnn-****

cd cuda/lib64

sudo cp * /usr/local/cuda/lib64

cd ../include

sudo cp cudnn.h /usr/local/cuda/include

更新软链接

cd /usr/local/cuda/lib64 (sudo ln -s libcudnn.so libcudnn.so.5)

6、安装caffe

终端输入:

进入caffe根目录, 首先复制一份 Makefile.config , 然后修改里面的内容,主要需要修改的参数包括

USE_CUDNN 是是否使用cudnn加速

CPU_ONLY 是否只使用CPU模式,没有GPU没安装CUDA的同学可以打开这个选项

BLAS (使用intel mkl还是atlas)

MATLAB_DIR 如果需要使用MATLAB wrapper的同学需要指定matlab的安装路径如我的路径为  /usr/local/MATLAB/R2013b  (注意该目录下需要包含bin文件夹,bin文件夹里应该包含mex二进制程序)

DEBUG 是否使用debug模式,打开此选项则可以在eclipse或者NSightdebug程序


cd /home/**(您服务器的名字)/caffe
mkdir build
cd build
cmake ..
(cmake和..中间又一个 空格
make all -j8("‐j8"是使用 CPU 的多核进行编译,可以极大地加速编译的速度)
make install
make test
make runtest

make pycaffe(编译pycaffe)

 

第三部分:下载数据文件

1、 预训练模型下载

下载地址:链接:http://pan.baidu.com/s/1slpaEO9 密码:loxo

在caffe/models文件夹下新建文件夹,命名为VGGNet,将刚刚下载下来的文件放入这个VGGNet文件夹当中

2、下载VOC2007和VOC2012数据集

在主文件夹下(即/home/**(您服务器的名字)/)新建文件夹,命名为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
解压这三个文件,终端输入:
cd /home/**(您服务器的名字)/data
tar -xvf VOCtrainval_11-May-2012.tar
tar -xvf VOCtrainval_06-Nov-2007.tar
tar -xvf VOCtest_06-Nov-2007.tar
(请严格按照 这个顺序解压)

 

第四部分:生成LMDB文件

终端输入:
cd /home/**(您服务器的名字)/caffe
./data/VOC0712/create_list.sh
./data/VOC0712/create_data.sh

在运行第三步时如果出现no module named caffe或者是no module named caffe-proto,则在终端输入:

export PYTHONPATH=$PYTHONPATH:/home/**(您服务器的名字)/caffe/Python

然后再次运行第三步

 

第五部分:训练测试演示
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/**(您服务器的名字)/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

 

错误:使用cuda8编译时出错:

/usr/include/boost/property_tree/detail/json_parser_read.hpp:257:264: error: ‘type name’ declared as function returning an array

方法:因为gcc版本太低了,升级到5.3即可解决

首先添加ppa到库:

1 sudo add-apt-repository ppa:ubuntu-toolchain-r/test
2 sudo apt-get update

如果提示未安装,还需要先安装它的包:

1 sudo apt-get install software-properties-common

默认在系统中安装的是gcc-4.8,但现在都什么年代了万一有奇怪的更新呢,可以先升级一下,接着就可以选择安装gcc-4.9、gcc-5之类的啦!(注意目前gcc-5实际上是5.3.0,没有5.1或5.2可供选择)

1 sudo apt-get upgrade
2 sudo apt-get install gcc-4.8 g++-4.8
3 sudo apt-get install gcc-4.9 g++-4.9
4 sudo apt-get install gcc-5 g++-5

(非必须)现在可以考虑刷新一下,否则locate等命令是找不到的:

1 sudo updatedb && sudo ldconfig
2 locate gcc

如果是阿里云ECS等做了限制的或者是其他奇怪的系统上,你会发现  gcc -v 显示出来的版本还是gcc-4.8的,因此需要更新一下链接:

 1 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 48 \
 2 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8 \
 3 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.8 \
 4 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.8 \
 5 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.8
 6 
 7 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 49 \
 8 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9 \
 9 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-4.9 \
10 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-4.9 \
11 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-4.9
12 
13 update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 53 \
14 --slave /usr/bin/g++ g++ /usr/bin/g++-5 \
15 --slave /usr/bin/gcc-ar gcc-ar /usr/bin/gcc-ar-5 \
16 --slave /usr/bin/gcc-nm gcc-nm /usr/bin/gcc-nm-5 \
17 --slave /usr/bin/gcc-ranlib gcc-ranlib /usr/bin/gcc-ranlib-5

更新链接不仅仅是为了使用新安装的gcc版本,更重要的是以后可以随时切换。上面的命令是分为3块,每块对应相应的gcc版本,并不是要一股脑全复制粘贴进控制台运行。要注意反斜杠(\)前要有空格,因为它只提供换行的功能。

于是到这里升级gcc版本就已经完成了。

cuda8.0支持版本为gcc5.3,5.4不支持了,找到/usr/local/cuda/include/host_config.h,113行将3改成4即可。

命令行输入Python;再输入import caffe时,可能会报以下错误:

can not find module skimage.io

此时只要按照以下命令操作即可:
$ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython

$ sudoapt-get update


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值