caffe安裝指南

其實caffe上的安裝已經介紹的很清楚,而且也不乏介紹caffe的文章,之所以寫這篇是因爲這是一箇中文版本的,再就是我在實驗室服務器安裝時遇到了很多問題,我覺得後來人可能會遇到,所以貼出來


Linux平臺下的Caffe安裝指南

                                                                                          

1.   系統與權限

適用平臺有Ubuntu 14.04, Ubuntu 12.04, OSX 10.9, and OS X 10.8,安裝需要獲取root權限

2.   依賴庫

a)        CUDA 6.5(推薦), 6.0, 5.5, 5.0 和對應CUDA驅動——實驗室服務器已安裝CUDA6.0 :CUDA_DIR :=/usr/local/cuda-6.0

b)       BLAS(ATLAS, MKL, OpenBLAS) 括號裏面的三選一——實驗室已經安裝好ATLAS :ATLAS := /usr/lib64/atlas

c)        OpenCV 這個下面會有對應的安裝指令,無需配置路徑

d)       Boost 這個下面會有對應的安裝指令,無需配置路徑

e)        glog, gflags, protobuf,leveldb, snappy, hdf5, lmdb 這些下面會有對應的安裝指令,protobuf可能需要修改環境變量安裝

f)        Python (Python 2.7,numpy(>=1.7)) boost.python,假如不需要可視化的功能,Python是不需要關心的,雖然makefile的配置文件中需要提供python的路徑——實驗室已經安裝Python,numpy : PYTHON_INCLUDE := /usr/local/include/python2.7 \ /usr/local/lib/python2.7/site-packages/numpy/core/include/numpy

g)       MATLAB : 沒用上,網上瞄了到一句用HDF5可以結合MATLAB

h)       cuDNN Caffe 是NVDIA公司專門提供的CNN計算模塊,性能據說最好,但是看了下不是顯著提高,此處不介紹如何使用。(需要向NVDIA申請,比較麻煩,不知道後面會不會開放)

 

不介紹只是用CPU計算的方法

3.   依賴庫的安裝

a)        跳過CUDA, BLAS, Python,MATLAB的配置需要注意的是,caffe源碼中,Makefile.config.example中,需要將BLAS:= 改爲ATLAS :=

b)       其他依賴庫。實驗室服務器的系統是CentOS,所以輸入下面的指令來一次性安裝protobuf, leveldb,snappy, opencv, boost, hdf5

 

sudo yum install protobuf-develleveldb-devel snappy-devel opencv-devel boost-devel hdf5-devel

 

但是需要注意的是,由於服務器在訪問以上依賴庫的下載包會報錯(不知道是被牆了,還是因爲平臺資源的位置調整),出現錯誤信息如下

No package protobuf-devel available.

Error: Nothing to do

所以最好一個個安裝,以觀察哪些依賴庫不能正確安裝,目前可以直接安裝好的依賴庫有snappy, opencv, boost,需要用其他方法安裝protobuf,leveldb, hdf5

protobuf: 下載protobuf,make編譯,然後要修改環境變量,對應的編譯錯誤關鍵字爲proto-c

hdf5: 網上可以下到rpm安裝包,比較簡單無腦

leveldb:下載的地方很多,但是安裝很愁人。安裝參考http://blog.csdn.net/teethfairy/article/details/32089161其實就是拷貝include/leveldb到/usr/local/include 和對應的 .o 到/usr/local/bin

4.      編譯

a)        修改Makefile.config.example文件中依賴庫的路徑,有CUDA, BLAS(要改名爲ATLAS),Python

b)       執行cpMakefile.config.example Makefile.config

c)        執行make all& make test

 

編譯過程中出現的問題:libstdc++.so.6報錯的問題,我是重新安裝了libstdc++.so.6庫,按理說後面的人不會再遇到該問題了。

5.      測試MNIST數據庫

