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安裝編譯的過程就全部結束了。