1. 程式人生 > >Ubuntu 14.04 + Caffe配置記錄(CPU模式,無GPU,無Cuda)

Ubuntu 14.04 + Caffe配置記錄(CPU模式,無GPU,無Cuda)

對於使用深度學習進行影象處理,Caffe是一個不錯的框架選擇。但是安裝起來,並不是如想象中容易,稍不注意就會出錯。

網上關於Ubuntu14.04下配置Caffe的資料很多,但是總是要自己親自配置才能獲得自己的心得。

從作業系統的版本轉換到cuda的版本等變換,加上一下bug,中途浪費了許多時間,折騰了一兩天,終於還是配置成功了。

具體參照的連結是:http://blog.csdn.net/u012746763/article/details/50352930

還有一個有cuda安裝模式的參考連結主要為:http://www.cnblogs.com/dupuleng/articles/4213834.html

感謝網上許多熱心夥伴的貢獻,讓新入門的可以少走彎路。

由於目前的專案並沒有引入GPU使用,只是一個進行初步的測試版本,因此沒有配置cuda和GPU模式,仍然使用CPU執行模式。

【注:以下指令都是控制檯指令,通過Ctrl+Alt+T快捷開啟】

1.  安裝【build-essentials】

安裝開發所需要的一些基本的包,

sudo apt-get install build-essential

如果不可行,則可以執行:

sudo apt-get update

2. 安裝【BLAS】

BLAS 有三類,預設的是ATLAS,其餘兩種是MKL和OpenBlas, 我一開始安裝的OpenBlas,但是後面安裝不正確導致caffe部分出錯,因此後來是安裝的ATLAS,如果要求不高,建議安裝ATLAS,方便和安裝簡單。

sudo apt-get install libatlas-base-dev

注意,這裡的選擇在後面caffe的配置檔案中會需要配置。如果換過,也要記得後面的配置需要修改。

3. 安裝【OpenCV】

解壓指令為:

unzip -o XXX.zip -d XXXPATH

這裡的XXX.zip是路徑下的該壓縮檔案,XXXPATH是指定想要解壓到的路徑,這裡需要注意最好輸入絕對路徑,當然不怕出錯的話,也可以使用相對路徑。解壓之後可以先check一下。

當然如果是使用git,則直接使用git clone +連結,就直接不需要解壓了。這個需要事先已安裝git的情況下(sudo apt-get install git)

安裝【2.4.9】,不知道為什麼網上為什麼建議安裝2.4.10,我試了兩次,都是安裝到不到一半電腦都完全卡死,完全不動。因此,這裡我建議安裝OpenCV2.4.9,這裡也有一個連結(https://github.com/bearpaw/Install-OpenCV),其實都可以的。

下載之後,進行解壓,然後進入下面目錄:

cd Install-OpenCV/Ubuntu/2.4/

給當前目錄下的所有sh檔案新增可執行許可權:

chmod +x *.sh

安裝OpenCV2.4.9:

sudo ./opencv2_4_9.sh

4. 安裝【dependencies】

任意路徑下可執行

sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler

5. 配置和編譯【Caffe】

接下來就可以進行配置了。

當然,首先是下載Caffe,可以從官網上給出的連結下載:https://github.com/BVLC/caffe按照之前相同的方法解壓(或者git)之後,進入到caffe目錄,然後複製配置檔案:

cd ./caffe-master/

cp Makefile.config.example Makefile.config

接下來就是修改配置檔案Makefile.config:

sudo vim Makefile.config

如果沒有安裝vim,可以先安裝使用sudo apt-get install vim(關於vi的使用,這裡不贅述了)

(如果許可權不足,可以先修改檔案的許可權:

chmod g+w Makefile.config

主要修改的部分為:

1. 將# CPU_ONLY = 1前面的#去掉 並按“tab”鍵,(預設從tab處執行),因為這裡沒有安裝GPU,需要使用CPU執行。

2. BLAS := atlas, 這是預設設定,如果不是安裝的這個,則需要修改。具體修改,該語句上面有註釋提示。

3. 設定MATLAB_DIR的路徑:如我的是/usr/local/MATLAB/R2014a

這裡,提供非常好的MATLAB for Linux的安裝教程,

如果其中的下載連結失效,可以聯絡我。

有的時候安裝好後指令輸入sudo matlab之後,顯示matlab command not found.的錯誤。

這個的解決方法是:

cd /usr/local/bin

sudo ln -s /usr/local/MATLAB/R2014a/bin/matlab matlab

之後只要在終端輸入matlab就可以了。

設定完成後,則開始編譯過程:

主要過程為:

sudo make all -j4

sudo make test

sudo make runtest

這裡,需要注意的是,sudo必須加上,不然中間會報錯....Permission Denied...。 另外,第一句中的j後面的數字是可以根據自己的機器的核心數改變,數字越大則表示可以多執行緒編譯,則相應的速度會快。

===========================================================================================

===========================================================================================

【下面的就是自帶的資料的訓練和測試】

1. 使用MNIST資料集進行訓練

(1)對提供的sh檔案進行資料的預處理,生成訓練和測試資料:

先到caffe下的以下路徑:

cd data/mnist

執行:

sudo sh ./get_mnist.sh

會得到四個檔案:t10k-images-idx3-ubyte, t10k-labels-idx1-ubyte, train-images-idx3-ubyte, train-labels-idx1-ubyte

(2)把資料處理成LDB檔案,

sudo sh ./examples/mnist/create_mnist.sh

生成mnist-train-leveldb/ 和 mnist-test-leveldb/資料夾,這裡包含了LDB格式的資料集

參考連結中說得很清楚,這裡很容易犯的一個錯誤(事實上,我也犯了相同錯誤)是,這裡如果先把目錄切到/examples/mnist下,再進行執行sudo sh ./create_mnist.sh  的話,則會報錯的。錯誤資訊為:

./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found

(3)訓練MNIST

由於我們使用的是CPU,因此這裡需要在配置檔案中進行修改,

cd /examples/mnist/

vi lenet_solver.prototxt

將檔案最後的solver_mode:GPU 改為 solver_mode: CPU

修改完成之後,就可以進行訓練了:

sudo sh ./examples/mnist/train_lenet.sh

訓練完成之後會得到一個lenet_iter_10000.caffemodel。這裡訓練的時候需要注意之前的問題,仍然是要在caffe根目錄進行訓練,不能直接到examples/mnist目錄下執行sh

訓練成功可得到:

2. 使用MNIST資料集進行測試

訓練完成之後,我們當然需要對我們訓練的模型進行測試。

我是參照的命令列方式。也可以使用python,matlab進行編譯。

首先需要在cd到 ./caffe-master/examples/mnist資料夾下,新建一個sh檔案,生成指令為:

touch test_lenet.sh    #生成.sh檔案

接著進入該檔案進行編輯:

vim test_lenet.sh

編輯的內容為(可Copy):

#!/usr/bin/env sh

./build/tools/caffe test --model=examples/mnist/lenet_train_test.prototxt --weights=examples/mnist/lenet_iter_10000.caffemodel -iterations 100

這裡其實就只有兩行,一定要保證這一點。否則會出錯。

儲存之後返回到caffe目錄下執行測試,跟之前一樣。

sudo sh ./examples/mnist/test_lenet.sh

測試成功之後可以得到:


===========================================================================================

==========================================================================================

下面是對Python和MATLAB的編譯

1. 安裝和編譯【Python】

安裝Anaconda,許多人推薦安裝,因為其能獨立於系統自帶的python庫,並且提供大部分Caffe需要的科學運算Python庫。

(2)下載完成之後,在下載目錄執行

bash Anaconda2-4.1.0-Linux-x86_64.sh(替換自己下載的版本哈)

我下載的目前最新版,4.1.0,安裝完成即將結束時,會詢問時候將路徑寫到bashrc中,這裡預設為no,也推薦選則no,接下來再自己配置。

(3)對配置檔案進行修改:

sudo vim ~/.bashrc

檔案末尾需要新增:

LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH

export LD_LIBRARY_PATH

(4)安裝python-dev和python-pip

sudo apt-get install python-dev python-pip

(5)執行pip

cd ./caffe-master/python

for req in $(cat requirements.txt); do sudo pip install $req; done

(6)編譯

sudo make pycaffe

執行成功可見:


2. 安裝和編譯MATLAB

安裝教程的連結之前提供過了,這裡假設已經安裝好MATLAB

(1)修改caffe目錄下Makefile.config中MATLAB_DIR的路徑,如果之前已經修改過,這裡可跳過。

(2)cd到caffe目錄下,執行

sudo make matcaffe

成功頁面:



到這裡,就已經差不多做完了整個的準備工作。

接下來就可以開始進行自己的測試資料集咯~~

如果有錯,請廣大網友指正。