MNIST數據庫的Demo很有意思,通過教程的指令下載數據集,結果文件名成了亂碼,還得去修改,至於修改成什麼文件名,可以參考examples/mnist/create_mnist.sh腳本,然後在examples/mnist下會出現兩個文件夾,裏面分別放着訓練集和測試集,然後運行sh train_mnist.sh就可以了





%----------------------------------------------------2014 11 06 更新分割線 ---------------------------------------------------------%

樓主發現我之前總結的實在是太概括了,很多細節都沒說到,而且Glog與Gflag的安裝遇到的問題也沒有說,前幾天又安裝了一遍,問題更多,索性細枝末節全都記錄下來了


第一次安裝:

1. 解壓caffe-master.zip到cnn文件夾

2. CUDA的位置 /usr/local/cuda-5.5

3. ATLAS的位置 /usr/lib64/atlas --- 會報錯:lcblas 庫找不到,修改Makefile.config最下面的LIBRARY_DIR 後面加上 /usr/lib64/atlas (這個問題是我實驗室服務器的問題,正常來說大家不會遇到,或者改環境變量就可以了)

4. Python的位置/usr/include/python2.6

/usr/lib64/python2.6/site-packages/numpy/core/include/numpy/

5. 安裝其他依賴庫-執行管理員權限

       5.1protobuf http://blog.csdn.net/zaitianaoxiang/article/details/7639125

              ./configure 如果出現Permission Denied 就在命令前面加 Bash

並沒有顯示  Libraries have beeninstalled in: 

/usr/local/lib

Head files hava been installed in:

/usr/local/include/google/protobuf/ 

              但是/usr/local/lib下已經有protobuf的庫了

       5.2leveldb http://blog.sina.com.cn/s/blog_560e310001015jfx.html

              照教程做會編譯報錯/usr/bin/ld: cannot find –lleveldb

              需要把對應的so文件拷貝過去 libleveldb.so 到/usr/local/lib 下

       5.3hdf5 rpm –ivh filename

       5.4snappy opencv boost已經安裝好了

       5.5glog --- 這個貌似也是已經安裝好了的

              wgethttps://google-glog.googlecode.com/files/glog-0.3.3.tar.gz

tar zxvf glog-0.3.3.tar.gz

cd glog-0.3.3

./configure

make && make install

       5.6lmdb 先不裝試試---貌似已經安裝好了---出現的問題是找不到/usr/local/man 需要手動創建man文件夾

       5.7gflag

              https://github.com/schuhschuh/gflags/releases下載安裝包

              解壓,打開相應文件夾

              打開INSTALL.txt 按照教程做

                     1.Extract source files.

2. Create build directory and change to it.

3. Run CMake to configure the build tree.

4. Build the software using selected build tool.

5. Test the built software.

6. Install the built files.

……(下面會出現ccmake .. 命令)

                     會出現CMake版本要求達不到的問題,換個低版本的gflag 2.0以下的

              http://www.onlinedown.net/softdown/171915_2.htm  gflag 1.2版本的

              bash./configure

              make

              makeinstall

6. 運行 sh train_lenet.sh腳本後報錯

error while loading shared libraries:libcudart.so.5.5: cannot open shared object file: No such file or directory

6.1 http://blog.csdn.net/shenchong721/article/details/21529295解決方法

6.2 修改/etc/ld.so.conf , 添加cuda的lib的路徑,然後執行sudoldconfig 


有關glog的報錯

https://github.com/BVLC/caffe/issues/333

       exportLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

       Afteradding to ld.so.conf, run ldconfig with sudo. Then the runtime linker will beable to find.


7. 還要修改MNIST的文件名,亂碼問題,還有後綴名 _ 與. 的問題

 

 

 

 

第二次安裝-新用戶

1.      修改Makefile.config.example一定要記得改LIBRARY_PATH

2.      然後就沒什麼問題了

 

常見問題:即便是root用戶也會出現permission denied的錯誤,這時候在命令前面加bash







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章