背景:手頭只有一個(gè)win主機(jī)直颅,虛擬機(jī)版本:Ubuntu14.04博个,目標(biāo)是安裝后CAFFE能作為PYTHON MODULE來(lái)使用,只使用CPU模式 更多見(jiàn):iii.run
安裝開(kāi)發(fā)所依賴(lài)的安裝包
打開(kāi)Ubuntu的終端功偿,輸入命令盆佣。
sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libhdf5-serial-dev protobuf-compiler
sudo apt-get install --no-install-recommends libboost-all-dev
sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev
sudo apt-get install libatlas-base-dev
升級(jí)g++
g++ --version</span>
查看g++版本,由于編譯需要至少4.8版本的g++械荷,一般來(lái)說(shuō)共耍,自帶版本應(yīng)該時(shí)4.8。如果想要升級(jí)g++吨瞎,這里也提供以下下載方式痹兜,并且設(shè)置默認(rèn)編譯的g++為最新版本。
sudo add-apt-repository ppa:ubuntu-toolchain-r/test #用來(lái)添加庫(kù)信息的幫助腳本颤诀。
sudo apt-get update #更新
sudo apt-get install gcc-4.9
sudo apt-get install g++-4.9 #更新g++字旭,gcc
sudo ln -sf /usr/bin/gcc-4.9 /usr/bin/gcc #在調(diào)用的gcc庫(kù)上做一個(gè)與最新版本的軟連接对湃,更改g++的默認(rèn)版本。
sudo ln -sf /usr/bin/gcc-ar-4.9 /usr/bin/gcc-ar
sudo ln -sf /usr/bin/gcc-ranlib-4.9 /usr/bin/gcc-ranlib
安裝anaconda遗淳,建議安裝拍柒。
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-4.3.1-Linux-x86_64.sh
bash Anaconda3-4.3.1-Linux-x86_64.sh
安裝過(guò)程中記得一直選擇默認(rèn)的就行,傻瓜式安裝屈暗。是否在bashrc中添加路徑拆讯,這里選擇“yes”就可以。忘了的話(huà)恐锦,解決方法很麻煩往果,自己查查吧。
安裝OpenCV2.4(這個(gè)經(jīng)常失敗一铅,建議跳過(guò)陕贮,不影響使用)
git clone https://github.com/bearpaw/Install-OpenCV
cd Install-OpenCV/Ubuntu/2.4
sh ./opencv2_4_10.sh
編譯過(guò)程很慢,中間我還報(bào)過(guò)一次錯(cuò)潘飘,不得不重新來(lái)了一次肮之。如果覺(jué)得難度不夠的話(huà),可以選擇官網(wǎng)的安裝包:http://opencv.org/卜录,我這里是根據(jù)大神編譯過(guò)的版本進(jìn)行安裝的戈擒。
安裝atlas
sudo apt-get install libatlas-base-dev #安裝atlas簡(jiǎn)單易行。
編譯Caffe
下載caffe
cd ~
git clone https://github.com/BVLC/caffe.git
修改Makefile配置
cd caffe
cp Makefile.config.example Makefile.config
gedit Makefile.config #我個(gè)人比較喜歡gedit 艰毒,用起來(lái)方便筐高。
- CPU_ONLY := 1
- 配置一些引用文件(增加部分主要是解決新版本下,HDF5的路徑問(wèn)題)
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
BLAS := atlas
編譯caffe
make all -j8
make test -j8
make runtest -j8
另外, 這個(gè)make默認(rèn)是用CPU單核運(yùn)算,如果想要快一點(diǎn), 比如我想使用四核, 在make后面加上-j4標(biāo)簽丑瞧。
如果上面4行某一行報(bào)錯(cuò)之后想要重試,建議先make clean再重新開(kāi)始柑土。
更新安裝依賴(lài)。
cd caffe
cat python/requirements.txt | xargs -L 1 sudo pip install
編譯Python接口
打開(kāi)新的終端, 用which Python和which pip
確定使用的是anaconda提供的python環(huán)境绊汹,然后進(jìn)入caffe/python,
執(zhí)行下列命令稽屏,
確保pip已經(jīng)安裝
sudo apt-get install python-pip
for req in $(cat requirements.txt); do pip install $req; done #python運(yùn)行需要的庫(kù)。
再次回到caffe根目錄我們可以執(zhí)行:
在caffe根目錄的python文件夾下西乖,有一個(gè)requirements.txt的清單文件狐榔,上面列出了需要的依賴(lài)庫(kù),按照這個(gè)清單安裝就可以了获雕。
在安裝scipy庫(kù)的時(shí)候薄腻,需要fortran編譯器(gfortran),如果沒(méi)有這個(gè)編譯器就會(huì)報(bào)錯(cuò)届案,因此被廓,我們可以先安裝一下。
回到caffe的根目錄萝玷,然后執(zhí)行安裝代碼:
cd ~/caffe
sudo apt-get install gfortran
cd ./python
for req in $(cat requirements.txt); do pip install $req; done
安裝完成以后嫁乘,再次回到caffe根目錄我們可以執(zhí)行:
sudo pip install -r python/requirements.txt
就會(huì)看到昆婿,安裝成功的,都會(huì)顯示Requirement already satisfied, 沒(méi)有安裝成功的蜓斧,會(huì)繼續(xù)安裝仓蛆。
編譯python接口
make pycaffe -j8
運(yùn)行python
進(jìn)入caffe/python
,運(yùn)行
$ python2.7
Python 2.7.12 (default, Jul 1 2016, 15:12:24)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import caffe
>>>
加入PythonPath
gedit ~/.bashrc
將export PYTHONPATH=/home/wing/caffe/python:$PYTHONPATH
添加到文件最后挎春。
source ~/.bashrc
使更改生效看疙。
這樣,在其他地方打開(kāi)python直奋,也可以import caffe了能庆。
出現(xiàn)過(guò)一個(gè)問(wèn)題:
error :No module named google.protobuf.internal
解決方法是:
sudo chmod 777 -R anaconda
(文件夾) 改變權(quán)限 然后
conda install protobuf
可以很方便的解決的問(wèn)題