caffe安装教程
這篇安裝指南,適合零基礎,新手操作,請高手勿要吐槽!
簡單介紹一下:Caffe,一種ConvolutionalNeural Network的工具包,和Alex的cuda-convnet功能類似,但各有特點。都是使用C++CUDA進行底層編輯,Python進行實現,原作主要部署于Ubuntu,也有大神發布了Windows版,但其他相關資料較少,不適合新手使用,所以還是Ubuntu的比較適合新手。(相對而言)
本文主要包含3個部分,包括:
-  第一部分Linux安裝 
-  第二部分nVidiaCUDA Toolkit的安裝(*.deb方法) 
-  第三部分Caffe-Master的安裝和測試 
第一部分Linux安裝
Linux的安裝,如果不是Linux粉,只是必須,被迫要用它來作作科研什么的,建議安裝成雙系統,網上方法很多,這里我就不詳細寫了,安裝還算是傻瓜式的,和windows的過程類似,至于語言,如果覺得難度還不夠大的話,完全可以裝E文版的,甚至日文,德文~~~,我是裝的簡體中文版,我總共用分出的500G的空間來安裝Ubuntu14.04,這個版本是最新的版本,有個好處是,可以直接訪問Windows8.1的NTFS分區,不用做額外的操作,而且支持中文,例如:$cd /media/yourname/分區名字/文件夾名,當然GUI就更方便了.
我的分區設置如下:
根分區:\100G,
Swap交換分區:128G,這里設置為何內存一樣,據說小于16G的內存,就設置成內存的1.5-2倍
boot分區:200M
Home分區:剩余的空間,鑒于Imagenet,PASCALVOC之類的大客戶,建議500G,至少300G以上。
PS:解決啟動分區錯誤
基本上,重裝起來,都會破壞原來的啟動分區表,還原Windows分區的一個簡單辦法:
$sudo gedit etc/default/grub
設置:GRUB_DEFAULT= 2 #后面的數字為默認啟動的選項,想默認啟動哪個系統就改為對應的編號
$sudo update-grub
該方法適用于安裝雙系統后,"看得到Linux,看不到Windows”的情況,反過來的話,請大家自己百度吧。
第二部分:nVidiaCUDA Toolkit的安裝(*.deb方法)
PS:特別推薦*.deb的方法,目前已提供離線版的deb文件,該方法比較簡單,不需要切換到tty模式,因此不再提供原來的*.run安裝方法,這里以CUDA7.5為例。
一、CUDARepository
獲取CUDA安裝包,安裝包請自行去NVidia官網下載。(https://developer.nvidia.com/cuda-downloads)
首先CD到安裝包所在路徑,我的文件下載到/home/user/Downloads的這個文件夾,直接在終端CD到該文件夾即可。
$cd ~/Downloads
$sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
$sudo apt-get update
$sudo apt-get install -y cuda
二、安裝cudasample
$cd /usr/local/cuda-7.5/samples
$sudo make –j32
全部編譯完成后,進入samples/bin/x86_64/linux/release,sudo下運行deviceQuery
$sudo./deviceQuery
如果出現下列顯卡信息,則驅動及顯卡安裝成功:
$./deviceQuery Starting...
CUDADevice Query (Runtime API) version (CUDART static linking)
Detected1 CUDA Capable device(s)
Device0: "GeForce GTX 670"
CUDADriver Version / Runtime Version 6.5 / 6.5
CUDACapability Major/Minor version number: 3.0
Totalamount of global memory: 4095 MBytes (4294246400bytes)
(7) Multiprocessors, (192) CUDA Cores/MP: 1344 CUDA Cores
GPUClock rate: 1098 MHz (1.10 GHz)
MemoryClock rate: 3105 Mhz
MemoryBus Width: 256-bit
L2Cache Size: 524288 bytes
MaximumTexture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536),3D=(4096, 4096, 4096)
MaximumLayered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
MaximumLayered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
Totalamount of constant memory: 65536 bytes
Totalamount of shared memory per block: 49152 bytes
Totalnumber of registers available per block: 65536
Warpsize: 32
Maximumnumber of threads per multiprocessor: 2048
Maximumnumber of threads per block: 1024
Maxdimension size of a thread block (x,y,z): (1024, 1024, 64)
Maxdimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
Maximummemory pitch: 2147483647 bytes
Texturealignment: 512 bytes
Concurrentcopy and kernel execution: Yes with 1 copy engine(s)
Runtime limit on kernels: Yes
IntegratedGPU sharing Host Memory: No
Supporthost page-locked memory mapping: Yes
Alignmentrequirement for Surfaces: Yes
Devicehas ECC support: Disabled
Devicesupports Unified Addressing (UVA): Yes
DevicePCI Bus ID / PCI location ID: 1 / 0
ComputeMode:
<Default (multiple host threads can use ::cudaSetDevice() with devicesimultaneously) >
deviceQuery,CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version= 6.5, NumDevs = 1, Device0 = GeForce GTX 670
Result= PASS
如果sample測試沒有通過,一般是顯卡驅動的問題,根據提示可以先在NVIDIA官網上下載Linux下最新的顯卡驅動,一般名稱是*.run,調出終端,輸入:
$sudo gedit /etc/modprobe.d /blacklist.conf
在blacklist.conf文件最后加上
blacklistnouveau
blacklistlbm-nouveau
optionsnouveau modest=0
aliasnouveau off
aliaslbm-nouveau off
或者
-  blacklistvga16fb 
-  blacklistnouveau 
-  blacklist rivafb 
-  blacklistnvidiafb 
-  blacklist rivatv 
-  (這里有一行空格) 
?然后刪除卸載舊NVIDIA驅動。
-  sudo apt-get–purge remove nvidia-*(需要清除干凈) 
-  sudo apt-get–purge remove xserver-xorg-video-nouveau 
 
 
 
