caffe從零開始學習1——虛擬機下ubuntu16.04安裝caffe(CPU版本)詳細教程

前言

最近想自己學習學習caffe架構,畢竟這個架構使用的很廣泛,所以準備在我的虛擬機上安裝caffe搞搞。網上的教程已經很多,我還要寫這篇文章是因爲每個人安裝出現的錯誤總是各種各樣,希望我安裝過程中遇到的問題可以提供一些參考,也便於自己總結出現的問題。
提示:虛擬機下不可以安裝caffe 的gpu版(我自己安裝過,安裝GPU驅動時會報錯,說找不到GPU的),所以只能安裝caffe 的cpu版。

依賴庫的安裝

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

依賴庫這一塊基本都一樣,一步一步安裝一般也不會出現什麼問題,不要漏裝了某個就行。

下載caffe

如果你的ubuntu裏沒有git工具,就先安裝個git。

sudo apt-get install git

接着下載caffe源碼

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

不過我在這一步出錯了,報錯:error: RPC failed; curl 18 transfer closed with outstanding read data remaining。
網上說執行以下命令,把緩存設置大一點,500M(命令如下:),我設置了,不過下載還是出錯,沒什麼鳥用的。

git config --global http.postBuffer 524288000

接着嘗試少clone一些,加入–depth 1 。這次下載成功了。
–depth 1的含義是複製深度爲1,就是每個文件只取最近一次提交,不是整個歷史版本。

git clone https://github.com/flutter/flutter.git --depth 1 

編譯caffe

進入到caffe目錄,cd caffe/目錄下。

接着把caffe目錄下自帶的Makefile.config.example文件複製一份並更名爲Makefile.config,如下:

cp Makefile.config.example Makefile.config

接着修改 Makefile.config文件

vim  Makefile.config

刪除CPU_ONLY前面的#號,表示只是用CPU,如下圖:
在這裏插入圖片描述
接着修改配置選擇項中include的路徑和lib的路徑,把HDF5的路徑加進去。
原配置選項爲:

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include 
LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib 

增加HDF5路徑後:

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/hdf5/serial/

在這裏插入圖片描述
配置文件裏面的python設置並沒有改,用的還是默認的python2.7, 網上有的說用python3.5,這個版本的我還沒有嘗試。
然後開始編譯

sudo make all -j2
sudo make test -j2
sudo make runtest

如下圖,證明caffe編譯通過了。
注意:如果執行結果失敗,則需要執行語句sudo make clean,然後解決掉問題重新編譯

在這裏插入圖片描述
一般到這一步不會有啥問題,下面python接口的編譯到時出來不少問題。

python接口的編譯

caffe具有Python和C++接口,我們較爲常用Python接口,這裏開始編譯python接口。
(1)安裝pip

sudo apt-get install python-pip

(2)在caffe根目錄下,有個python文件夾,文件夾裏面有個requirements.txt,裏面有需要的依賴庫和版本信息,按照其安裝即可,在安裝前,需要先安裝fortran編輯器(gfrotran),因爲安裝scipy庫時需要它,命令如下

sudo apt-get install gfortran
cd ~/caffe/python
for req in $(cat requirements.txt); do pip install $req; done

注意執行這個for req in $(cat requirements.txt); do pip install $req; done命令安裝時,一定要保證網速比較好,我安裝的過程中就把網換了,用手機建了個熱點安裝,之前的網不太好。
在執行for req in $(cat requirements.txt); do pip install $req; done這個安裝時,出現了問題。
提示pip的版本是8.1.1的,推薦升級,故使用下面的指令對pip 進行升級:

pip install --upgrade pip

升級後,使用pip -V 查看版本,結果又報錯:ImportError: cannot import name main。
查網上資料,解決方法是:
pip文件在usr/bin目錄下,cd進去,修改pip文件。

cd /usr/bin
vim pip

進行以下修改,把下面的三行

from pip import main
if __name__ == '__main__':
  sys.exit(main())

換成下面的三行

from pip import __main__
if __name__ == '__main__':
    sys.exit(__main__._main())

接着從新執行下面命令:

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

可是,又報錯了。錯誤如下,提示python-dateutil的版本不對

pandas 0.24.4 has requirement python-dateutil>=2.5.0, but you'll have 
python-dateutil 1.5 which is incompatible.
matplotlib 2.2.3 has requirement python-dateutil>=2.1, but you'll have 
python-dateutil 1.5 which is incompatible.

查看已經安裝的python-dateutil

root@ubuntu:~/caffe# apt  list python-dateutil 
Listing... Done
python-dateutil/xenial,xenial,now 2.4.2-1 all [installed,automatic]

直接把原文件裏的版本限制給刪掉

vim requirements.txt

把python-dateutil>=1.4,<2 改爲python-dateutil
再次執行for req in $(cat requirements.txt); do sudo pip install $req; done,這次終於安裝過了。
(3)接下來,修改python的環境變量

vim ~/.bashrc

在文件的最後面添加

export PYTHONPATH=/home/moqi/caffe/python:$PYTHONPATH

啓用環境變量:

source ~/.bashrc

編譯python接口

cd ~/caffe/
make pycaffe

報錯:python/caffe/_caffe.cpp:10:31: fatal error: numpy/arrayobject.h: No such file or directory,沒找到numpy/arrayobject.h這個文件。

在Makefile.config找到PYTHON_INCLUDE,

PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/lib/python2.7/dist-packages/numpy/core/include

要加一個local,變成:

PYTHON_INCLUDE := /usr/include/python2.7 \
        /usr/local/lib/python2.7/dist-packages/numpy/core/include

再make pycaffe就ok了

最後

驗證python接口是否安裝成功,如下,表示安裝成功了。
在這裏插入圖片描述
至此,虛擬機ubuntu16.04下caffe (cpu 版)安裝完成。下一篇文章將開始研究caffe的具體例程。

參考:
https://blog.csdn.net/qq_38784979/article/details/82811907

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