Ubuntu v16.04 LTS
caffe v1.0.0-rc3
cuDNN v5.1.5
cuda v8.0
cuda patch v8.0
(02) 下載Caffe_SSD
$ git clone https://github.com/weiliu89/caffe.git caffe_SSD
$ cd ~/caffe_SSD
$ git checkout ssd
(03) 修改caffe的Makefile.config
$ cd ~/caffe_SSD
$ cp Makefile.config.example Makefile.config
$ sudo gedit Makefile.config
a. 啟用CUDNN,去掉"#"
USE_CUDNN := 1
b. 啟用GPU,將CPU_ONLY開頭加上"#"
# CPU_ONLY := 1
c. 搜尋lib位置
INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial/
$ cd /usr/lib/x86_64-linux-gnu
$ sudo ln -s libhdf5_serial.so.8.0.2 libhdf5.so
$ sudo ln -s libhdf5_serial_hl.so.8.0.2 libhdf5_hl.so
(04) 編譯Caffe_SSD
$ cd ~/caffe_SSD
$ mkdir build
$ cd build
$ cmake -D CUDA_USE_STATIC_CUDA_RUNTIME=OFF -D OpenCV_DIR=/usr/local/share/OpenCV ..
$ make all -j8
$ make install -j8
$ make pytest -j8
$ make pycaffe -j8
$ make runtest -j8
(05) 下載VggNet放在~/caffe_SSD/models/VGGNet/
https://gist.github.com/weiliu89/2ed6e13bfd5b57cf81d6
(06) 下載VOC2007和VOC2012的資料
$ cd
$ mkdir 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
(07) 設置環境變數
$ sudo gedit /etc/profile
在/etc/profile 最底下添加
export PYTHONPATH=$PYTHONPATH:$HOME/caffe_SSD/python
$ source /etc/profile
$ sudo reboot
(08) 創建LMDB檔案
$ cd ~/caffe_SSD
$ ./data/VOC0712/create_list.sh
$ ./data/VOC0712/create_data.sh
(09) 訓練與測試
$ sudo gedit ~/caffe_SSD/examples/ssd/ssd_pascal.py
修改gpus = "0,1,2,3"這一行,來決定使用的gpu數量
$ cd ~/caffe_SSD$ python examples/ssd/ssd_pascal.py
如果出現cudasuccess(2vs0)問題,則說明顯示卡計算量有線,再次打開caffe/examples/ssd/ssd_pascal.py修改batch_size = 32這一行
$ python examples/ssd/score_ssd_pascal.py
$ python examples/ssd/ssd_pascal_webcam.py