1. 程式人生 > >CPU only Caffe安裝全教程(含matcaffe與pycaffe介面)

CPU only Caffe安裝全教程(含matcaffe與pycaffe介面)

    最近需要對原來的專案進行優化,而之前做實驗所用的電腦已被淘汰,無奈只好重灌各種環境。本篇對caffe的安裝做了個梳理,一是給自己做筆記,二是希望能借此幫到有需要的人。由於當前機器上已經裝了cuda與cudnn,所以本篇部落格不對這些內容進行介紹,對如何安裝cuda和cudnn感興趣的朋友可以參考我的另一篇部落格Ubuntu 14.04環境下安裝CUDA 8.0及Cudnn 5.1

安裝環境

Ubuntu 14.04 + Matlab R2015a(連結:https://pan.baidu.com/s/1pM35pV1 密碼:tc4i)

安裝步驟

1. Prerequisites安裝

需要安裝ATLAS、protobuf、glog、gflags以及hdf5等依賴包。

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

2. 下載caffe原始碼

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

如果還未安裝git,則先安裝git

sudo apt-get install git

3. 編譯caffe

caffe原始碼下載完畢後,進入caffe根目錄,複製一份配置檔案Makefile.config.example,並重命名為Makefile.config。對caffe的編譯選項設定都是通過更改複製項Makefile.config實現的。

cp Makefile.config.example Makefile.config
由於當前機器上已安裝配置了cuda與cudnn,故在我的配置檔案中,我將
# USE_CUDNN := 1

一行取消了註釋(刪掉開頭的“#”)。若沒有GPU,則無需取消該行註釋,但需要取消

# CPU_ONLY := 1

的註釋。

更改完畢後,儲存退出,利用如下命令編譯即可。

make all -j8
make test -j8
make runtest -j8

-j8選項表示同時開8核進行編譯,加快編譯速度(我的CPU是8核的,同理,n核的cpu可加上-jn進行編譯)。編譯的輸出結果沒有報錯,我們就可以認為caffe已經正常安裝了。

4. 配置pycaffe介面

進入caffe的python目錄下,輸入命令安裝所需的各個依賴包。

for req in $(cat requirements.txt); do sudo pip install $req; done

若沒有安裝pip的話,需要先安裝pip。

sudo apt-get install python-pip

安裝完pip或者已有pip時,最好檢查一下是否為最新版本,若不是,升級pip(不升級的話有可能會有奇怪的問題出現)

sudo pip install -U pip

安裝numpy

sudo apt-get install python-numpy

修改Makefile.config,新增相關依賴包的路徑,將

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib
這兩行改成
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
其實我後來看了一下,我並沒有/usr/include/hdf5/serial和/usr/lib/x86_64-linux-gnu/hdf5/serial目錄(hdf5肯定是裝上了的),但是都裝完了,我就懶得驗證不要加這兩個路徑可不可以了,如果有朋友驗證了的話,麻煩留言告知一下哈。

修改完畢並儲存退出後,即可開始pycaffe介面的編譯。

make pycaffe -j8

若編譯出現錯誤,同時能夠保證前面的步驟都沒有錯的話,不妨make clean後重新編譯一下。

make clean
make pycaffe -j8
make all -j8
make test -j8
make runtest -j8

全部通過後,將caffe的python介面的路徑新增到家目錄下的.bashrc檔案末尾,

export PYTHONPATH=~/caffe/python:$PYTHONPATH
之後便可在python環境下輸入import caffe使用caffe了。

5. 配置matcaffe介面

    安裝matlab R2015a

安裝十分簡單,先將ISO檔案掛載,之後開啟命令列,進入掛載的目錄,輸入如下指令安裝即可。

sudo ./install

安裝金鑰為:

01488-19946-57529-02811-46082-55250-36732-07842-48636-26144-34646-49703-29004-61854-13013-57205-32516

根據步驟安裝即可。安裝完成後,將matlab的可執行檔案所在的路徑新增到環境變數中,以後只要在終端中輸入matlab即可開啟matlab(我需要用sudo matlab才可以,直接打matlab會出錯,可能是因為安裝的時候也用了sudo吧)。具體操作為,開啟家目錄下的.bashrc檔案,在末尾新增

export PATH=/usr/local/MATLAB/R2015a/bin:$PATH
至此,matlab安裝完成。

    編譯matcaffe

開啟Makefile.config,找到

# MATLAB_DIR := /usr/local

將其改為

MATLAB_DIR := /usr/local/MATLAB/R2015a

儲存檔案後退出,再編譯matcaffe

make matcaffe -j8

沒有出錯的話就成功了。

之後在caffe目錄下開啟matlab,將介面目錄matlab新增進搜尋路徑即可。

addpath ./matlab
savepath
大功告成!如有錯誤,懇請指正!