深度學習框架Caffe在Ubuntu下編譯安裝

  國內相關教程都互相借鑑大同小異,於是連出錯的方式也雷同,所以借鑑了國外多個技術論壇,寫一篇配置教程。

環境:
操作系統: 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

mk1
  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  

mk2

6.修改 caffe 目錄下的 Makefile 文件:
  6.1 修改LIBRARIES

LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

mk3

  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.hcaffe.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 

caffe-make
9.編譯成功後可運行測試:

sudo make runtest 

這裏寫圖片描述

注:編譯和安裝遇到更多問題請參考:Ubuntu下編譯caffe解決方案總結

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章