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
(如果許可權不足,可以先修改檔案的許可權:
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(替換自己下載的版本哈)
(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
成功頁面:
到這裡,就已經差不多做完了整個的準備工作。
接下來就可以開始進行自己的測試資料集咯~~
如果有錯,請廣大網友指正。