然后按CTRL+ALT+F2進入tty2模式,進入系統后輸入:
$sudo services lightdm stop
Cd到*.run文件所在的文件夾中,執行:
$sudo chmod –R 777 *.run
$./*.run
驅動安裝完成后,輸入:
$sudo services lightdm start
能啟動證明驅動安裝沒問題
$sudo reboot
重啟電腦
查看驅動型號:
$sudonvidia-smi
重新安裝cuda,直到sample測試通過。
第三部分Caffe的安裝和測試
對于Caffe的安裝嚴格遵照官網的要求來:http://caffe.berkeleyvision.org/installation.html
一、安裝BLAS
ATLAS是做線性代數運算的,還有倆可以選:一個是Intel的MKL,這個要收費,還有一個是OpenBLAS,這個比較麻煩;但是運行效率ATLAS< OpenBLAS < MKL
我就用ATLAS咯:
sudoapt-get install libatlas-base-dev?
2.新建cuda.conf,并編輯之:
$sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
3.完成lib文件的鏈接操作,執行:
$sudo ldconfig -v
二、安裝其他依賴項
1.Google LoggingLibrary(glog),下載地址:https://code.google.com/p/google-glog/,然后解壓安裝:
下載完成后第一件事仍然CD到保存該安裝包的文件夾中,我的是在/home/user/Downloads文件夾中,所以這樣寫:
$cd ~/Downloads
$tar zxvf glog-0.3.3.tar.gz
$cd ~/Downloads/glog-0.3.3
$./configure
$make
$sudo make install
如果沒有權限就chmoda+x glog-0.3.3 -R , 或者索性chmod777 glog-0.3.3 -R , 裝完之后,這個文件夾就可以kill了。
2.其他依賴項,確保都成功
$sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-devlibopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-devlibgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compilerprotobuf-compiler
三、安裝Caffe并測試
1.安裝pycaffe必須的一些依賴項:
$sudo apt-get install -y python-numpy python-scipy python-matplotlibpython-sklearn python-skimage python-h5py python-protobufpython-leveldb python-networkx python-nose python-pandaspython-gflags Cython ipython
2.安裝配置nVidiacuDNN 加速Caffe模型運算
a.安裝前請去先官網下載最新的cuDNN(cudnn-7.0-linux-x64-v4.0-prod)。下載完成后直接雙擊安裝包,把里面的文件CUDA拖到Downloads文件夾中,這一步很重要,要不然后面編譯都不知道錯在哪里了
$cd ~/Downloads/CUDA
$sudo cp include/cudnn.h /usr/local/include
$sudo cp lib64/libcudnn.* /usr/local/lib
b.鏈接cuDNN的庫文件
$sudo ln -sf /usr/local/lib/libcudnn.so.4.0.7/usr/local/lib/libcudnn.so.4
$sudo ln -sf /usr/local/lib/libcudnn.so.4 /usr/local/lib/libcudnn.so
$sudo ldconfig -v
再下載caffe,我把caffe放在用戶目錄下
cd
gitclone https://github.com/BVLC/caffe.git
如果提示沒有GIT,直接根據它說的,裝一個就好了
3.切換到Caffe的文件夾,生成Makefile.config配置文件,執行:
$cd ~/caffe
$cp Makefile.config.example Makefile.config
$geditMakefile.config
4.配置Makefile.config文件(僅列出修改部分)
a.啟用CUDNN,去掉"#"
USE_CUDNN:= 1
b.配置一些引用文件(增加部分主要是解決新版本下,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
c.配置路徑,實現caffe對Python和Matlab接口的支持
PYTHON_LIB:= /usr/local/lib
6.編譯caffe!!!"-j16"是使用CPU的多核進行編譯,可以極大地加速編譯的速度,建議使用。
$make all -j16
$make test -j16
$make runtest -j16
編譯Python用到的caffe文件
$make pycaffe -j16
如果上述過程沒有報錯,那么caffe就配好了,它默認的是python接口。
總結
 
                            
                        - 上一篇: Android堆栈分析
- 下一篇: 计分员计分程序
