國內相關教程都互相借鑑大同小異,於是連出錯的方式也雷同,所以借鑑了國外多個技術論壇,寫一篇配置教程。
環境:
操作系統: Ubuntu 16.04
GCC/G++:5.4.0
CUDA:9.0.252
OpenCV: 2.4.11和3.3.1
Matlab :R2014b(a)
Python: 2.7
1.在安裝的路徑下 clone :
git clone https://github.com/BVLC/caffe.git
2.進入 caffe ,Makefile.config.example是caffe給出的makefile例子
cd caffe/
3.Makefile.config.example 只是caffe 給出的配置文件例子,不能用來編譯 caffe。將 Makefile.config.example 文件複製一份,更名爲 Makefile.config 。編譯 caffe 時需要的是 Makefile.config
文件:
sudo cp Makefile.config.example Makefile.config
4.修改 Makefile.config 文件,在 caffe 目錄下打開該文件:
sudo gedit Makefile.config
5.修改 Makefile.config 文件內容
5.1 取消應用 cudnn的註釋
USE_CUDNN := 1
5.2 應用 opencv 版本
OPENCV_VERSION := 3
5.3 使用 python 接口
WITH_PYTHON_LAYER := 1
5.4 修改 python 路徑
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
6.修改 caffe 目錄下的 Makefile 文件:
6.1 修改LIBRARIES
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial
6.2 修改NVCCFLAGS
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
7.修改 /usr/local/cuda/include/host_config.h
文件 :
添加註釋
#error -- unsupported GNU version! gcc versions later than 5 are not supported!
7.1 出現caffe.pb.h丟失問題解決方法
原因一:make太快造成的錯誤
make all -j
改爲 make all
原因二:丟失問題
①用protoc從caffe/src/caffe/proto/caffe.proto
生成caffe.pb.h
和caffe.pb.cc
②首先安裝protobuf
sudo apt-get install protobuf-compiler libprotobuf-dev libprotoc-dev
③再而安裝protobuf-c
sudo apt-get install libprotobuf-c0-dev protobuf-c-compiler
cd caffe/src/caffe/proto/#進入proto目錄下
`rotoc --cpp_out=/home/cow/caffe/include/caffe/ caffe.proto#生成文件
一般都是環境變量配置問題較多,所以一定要提前把config配置好。深度學習框架caffe需要的準備條件嚴格,容易出現問題。編譯caffe出現的問題可以出一套集錦了。
最好使用make clean
命令清除編譯結果,避免出現其它未知問題
8.開始編譯,在 caffe 目錄下執行 :
make all
9.編譯成功後可運行測試:
sudo make runtest
注:編譯和安裝遇到更多問題請參考:Ubuntu下編譯caffe解決方案總結