用了大概兩周的時間,終于完成了ubuntu16.04上caffe的配置,并成功實作了ssd的訓練。
百般艱辛,特作總結。
一、所用環境及版本
版本比對非常重要,在這一步浪費了很多時間。以下是我所用的版本。
ubuntu16.04,python2.7(系統自帶)。(不推薦用python3,貌似支援很不好)
cuda 8.0.61_375.26(官網還有個補充包,沒安裝那個)。 cudnn5。驅動 Nvidia-Linux-x86_64_384.111
opencv 3.4.0 (推薦用opencv3,最開始用的opencv2,編譯的時候缺少lib,換了3就好了)
make的時候還缺少兩個lib,分别是libpng-1.6.34,zlib-1.2.9,網上說這個也要版本比對,供參考。
二、caffe的配置
官方:http://caffe.berkeleyvision.org/installation.html
1、關于GPU
cuda和驅動是之前配置tf的時候裝好的,網上教程良莠不齊,甚至有錯誤的,可以參考:
http://blog.csdn.net/cdwxx1234/article/details/75121562
http://blog.csdn.net/u013502004/article/details/72876134
這是我感覺最全面有效的兩篇文章。
安裝的時候注意:1,版本問題。cuda最好用8.0, 9.0有的時候不相容。
2、在控制台下安裝,不能使用圖形界面。
caffe貌似不支援cudnn6,我改成了cudnn5就沒問題了。
2、make之前的準備
主要是修改檔案:Makefile和Makefile.config
Makefile中需要修改的有:
LIBRARIES = ..........(可能導緻之後的找不到lib的問題)
PYTHON_LIBRARIES ?= boost_python python2.7
Makefile.config中需要修改的有:
use_cudnn, opencv_version等
最重要的是70行左右的Python路徑的修改,即 PYTHON_INCLLUDE :=.............. 以及是否使用anaconda(最好使用系統自帶的,比較友善)
with_python_layer := 1
INCLUDE_DIRS := 和LIBRARY_DIRS :=
其他需要修改的記不清了,有什麼問題網上都有解決辦法
關于make中的一些問題:
Q:make all時:對boost未定義的引用。
A:添加boost_regex到makefile中。在makefile第260行左右添加boost_regex至 LIBRARIES += boost_thread stdc++,結果為LIBRARIES += boost_thread stdc++ boost_regex
Q:找不到pyconfig.h
A:參考http://blog.csdn.net/wangkun1340378/article/details/77949130
三、opencv3的編譯安裝
按照網上教程即可,最後注意把路徑導入。
四、SSD的配置
官方:https://github.com/weiliu89/caffe/tree/ssd
1、若caffe已經編譯安裝完成,則直接将caffe下的makefile和makefile.config複制過來即可。
2、若提示no module named caffe, 則: export PYTHONPATH=$PATHONPATH:/home/user/caffe/python
3、若使用python2,需要将creat_data.sh中的24行改為python2
4、訓練之前,根據自己的配置修改ssd_pascal.py,具體見:http://blog.csdn.net/samylee/article/details/51822832