1. 程式人生 > >caffe(無CUDA,caffe在CPU下執行)+Ubuntu14.0.4詳解---(適合於初學者配置)

caffe(無CUDA,caffe在CPU下執行)+Ubuntu14.0.4詳解---(適合於初學者配置)

本部落格是CPU的執行,GPU的一直等有時間在寫。要是想安裝gpu的版本的,可參考:先付上一些成功安裝的部落格的吧

1.http://blog.csdn.net/xierhacker/article/details/53035989

2.http://blog.csdn.net/Lee_J_R/article/details/52693724?locationNum=7&fps=1

以上兩篇部落格還不錯,比較詳細。(注:在配置的一些問題,可以在下面提問,我配置的是gtx1080,自從搞深度學習,配置不少於20次了,有點經驗,都是自己在搞,以前的辛酸不提了。)

CPU配置:

http://blog.csdn.net/autocyz/article/details/51783857  (2016.6月份的博文,本文沒有參考這篇部落格,不過感覺寫的挺好 貼上連線)

caffe是一個簡潔高效的深度學習框架,具體介紹可以看這裡http://caffe.berkeleyvision.org/,caffe環境配置過程可以參考這裡:http://caffe.berkeleyvision.org/installation.html,我在搭建環境時蒐集了許多資料,這裡整理了一下,介紹一下caffe在無CUDA的環境下如何配置。

1. 安裝build-essentials

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

  1. sudo apt-get install build-essential  
如果出現essential包不可用的情況,可以執行下列命令解決:
  1. sudo apt-get update  
2. 安裝ATLAS for Ubuntu

執行命令:

  1. sudo apt-get install libatlas-base-dev  
注:ATLAS, MKL,或OpenBLAS都可以,我這裡選擇安裝ATLAS

3. 安裝OpenCV

這個儘量不要手動安裝, Github上有人已經寫好了完整的安裝指令碼:https://github.com/jayrambhia/Install-OpenCV
下載該指令碼,解壓".zip"檔案,解壓命令:

安裝2.4.9 (不推薦)

https://gist.github.com/bearpaw/c38ef18ec45ba6548ec0
  1. 下載安裝指令碼
     https://github.com/bearpaw/Install-OpenCV
  2. 進入目錄 Install-OpenCV/Ubuntu/2.4
  3. 執行指令碼 sh sudo ./opencv2_4_10.sh 
安裝2.4.9(推薦)
  1. unzip /home/wzy/下載/Install-OpenCV-master.zip  

    進入Ubuntu/2.4 目錄, 給所有shell指令碼加上可執行許可權:

  1. chmod +x *.sh  
      然後安裝最新版本 (當前為2.4.9):
  1. sudo ./opencv2_4_9.sh  

4. 安裝其他依賴項

Ubuntu14.04使用者執行
  1. 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了! 
    下載caffe安裝包,下載地址:https://github.com/BVLC/caffe
    解壓該壓縮包,解壓縮命令:

這裡也可以直接:sudo git clone https://github.com/BVLC/caffe.git

  1. sudo unzip /home/wzy/下載/caffe-master.zip  

    注:如果解壓位置出錯了,可以使用以下命令刪除該目錄及所有的子目錄:

  1. sudo rm -rf caffe-master  

    進入caffe根目錄, 首先複製一份Makefile.config,命令:

  1. cp Makefile.config.example Makefile.config  

然後修改裡面的內容,主要需要修改的引數包括:

   1.修改檔案許可權 規則:chmod [who] [+ | - | =] [mode] 檔名¼

   使用 chmod g+w Makefile.config

    2.開啟檔案進行修改

   使用 sudo vim Makefile.config

   按“i”鍵開始修改,修改結束後按esc鍵,鍵入“:wq”儲存並退出

   修改 將# CPU_ONLY = 1前面的#去掉 並按“tab”鍵,(預設從tab處執行)

    CPU_ONLY 是否只使用CPU模式,由於我沒有NVIDIA的顯示卡,就沒有安裝CUDA,因此需要開啟這個選項。
    其餘的一些配置可以根據需要修改:
    BLAS (使用intel mkl還是OpenBLAS)
    MATLAB_DIR 如果需要使用MATLAB wrapper的同學需要指定matlab的安裝路徑, 如我的路徑為 /usr/local/MATLAB/R2013b (注意該目錄下需要包含bin資料夾,bin資料夾裡應該包含mex二進位制程式)

    DEBUG 是否使用debug模式,開啟此選項則可以在eclipse或者NSight中debug程式

完成上述設定後,開始編譯:

  1. sudo make all -j16   (我的電腦是16的)  
  1. sudo make test    
  1. sudo make runtest  
   注意:-j4 是指使用幾個執行緒來同時編譯,可以加快速度,j後面的數字可以根據CPU core的個數來決定,如果CPU是4核的,則引數為-j4,也可以不新增這個引數,直接使用“make all”,這樣速度可能會慢一點兒。

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

 Caffe預設情況會安裝在$CAFFE_ROOT,就是解壓到的那個目錄,例如:$ home/username/caffe-master,所以下面的工作,
