Ubuntu14.04+caffe+cuda7.5 環境搭建以及MNIST數據集的訓練與測試


Ubuntu14.04+caffe+cuda 環境搭建以及MNIST數據集的訓練與測試

一、ubuntu14.04的安裝:

  ubuntu的安裝是一件十分簡單的事情,這里給出一個參考教程:

    http://jingyan.baidu.com/article/76a7e409bea83efc3b6e1507.html

二、cuda的安裝:

  1、首先下載nvidia cuda的倉庫安裝包(我的是ubuntu 14.04 64位,所以下載的是ubuntu14.04的安裝包,如果你是32位的可以參看具體的地址,具體的地址是https://developer.nvidia.com/cuda-downloads)

wget http://developer.download.nvidia.com/compute/cuda/repos/ubuntu1404/x86_64/cuda-repo-ubuntu1404_6.5-14_amd64.deb

    下載完成之后可以使用如下命令安裝它,注意文件名修改為cuda-repo-ubuntu1404_6.5-14_amd64.deb:

sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb  

  2、安裝好倉庫之后,就可以更新你的本地倉庫。

sudo apt-get update 

    最后開始安裝cuda以及顯卡驅動(安裝cuda的同時就會把顯卡驅動也全部安裝好,這個真的很方便。但是下載的時間有點長。)

sudo apt-get install cuda  

  3、安裝完之后你需要設置環境變量:

$ export PATH=/usr/local/cuda-6.5/bin:$PATH  
$ export LD_LIBRARY_PATH=/usr/local/cuda-6.5/lib64:$LD_LIBRARY_PATH 

  4、設置完畢之后,你還可以選擇是否安裝cuda附帶的示例代碼(<dir>表示你要安裝的位置,你可以將<dir>替換成~),並編譯它:

$ cuda-install-samples-6.5.sh <dir>  
cd ~/NVIDIA_CUDA-6.5_Samples 

    然后進入bin目錄,並運行devicequery

cd ~/NVIDIA_CUDA-6.5_Samples/bin 
./ deviceQuery

    如果出現下列顯卡信息, 則驅動及顯卡安裝成功:

./deviceQuery Starting...

 CUDA Device Query (Runtime API) version (CUDART static linking)

Detected 1 CUDA Capable device(s)

Device 0: "GeForce GTX 670"
  CUDA Driver Version / Runtime Version          6.5 / 6.5
  CUDA Capability Major/Minor version number:    3.0
  Total amount of global memory:                 4095 MBytes (4294246400 bytes)
  ( 7) Multiprocessors, (192) CUDA Cores/MP:     1344 CUDA Cores
  GPU Clock rate:                                1098 MHz (1.10 GHz)
  Memory Clock rate:                             3105 Mhz
  Memory Bus Width:                              256-bit
  L2 Cache Size:                                 524288 bytes
  Maximum Texture Dimension Size (x,y,z)         1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
  Maximum Layered 1D Texture Size, (num) layers  1D=(16384), 2048 layers
  Maximum Layered 2D Texture Size, (num) layers  2D=(16384, 16384), 2048 layers
  Total amount of constant memory:               65536 bytes
  Total amount of shared memory per block:       49152 bytes
  Total number of registers available per block: 65536
  Warp size:                                     32
  Maximum number of threads per multiprocessor:  2048
  Maximum number of threads per block:           1024
  Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
  Max dimension size of a grid size    (x,y,z): (2147483647, 65535, 65535)
  Maximum memory pitch:                          2147483647 bytes
  Texture alignment:                             512 bytes
  Concurrent copy and kernel execution:          Yes with 1 copy engine(s)
  Run time limit on kernels:                     Yes
  Integrated GPU sharing Host Memory:            No
  Support host page-locked memory mapping:       Yes
  Alignment requirement for Surfaces:            Yes
  Device has ECC support:                        Disabled
  Device supports Unified Addressing (UVA):      Yes
  Device PCI Bus ID / PCI location ID:           1 / 0
  Compute Mode:
     < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >

deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 670
Result = PASS

  具體的安裝過程可以參考英文。

  http://docs.nvidia.com/cuda/cuda-getting-started-guide-for-linux/index.html

三、安裝OpenCV:

  這個盡量不要手動安裝, Github上有人已經寫好了完整的安裝腳本:https://github.com/jayrambhia/Install-OpenCV下載該腳本,進入Install-OpenCV-master/Ubuntu/2.4 目錄, 給所有shell腳本加上可執行權限

chmod +x *.sh

  然后安裝最新版本 (當前為2.4.9)

sudo ./opencv2_4_9.sh

  腳本會自動安裝依賴項,下載安裝包,編譯並安裝OpenCV。整個過程大概半小時左右。 

四、安裝其他依賴項

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

五、下載caffe,關於MKL:

  1、下載caffe

    http://download.csdn.net/download/jiangcunyeyu/8329829

    下載后直接解壓解壓在你的工程路徑內,無需安裝。

  2、關於MKL

    MKL是intel的收費數學計算庫,獲取是一件十分蛋疼的事情,如果你有時間,自己百度教程安裝.MKL不是必須的,OpenBLAS和atlas都可以替代之,並且這兩個庫的安裝和使用十分簡單。自己百度教程。

    安裝ATLAS 

sudo apt-get install libatlas-base-dev

六、安裝caffe所需的python相關包:

  首先安裝pip和python-dev (系統默認有python環境的, 不過我們需要的使python-dev)

sudo apt-get install python-dev python-pip

  然后cd到caffe所在路徑執行如下命令安裝編譯caffe python wrapper 所需要的額外包

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

七、編譯caffe:

  進入caffe根目錄, 首先復制一份Makefile.config

cp Makefile.config.example Makefile.config

  然后修改里面的內容,主要需要修改的參數包括

CPU_ONLY 是否只使用CPU模式,沒有GPU沒安裝CUDA的同學可以打開這個選項BLAS (使用intel mkl還是OpenBLAS)DEBUG 是否使用debug模式,打開此選項則可以在eclipse或者NSight中debug程序

完成設置后, 開始編譯

make all -j4
make test
make runtest

  -j4注意 -j4 是指使用幾個線程來同時編譯, 可以加快速度, j后面的數字可以根據CPU core的個數來決定。

  編譯pycaffe:

make pycaffe 

  然后基本就全部安裝完拉.

八、MNIST數據集訓練以及測試:

  1、訓練:

    在Caffe安裝目錄之下,首先獲得MNIST數據集:

cd data/mnist
sh get_mnist.sh

    生成mnist-train-lmdb/ 和 mnist-test-lmdb/,把數據轉化成lmdb格式(注意這里要從caffe根目錄運行,不然會報錯,不懂自己讀一讀creat_mnist.sh):

sh examples/mnist/create_mnist.sh

    訓練網絡(同上,從caffe根目錄運行):

sh examples/mnist/train_lenet.sh

    下圖(盜圖):

  2、測試:

    當所有數據都訓練好之后,接下來就是如何將模型應用到實際數據了:

./build/tools/caffe.bin test -model=examples/mnist/lenet_train_test.prototxt -weights=examples/mnist/lenet_iter_10000.caffemodel -gpu=0 

    如果沒有GPU則使用

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

    test:表示對訓練好的模型進行Testing,而不是training。其他參數包括train, time, device_query。-model=XXX:指定模型prototxt文件,這是一個文本文件,詳細描述了網絡結構和數據集信息。結果如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM