Caffe + Ubuntu 15.04 + CUDA 7.0 安裝以及配置

南山牧笛發表於2015-12-06
作為小碼農的我,昨天就在裝這個東東了,主要參考第一篇博文,但是過程發現很多問題,經過反反覆覆,千錘百煉,終於柳暗花明,我把這個caffe給搞定了,是故,我釋出出來,後之來者,欲將有感於斯文~
本分分為四個部分,在Ubuntu上除錯執行成功,第一部分:nVidia驅動和CUDA Toolkit的安裝和除錯;第二部分 Python安裝和除錯;第三部分 Matlab安裝和除錯;第四部分 Caffe的安裝和測試。

第一部分:nVidia驅動和CUDA Toolkit的安裝和除錯

這裡以CUDA 7.0為例。

一、CUDA Repository

獲取CUDA安裝包,安裝包請自行去NVidia官網下載。

二、CUDA Toolkit

三、Environment Variables

第二部分 Python安裝和除錯

1. 安裝IDE執行環境

選擇一個適合你的IDE執行環境,我是用的是Spyder,因為它內建了 iPython 環境,Caffe有不少的程式是基於 iPython 環境完成的。安裝方法很簡單,直接在Ubuntu軟體中心搜尋“spyder”即可安裝。

2. iPython NoteBook 安裝

另外一個比較推薦的方法是使用iPyhthon NoteBook(基於瀏覽器的Python IDE),特別是適合需要用Python做教程的老師們,可以直接匯出.py, .ipynb, html格式,安裝步驟如下:

啟動(自動開啟瀏覽器):

$ ipython nootbook

一個簡單的使用iPython NoteBook生成的html的例子:examples_notebook.html  example_notebook.ipynb

3. 配置和編譯pycaffe

第三部分 Matlab安裝和除錯


1. 降級安裝gcc/g++版本為4.7.x

(1). 下載gcc/g++ 4.7.x

(2). 連結gcc/g++實現降級

2. 暴力引用新版本GLIBCXX_3.4.20

通過命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已經成功包含了GLIBCXX_3.4.20,如果已經存在,基本上就成功了。

6.編譯Matlab用到的caffe檔案(見第五部分)

第四部分 Caffe的安裝和測試

在caffe的github上下載安裝包,解壓得到caffe-master資料夾。

一、安裝BLAS

這裡可以選擇(ATLAS,MKL或者OpenBLAS),這裡使用MKL。

二、MKL與CUDA的環境設定

1. 新建intel_mkl.conf, 並編輯之:

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

2. 新建cuda.conf,並編輯之:

/usr/local/cuda/lib64

/lib

3. 完成lib檔案的連結操作,執行:

  1. Create a temporary directory, which we denote as <cmake_binary_dir>, where you want to put the generated Makefiles, project files as well the object files and output binaries.

  2. Enter the <cmake_binary_dir> and type

    cmake [<some optional parameters>] <path to the OpenCV source directory>
    

    For example

    cd ~/opencv
    mkdir release
    cd release
    cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local ..
    
  3. Enter the created temporary directory (<cmake_binary_dir>) and proceed with:

    make
    sudo make install
  4. 配置openCV引數設定
    sudo gedit/etc/ld.so.conf.d/opencv.conf
    sudo ldconfig
    sudo gedit/etc/bash.bashrc 加入:
    PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
    export PKG_CONFIG_PATH

    至此,OpenCV安裝配置完畢

四、安裝其他依賴項

1. Google Logging Library(glog),下載地址:https://code.google.com/p/google-glog/,然後解壓安裝:

如果沒有許可權就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 裝完之後,這個資料夾就可以kill了。

2. 其他依賴項,確保都成功

五、安裝Caffe並測試

1. 安裝pycaffe必須的一些依賴項:

2. 安裝配置nVidia cuDNN 加速Caffe模型運算

a. 安裝cuDNN

該改版本caffe-master預設支援cudnn-6.5-linux-x64-v2,安裝前請去先官網下載最新的cuDNN。建議安裝v3版本,把一下相應6.5改成7.0即可,方法一樣。

b. 連結cuDNN的庫檔案

3. 從github上下載caffe,為Caffe-master的資料夾,cd進去,生成Makefile.config配置檔案,執行:

4. 配置Makefile.config檔案(僅列出修改部分)

sudo gedit Makefile.config

a. 啟用CUDNN,去掉"#"(目前caffe-master仍然只支援R1版本)

USE_CUDNN := 1

b. 啟用GPU,新增註釋"#"

# CPU_ONLY := 1

c. 配置一些引用檔案(增加部分主要是解決新版本下,HDF5的路徑問題)

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include /usr/lib/x86_64-linux-gnu/hdf5/serial/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib /usr/lib/x86_64-linux-gnu/hdf5/serial

溫馨提示:ctr+f搜尋在後面新增多餘的內容

d. 啟用Intel Parallel Studio XE 2015 Professional Edition for C++ Linux

BLAS := mkl

e. 配置路徑,實現caffe對Python和Matlab介面的支援

PYTHON_LIB := /usr/local/lib

MATLAB_DIR := /usr/local/MATLAB/R2014a

f. 啟用python_layer

WITH_PYTHON_LAYER :=1

5. 配置Makefile檔案(實現對OpenCV 3.x的支援)

sudo gedit Makefile

查詢“Derive include and lib directories”一節,修改“LIBRARIES +=”的最後一行,增加opencv_imgcodecs

opencv_core opencv_highgui opencv_imgproc opencv_imgcodecs

6. 編譯caffe-master!!!一定要重啟電腦,重啟電腦,因為顯示卡驅動裝完需要重啟才能生效,本人在這裡搞了兩次,後來才發現問題的本質,哎。"-j8"是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。

編譯Python和Matlab用到的caffe檔案

六、使用MNIST資料集進行測試

cd進入caffe-master目錄下

1. 資料預處理

2. 重建lmdb檔案。Caffe支援三種資料格式輸入網路,包括Image(.jpg, .png等),leveldb,lmdb,根據自己需要選擇不同輸入吧。

生成mnist-train-lmdb 和 mnist-train-lmdb資料夾,這裡包含了lmdb格式的資料集

3. 訓練mnist

至此,Caffe安裝的所有步驟完結,下面是一組簡單的資料對比,實驗來源於MNIST資料集,主要是考察一下不同系統下CPU和GPU的效能。可以看到明顯的差別了。

相關文章