本文的內容主要參考了Ubuntu16.04安裝Caffe(CPU Only)的工作,該篇博文比較符合我的需要,網上很多的caffe安裝的教程都是帶了GPU的,對我現在而言,不需要,該篇博文較好的滿足我的需要。同時按照該篇博文進行安裝過程的工作中,發現了若干問題,完全按照該博客走是會安裝失敗的,故根據我自己的安裝情況,將安裝具體過程整理成文。
安裝一系列的依賴庫
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 libboost-all-dev--no-install-recommends
sudo apt-get install libatlas-base-dev
sudo apt-get install python-dev
sudo apt-get install libgflags-dev
sudo apt-get install libgoogle-glog-dev
sudo apt-get install liblmdb-dev
下載源碼
sudo git clone https://github.com/BVLC/caffe.git
源碼下載完畢後,需要切換到caffe的python目錄下,進行caffe的python接口的安裝
cd /home/<user name>/caffe/python
sudo apt-get install python-pip
for req in $(cat requirements.txt); do pip install $req; done
編譯
回到caffe目錄,複製一份caffe目錄底下的Makefile.config.example文件,並重命名爲Makefile.config。
cd ..
cp Makefile.config.example Makefile.config
打開Makefile.config對其進行相應修改,由於不需要GPU,我們去掉CPU_ONLY := 1前面的註釋,並將#Whatever else you find you need goes here下的兩句改成如下所示:
# Whatever else you find you need goes here.
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
然後再手動安裝一下numpy(跳過這步,在後續make pycaffe時可能會出現找不到numpy的問題)
sudo apt-get install python-numpy
然後就可以開始具體的編譯過程了
sudo make pycaffe -j4
sudo make all -j4
sudo make test -j4
sudo make runtest -j4
-j4參數視機器的CPU核數調整,我是4核的,所以就用了-j4。
如果上述四步都可以無錯的完成,那麼caffe應該是安裝成功了。若某一步出錯了,建議用sudo make clean命令徹底清除之前編譯的東西后,再重新運行上述四個命令。
測試
將caffe放到配置文件中
sudo echo export PYTHONPATH="~/caffe/python" >> ~/.bashrc
sudo source ~/.bashrc
在命令行中輸入“python”,進入python環境後,鍵入import caffe,若沒有報錯的話,則說明caffe安裝成功。
在實體機上安裝時,由於原先在docker內安裝過caffe,導致重新安裝caffe時出現了各種各樣的錯誤,故在虛擬機中重新測試了一遍,安裝成功。實體機和虛擬機用的是同一個鏡像。