學習深度學習已經好久了,但一直沒有本身動手安裝過caffe,由於工做須要,須要在linux系統中安裝caffe,所以,在這裏對安裝過程進行記錄。html
caffe配置起來比tensorflow更麻煩一些,我主要是根據官網上的安裝說明進行安裝的,也參考了Youtube上的教程。我是在虛擬機中的Ubuntu18.4系統中進行安裝的,安裝的是CPU版本的caffe。python
在caffe官網上能夠找到Ubuntu系統中caffe的安裝說明由於個人Ubuntu版本是>=17.4的。linux
安裝caffe前,先按照官網上的說明,把須要的環境安裝好。若是須要安裝GPU版本的caffe,請先把cuda安裝好,若是須要python接口,也先把python環境安裝好。安裝python環境時,建議直接安裝Anaconda,由於它包含了一些caffe須要的科學計算庫。git
- 由於我要安裝CPU版本的caffe,因此,執行如下兩條命令安裝caffe預編譯包和caffe的依賴
sudo apt install caffe-cpu
sudo apt build-dep caffe-cpu
然後編譯caffe
- 編譯caffe能夠經過make進行編譯,也能夠經過Cmake進行編譯。我是經過make進行編譯的。
- 經過git clone https://github.com/BVLC/caffe.git命令下載caffe到本地,進入caffe目錄,執行
cp Makefile.config.example Makefile.config
- 而後修改Makefile.config,Makefile.config中都有註釋,因此能夠根據本身的須要進行修改。我安裝的python版本是3.7的,下面是我本身的修改(僅供參考):
- CPU_ONLY := 1
- OPENCV_VERSION := 3
- ANACONDA_HOME := $(HOME)/anaconda3
- PYTHON_INCLUDE := $(ANACONDA_HOME)/include \
- $(ANACONDA_HOME)/include/python3.7m \
- $(ANACONDA_HOME)/lib/python3.7/site-packages/numpy/core/include
- PYTHON_LIBRARIES := boost_python3 python3.7m\
- PYTHON_LIB := $(ANACONDA_HOME)/lib
- WITH_PYTHON_LAYER := 1
- 修改以後,一次執行如下三條命令:
- make all
- make test
- make runtest
- 若是make all執行後出現問題,解決以後從新make all以前須要先執行make clean清除以前編譯的可執行文件及配置文件。
- 完成1和2後,caffe已經成功安裝了。接下來安裝python接口,執行如下命令:
- make pycaffe
- make pytest
- 設置python的環境變量,在~/.bashrc中添加export PYTHON_PATH=/home/用戶名/caffe/python:$PYTHON_PATH
- 配置好python接口後,就能夠在python中成功import caffe了。
經過上面的3步就能夠成功安裝好caffe了,在安裝過程當中可能會碰到一些問題,每一個人碰到的問題可能也不太同樣,但碰到的問題基本都能搜到解決方案,下面是我碰到的一些問題和解決方案:github
- error1: /usr/bin/ld: cannot find -latlas
solution: sudo apt-get install libatlas-base-dev
- error2: libpython3.7m.so.1.0: cannot open shared object file: No such file or directory
solution: sudo apt-get install libpython3.7-dev
- error3: libhdf5_hl.so.100: cannot open shared object file: No such file or directory
solution: 經過find命令能夠查到在anaconda3/lib目錄下有libhdf5_hl.so.100文件,所以在~/.bashrc中添加export LD_LIBRARY_PATH=/home/用戶名/anaconda3/lib:$LD_LIBRARY_PATH
- error4: No module named googlesolution: conda install protobuf