預設已經切換到了該工作目錄。下面的工作主要是測試Caffe是否工作正常,不做詳細評估。具體設定請參考官網:
http://caffe.berkeleyvision.org/gathered/examples/mnist.html
    (1)資料預處理
    可以用下載好的資料集,也可以重新下載,直接下載的具體操作如下:

  1. $ cd data/mnist  
  2. $ sudo sh ./get_mnist.sh  
       (2)重建LDB檔案,就是處理二進位制資料集為Caffe識別的資料集,以後所有的資料,包括jpe檔案都要處理成這個格式,執行命令如下:
  1. $ sudo sh ./examples/mnist/create_mnist.sh  
生成mnist-train-leveldb/ 和 mnist-test-leveldb/資料夾,這裡包含了LDB格式的資料集
       注:新版caffe都需要從根目錄上執行,如果使用下列命令執行:
  1. # cd examples/mnist  
  2. # sudo sh ./create_mnist.sh  
     可能會遇到這個錯誤:./create_mnist.sh: 16: ./create_mnist.sh: build/examples/mnist/convert_mnist_data.bin: not found
(3)訓練mnist
      如果沒有GPU,只有CPU的話,需要先修改examples/mnist目錄下lenet_solver.prototxt檔案,將solver_mode:GPU改為      solver_mode:CPU,修改後結果如下所示:
  1. # solver mode: CPU or GPU  
  2. solver_mode: CPU  

    修改時可以使用vi編輯命令(ubuntu14.0.4下也可以直接雙擊開啟,修改後儲存即可),如果是隻讀檔案,不能編輯,可以用sudo命令,比如:

  1. sudo vi lenet_solver.prototxt  

     先進入命令模式,使用a進入編輯模式,修改完之後,使用esc退出編輯模式,進入末行模式,再使用“:wq”儲存修改並退出(“:q!”為退出但不儲存修改)
   修改完成後,再在根目錄下(即/caffe-master目錄)執行下面的命令進行訓練:

  1. $ sudo sh ./examples/mnist/train_lenet.sh  
   最終訓練完的模型儲存為一個二進位制的protobuf檔案:lenet_iter_10000   至此,Caffe安裝的所有步驟完結。 注:如果進入到mnist目錄下執行這個sh命令,會出現錯誤。即這樣操作
  1. cd ./examples/mnist  
  2. sudo sh ./train_lenet.sh  
會有一個caffe-master/.build_release/tool/caffe找不到或不存在的錯誤。

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

得到訓練模型 lenet_iter_10000,利用命令列的方法對模型進行測試。 在caffe官網給出來了三種編譯方式 命令列、python、matlab.這裡使用的是命令列的方法 1.bash下建立.sh執行檔案(指令碼)  先cd到 ./caffe-master/examples/mnist資料夾下,命令列輸入 備註:指令碼的書寫可參考Caffe官網tutorial/interfaces中TEST的講解
  1. touch test_lenet.sh #生成.sh檔案
  2. sudo vim test_lenet.sh #進入.sh檔案鍵入內容
  3. #鍵入的內容為
  4. #!/usr/bin/env sh
  5. "空行"
  6. ./build/tools/caffe test --model=examples/mnist/lenet_train_test.prototxt --weights=examples/mnist/lenet_iter_10000.caffemodel -iterations 100
    備註:因為沒有用GPU所以官網指導文件中的"gpu 0"這部分引數就沒有新增進去
  7. 儲存.sh檔案  按ESC鍵 然後鍵入:wq 
因為編輯器的問題,自動換行了,所以這裡插入了圖片
2.將目錄返回到caffe-master目錄下 一路 cd ..
  1. sudo sh ./examples/mnist/test_lenet.sh   

最後放兩張測試成功的圖片 訓練過程
測試過程
8.要是大家想測試自己的資料集的話,可以參考連結:http://blog.csdn.net/u014696921/article/details/52156487 9.編譯python wrapper 安裝python 編譯 (1)安裝Anaconda,到caffe官網指導文件中安裝指導頁面,進入Anaconda官網,下載相應版本
(2)到下載目錄,執行 bash Anaconda2-2.4.1-Linux-x86_64.sh   (自己下載的是什麼版本就用什麼版本)
(3)cd到根目錄下,執行 sudo vim ~/.bashrc 對檔案進行如下修改(檔案最後新增就可以)
  1. # add library path  
  2. LD_LIBRARY_PATH=your_anaconda_path/lib:$LD_LIBRARY_PATH  
  3. export LD_LIBRARY_PATH  
(4)安裝pip和python-dev ,執行
  1. sudo apt-get install python-dev python-pip  

(5)cd到caffe-master/python目錄下,執行
  1. for req in $(cat requirements.txt); do sudo pip install $req; done  

(6)cd到caffe-master目錄下,編譯執行
  1. sudo make pycaffe  


10.編譯matlab wrapper 安裝matlab(參考之前的博文) 編譯 (1)安裝matlab (2)修改Makefile.config 在caffe-master目錄下
(3)cd到caffe-maste目錄下,編譯執行
  1. sudo make matcaffe  
  2. 注意:配置2014的時候,一直要把gcc降級,之前一直做,沒有成功,最後還是安裝了2016版本的不用降級,方便,見Ubuntu 14.04安裝Matlab 2016b教程