1. 程式人生 > >ubuntu16.04 安裝caffe(cpu)比較靠譜的教程

ubuntu16.04 安裝caffe(cpu)比較靠譜的教程

ubuntu16.04 安裝caffe(cpu)比較靠譜

一、安裝依賴庫

首先執行以下命令

sudo apt-get update

切換到root許可權

sudo su

安裝caffe之前需要安裝一些依賴庫: 注意:輸入下面的每一條程式碼時,不要急著回車,否則,會出現“中止”的問題。 解決方法:不要直接複製粘貼後回車,等幾秒之後再回車。 在這裡插入圖片描述

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
sudo apt-get install --no-install-recommends libboost-all-dev

二、下載caffe

可直接使用Git下載caffe,如果沒有Git,請先安裝Git,作者新裝的Ubuntu16.04沒有Git,所以先安裝Git,執行如下語句:

sudo apt-get install git

安裝結束後下載caffe,執行以下命令:

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

這樣你就可以在根目錄下看到有個caffe目錄了

三、編譯caffe(均在caffe目錄下執行

1.進入caffe目錄

cd caffe/

2.生成Makefile.config檔案,這裡是將caffe目錄下自帶的Makefile.config.example檔案複製一份並更名為Makefile.config,命令如下:

cp Makefile.config.example Makefile.config

此時目錄下就會有Makefile.config檔案

3.修改配置Makefile.config 檔案

1)編輯Makefile.config檔案:

sudo gedit Makefile.config

或者直接進入檔案內開啟檔案進行修改。 2) 去掉CPU_ONLY前面的#號 在這裡插入圖片描述 使得CPU_ONLY := 1

3)配置引用檔案路徑(主要是HDF5的路徑問題) 原來的路徑配置如下圖: 在這裡插入圖片描述 修改為如下圖:

在這裡插入圖片描述 新增的內容為:

/usr/include/hdf5/serial 
/usr/lib/x86_64-linux-gnu/hdf5/serial

4.在Makefile檔案的第173行,把 hdf5_hl 和hdf5修改為hdf5_serial_hl 和 hdf5_serial,也就是把下面第一行程式碼改為第二行程式碼。

RIES += 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

5.執行編譯

make all  若出現錯誤,要用make clean之後再編譯
make test  
make runtest 

編譯完成之後出現如下介面: 在這裡插入圖片描述

四 、編譯Python介面

1.安裝pip以及numpy:

sudo apt-get install python-pip  
sudo apt-get install python-numpy

2.安裝python介面依賴庫:

1)在安裝依賴庫前,需要先安裝gfortran編輯器:

sudo apt-get install gfortran  

然後安裝依賴庫,首先進入caffe目錄下的python檔案中:

cd caffe/python 

安裝依賴庫:

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

可能會出現:

問題一

之後,這一步可能會出現問題: 在這裡插入圖片描述 解決的方法是(若無此問題,則跳過):

pip install --upgrade pip

問題二 可能還會出現另一個錯誤(若無,則忽略) 升級了pip,再次使用pip 安裝相關的python包的時候就出現以下錯誤:

ImportError: cannot import name main

解決:pip檔案在usr/bin目錄下,cd進去。

cd /usr/bin
sudo gedit 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 pip install $req; done

可能會出現: 問題三

pandas 0.23.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已經安裝為2.7.3版本。 仍在caffe目錄下的python檔案中,開啟requirements.txt

sudo gedit requirements.txt

將該句

python-dateutil>=1.4,<2

註釋掉

#python-dateutil>=1.4,<2

然後

:/home/xxx/caffe/python#

sudo pip install -r requirements.txt

搞定。 2)指定iPython版本

sudo pip install ipython==5.3.0

安裝完後,執行下面一條語句,該語句的作用是檢查依賴庫是否都已經安裝成功,如果成功會顯示requirement already saitisfied,如果未成功會繼續安裝:

sudo pip install -r requirements.txt  

3.新增環境變數:

開啟配置檔案bashrc:

sudo gedit ~/.bashrc

或者直接開啟該檔案也可以,在檔案的最後面新增:

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

XXX為Username 結果如下:

儲存檔案後關閉,然後輸入下面語句,使環境變數生效:

source ~/.bashrc  

4.編譯python介面:(在caffe目錄下)

make pycaffe 

編譯完後,若無錯誤提示,則說明編譯成功。

5.驗證python介面:

進入python環境:

python  

引入caffe包:

import caffe 

若出現問題:

>>>import caffe
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named caffe

原因在於環境變數的添加出錯。 如果引入caffe包無其他顯示,如下圖所示: 在這裡插入圖片描述 說明python介面編譯成功,至此整個caffe安裝編譯的過程就全部結束了。