【泡咖啡1】linux下caffe編譯以及python環境配置手記

來源:互聯網
上載者:User

標籤:

caffe是一個深度學習的庫,相信搞深度學習的話,不是用這個庫就是用theano吧。要想使用caffe首先第一步就是要配置好caffe的環境。在這裡,我主要說的是在debian的linux環境下如何配置好caffe的庫。因為python編寫程式比較方便,在文章最後,我還會具體說明如何配置python環境。本文章為本人原創,部分內容整理自網路,若有不妥之處請聯絡本人刪除。非盈利性質網站轉載請在文章開頭處著名本文77695,來源http://www.cnblogs.com/cj695/。盈利性質網站轉載請與作者聯絡,連絡方式在文章後面。如未聯絡,本人將通過一切可能且合法的途徑追繳相應稿酬。請在轉載時保留此聲明。

1、前期準備

首先從github上下載好caffe庫:https://github.com/BVLC/caffe,解壓,得到這些東西

使用這一句話建立一個makefile.config的副本

接下來就是修改makefile.config,在這個檔案裡面對應的注釋講的很清楚,需要哪一項,吧對應那一項前面“#”去掉就好了

先拿make all測試,提示錯誤如下:

make: protoc:命令未找到
make: *** [.build_release/src/caffe/proto/caffe.pb.h] 錯誤 127

2、編譯以及安裝protoc

那就下載protobuf吧,在github下載,解壓https://github.com/google/protobuf:

運行

$ ./autogen.sh

 

原來先要安裝curl:額,貌似curl安裝不成功那就跳過吧。因為curl祈禱的作用就是下載檔案,但https://googletest.googlecode.com/files/gtest-1.7.0.zip這個東西還是要下,那就直接下載吧,可能需要科學上網,這個方法那就八仙過海各顯省通,我就不贅述。

下載好以後把壓縮包移動過去。

找到對應位置注釋掉curl

再次運行,提示錯誤

./autogen.sh: 40: ./autogen.sh: autoreconf: not found

 

原因是沒安裝 automake 工具

運行命令安裝:sudo apt-get install autoconf automake libtool

再一次./autogen.sh,成功!然後依次運行以下命令

$ ./configure$ make$ make check$ make install
執行完make check以後出現:

就說明沒什麼問題了,就可以繼續執行make install

執行完以後切換到caffe目錄,先make clean一下,接著make all

還是提示找不到庫,

3、安裝一系列依賴庫

再執行安裝一些庫:sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev,稍等

再執行make clean,接著make all,提示:

./include/caffe/common.hpp:5:27: fatal error: gflags/gflags.h: 沒有那個檔案或目錄。說明protobuf的庫已經差不多了。

4、安裝gflags

這裡繼續安裝gflags:https://github.com/schuhschuh/gflags/archive/master.zip 下載。解壓

cd gflags-master mkdir build && cd build export CXXFLAGS="-fPIC" && cmake .. && make VERBOSE=1 make sudo make install在執行第三句話的時候可能會提示版本較低,直接在這裡

http://www.cmake.org/install/

下載最新版本的cmake就好了(下載.sh的檔案直接運行就可以了)。要配置一下環境變數

然後接著執行下面兩條命令,就好了。弄完之後繼續切換到caffe目錄,先make clean一下,接著make all

./include/caffe/util/mkl_alternate.hpp:11:19: fatal error: cblas.h: 沒有那個檔案或目錄
compilation terminated.

說明gflag安裝成功了,

5、編譯安裝ATLAS

接下來開始搞定cblas的問題。BLAS(Basic Linear Algebra Subprograms,基礎線性代數程式集)是一個應用程式介面(API)標準。他的實現有很多,caffe用的是其中的三種實現ATLAS, MKL, or OpenBLAS.這裡我準備使用ATLAS:http://sourceforge.net/projects/math-atlas/files/ 先下載,解壓。按照官方文檔寫的,依次執行如下命令

首先選擇高效能cpu模式:

/usr/bin/cpufreq-selector -g performance然後在ATLAS目錄下建立檔案夾 mkdir Linux_C2D64SSE3 # create BLDdir cd Linux_C2D64SSE3 # enter BLDdir

../configure -b 64 -D c -DPentiumCPS=2800 -Fa alg -fPIC --with-netlib-lapack-tarfile=/home/haiyu/Programs_Install/lapack-3.5.0.tgz --prefix=/usr/local/atlas
粗體參數
需要根據個人系統修改:
-b 指定編譯出庫的類型(32位庫還是64位庫)
       -D c -DPentiumCPS 是指定你的CPU的時鐘頻率,可以通過 grep MHz /proc/cpuinfo 得到
       -Fa alg -fPIC 得到與位置無關的代碼,產生動態共用庫
       --prefix 為安裝路徑
       --with-netlib-lapack-tarfile 則是lapack壓縮包路徑

make build # tune & build lib make check # sanity check correct answer make ptcheck # sanity check parallel make time # check if lib is fast make install # copy libs to install dir

這裡還需要一個lapack的庫,在這裡下載http://www.netlib.org/lapack/,下載之後直接把/home/whaley/dload/lapack-3.4.1.tgz替換成對應的路徑就好了

在執行../configure的時候,會提示gfortran:命令未找到,直接用apt-get安裝即可。然後make build之後就可以休息去了。等一個小時再過來看吧。

ok。。現在是第二天。昨天晚上淩晨3點的時候終於看到它提示DONE了。這速度。太!“快”!了!繼續執行接下來的命令幾個可以忽略的就忽略了,然後再切換到CAFFE目錄make clean/all,依舊提示

但這個時候在atla的prefix指定的安裝路徑下已經有include/cblas.h

執行這兩條,添加目錄到include環境變數

6、安裝lmdb

接著make,提示錯誤lmdb沒裝

git clone git://gitorious.org/mdb/mdb.git 

cd mdb/libraries/liblmdb 

make && make install 

運行完,再回到caffe目錄編譯

提示

AR -o .build_release/lib/libcaffe.a
LD -o .build_release/lib/libcaffe.so
/usr/bin/ld: cannot find -lcblas
/usr/bin/ld: cannot find -latlas
collect2: error: ld returned 1 exit status

7、安裝其他依賴包

解決辦法:安裝這些包

apt-get install libatlas-dev
apt-get install liblapack-dev
apt-get install  libatlas-base-dev

問題解決

又提示這個錯誤.build_release/lib/libcaffe.so: undefined reference to `google::protobuf,重新編譯protobuf

make uninstall
make clean

./configure --prefix=/usr
make
make checkmake install
搞定,返回caffe,編譯成功!!!!!!!!!!!!!此處有掌聲!!!!!

然後把目錄添加到PYTHON環境變數就行了

export PYTHONPATH=$PYTHONPATH:/home/cj695/protobuf/python/
最後還要找到protobuf的Python目錄

python setup.py buildpython setup.py testpython setup.py install
安裝一下
激動人心的一顆來了!!!!!!!!!!!開啟python,import caffe。。這一刻,我哭了!!!!!!!!!!!!!
8、總結一下
耗費兩天時間,卡時間比較多的主要有兩個地方,首先查錯一定要從上往下查。基本上最上面的錯誤才是最根本的錯誤;其次,在安裝過程中對配置做過的修改一定要記清楚,別自己把安裝路徑改了結果還不知道是怎麼回事。

另外,如果在安裝gflags的時候出現問題,可以實驗一下用apt-get安裝gflag,命令如下:

sudo apt-get install python-gflags

caffe的配置大概也就這些內容,希望這篇文章能夠對你有所協助

【泡咖啡1】linux下caffe編譯以及python環境配置手記

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.