Caffe-GPU 在 Ubuntu 下的安裝

1. 前期準備

2. 配置 Caffe-gpu

2.1 安裝 caffe 依賴項

sudo apt install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt install --no-install-recommends libboost-all-dev
sudo apt install libopenblas-dev liblapack-dev libatlas-base-dev
sudo apt install libgflags-dev libgoogle-glog-dev liblmdb-dev

2.2 下載 Caffe

git clone [email protected]:BVLC/caffe.git
cd caffe

2.3 修改 Makefile.config 文件

由於 make 指令只能 make Makefile.config 文件,而 Makefile.config.example 是 caffe 給出的 makefile 例子。因此,首先將 Makefile.config.example 的內容複製到 Makefile.config:

sudo cp Makefile.config.example Makefile.config

2.3.1 打開開關

如果需要使用 cudnn,則打開 cudnn 註釋;如果使用 opencv3,則打開 opencv3 的註釋;如果需要使用 python 編寫 layer,則打開 python 開關,如下:

#USE_CUDNN:= 1 =====> USE_CUDNN:= 1
#OPENCV_VERSION:= 3 =====> OPENCV_VERSION:= 3
#WITH_PYTHON_LAYER:= 1 =====> WITH_PYTHON_LAYER:= 1

2.3.2 一個重要的修改

因爲 Ubuntu18.04 的文件包含位置發生了變化,尤其是需要用到的hdf5的位置,所以需要更改這一路徑。將 #Whatever else you find you need goes here. 下面的內容按照如下方式修改:

INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include =====> INCLUDE_DIRS:= $(PYTHON_INCLUDE) /usr/local/include /usr/include/hdf5/serial
LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib =====> LIBRARY_DIRS:= $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu /usr/lib/x86_64-linux-gnu/hdf5/serial

2.4 修改 Makefile 文件

NVCCFLAGS += -ccbin=$(CXX) -Xcompiler-fPIC$(COMMON_FLAGS) =====> NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)

2.5 編譯 caffe

編譯指令如下:

make all -j8

如果中間出現編譯錯誤,一定要耐心尋找解決方案,解決方案主要是修改 Make.config 文件和 Makefile 文件,修改之後,先清除錯誤編譯,再重新編譯:

sudo make clean
make all -j8

2.6 趟坑記錄

下面記錄了一些我遇到過的一些坑

2.6.1 nvcc fatal

編譯過程中錯誤提示如下:

NVCC src/caffe/layers/bnll_layer.cu
nvcc fatal   : Unsupported gpu architecture 'compute_20'
Makefile:594: recipe for target '.build_release/cuda/src/caffe/layers/bnll_layer.o' failed
make: *** [.build_release/cuda/src/caffe/layers/bnll_layer.o] Error 1
make: *** Waiting for unfinished jobs....

修改 Makefile.config 中的 CUDA_ARCH 的設置,由於我的 CUDA 版本是 10.0,所以將以下兩行刪除或者註釋掉,如下:

2.6.2 Makefile:635

編譯過程中報錯如下:

Makefile:635 recipe for target ‘.build_release/tools/convert_imageset.bin’ failed

修改 Makefile 文件,在

LIBRARIES += opencv_core opencv_highgui opencv_imgproc

後面添加 opencv_imgcodecs,如下

3. 測試

Caffe 配置完成後,利用 MNIST 數據集進行測試。進入 caffe 編譯目錄,執行以下命令:

./data/mnist/get_mnist.sh
./examples/mnist/create_mnist.sh
./examples/mnist/train_lenet.sh

測試效果如下:

也可以按照以下方式,直接編譯 runtest 文件:

make runtest

看到如下結果,則說明 caffe 已經安裝成功

 

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