1. 程式人生 > >Jetson TX2學習筆記(二):caffe安裝配置

Jetson TX2學習筆記(二):caffe安裝配置

我需要在caffe上執行深度學習程式,因此在這裡把caffe GPU在jetson tx2(下稱TX2主機)安裝的過程記錄下來。

由於JetPack中自帶CUDA、OpenCV和CuDNN,在完成TX2主機JetPack安裝後(教程可參見我的前一篇博文https://blog.csdn.net/u012614287/article/details/81509677),安裝caffe for python(GPU)的過程比在一般PC安裝的過程簡單一些。主要可概括為以下幾步:1.安裝依賴項。2.從git上下載caffe原始碼。3.根據需要修改配置檔案。4.編譯原始碼。5.針對python安裝部分caffe的python介面。

詳述見下文。

一、安裝依賴項。
caffe有許多依賴項,這裡我不加解釋的將其列出,這步寧多勿缺,未曾有問題出現。在TX2主機的ubuntu16.04環境中可以將這些程式碼寫在指令碼檔案中一次執行,以下是我安裝依賴指令碼檔案(dependency.sh)的內容。

# general dependency
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev

# BLAS dependency
sudo apt-get install libatlas-base-dev # python dependency sudo apt-get install python sudo apt-get install python-dev # python dependency etc. sudo apt-get install python-numpy sudo apt-get install ipython sudo apt-get install ipython-notebook sudo apt-get install python-sklearn sudo apt-get install python-skimage sudo apt-get
install python-protobuf # google dependency sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev

接下來輸入命令./dependency.sh執行該指令碼,等待依賴安裝完成。至此依賴安裝結束

二、從git上下載caffe原始碼。
如果TX2主機上沒有事先安裝git,可以通過以下命令安裝。

sudo apt-get install git

接下來可以cd至希望caffe原始碼儲存的目錄,使用以下命令將caffe原始碼down下來。

git clone https://github.com/BVLC/caffe.git

原始碼安裝完成

三、根據配置需要修改配置檔案。
在開始編譯之前,需要進入caffe目錄修改’Makefile.config’和’Makefile’兩個配置檔案。

Makefile.config檔案通過複製Makefile.config.example檔案得到,根據我的需求,對該檔案做了以下改動
1.使用CuDNN(取消USE_CUDNN := 1前的‘#’)
2.使用OpenCV v3(取消OPENCV_VERSION := 3前的‘#’)
3.由於使用的是CUDA9版本,按要求修改了程式碼(刪除了CUDA_ARCH變數的前兩行,具體可看配置檔案裡該變數的前幾行)。
4.使用python介面(取消WITH_PYTHON_LAYER := 1變數前的’#’)
5.修改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 

Makefile檔案作出的改動如下:

將:
NVCCFLAGS +=-ccbin=$(CXX) -Xcompiler-fPIC $(COMMON_FLAGS)
替換為:
NVCCFLAGS += -D_FORCE_INLINES -ccbin=$(CXX) -Xcompiler -fPIC $(COMMON_FLAGS)
將:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_hl hdf5
改為:
LIBRARIES += glog gflags protobuf boost_system boost_filesystem m hdf5_serial_hl hdf5_serial

配置檔案修改完成

四、編譯原始碼
caffe原始碼目錄下執行編譯命令

make all -j8

執行測試

sudo make test -j8
sudo make runtest -j8

如果沒有異常,則caffe安裝完成,但由於沒安裝pycaffe介面,依然無法在python中匯入caffe。需要編譯caffe的python介面pycaffe,執行sudo make pycaffe命令(如遺漏這步,可能導致no module named _caffe錯誤如下圖):
這裡寫圖片描述

此時需要在~/.bashrc檔案中寫入caffe的路徑,在檔案下方寫入(遺漏這步可能導致no module named caffe)

export PYTHONPATH=~/caffe/python:$PYTHONPATH

然後使用source ~/.bashrc使環境變數生效即可。至此caffe for python在TX2主機安裝完成!

這裡寫圖片描述