caffe安装教程
這篇安裝指南,適合零基礎(chǔ),新手操作,請(qǐng)高手勿要吐槽!
簡(jiǎn)單介紹一下:Caffe,一種ConvolutionalNeural Network的工具包,和Alex的cuda-convnet功能類似,但各有特點(diǎn)。都是使用C++CUDA進(jìn)行底層編輯,Python進(jìn)行實(shí)現(xiàn),原作主要部署于Ubuntu,也有大神發(fā)布了Windows版,但其他相關(guān)資料較少,不適合新手使用,所以還是Ubuntu的比較適合新手。(相對(duì)而言)
本文主要包含3個(gè)部分,包括:
-
第一部分Linux安裝
-
第二部分nVidiaCUDA Toolkit的安裝(*.deb方法)
-
第三部分Caffe-Master的安裝和測(cè)試
第一部分Linux安裝
Linux的安裝,如果不是Linux粉,只是必須,被迫要用它來(lái)作作科研什么的,建議安裝成雙系統(tǒng),網(wǎng)上方法很多,這里我就不詳細(xì)寫(xiě)了,安裝還算是傻瓜式的,和windows的過(guò)程類似,至于語(yǔ)言,如果覺(jué)得難度還不夠大的話,完全可以裝E文版的,甚至日文,德文~~~,我是裝的簡(jiǎn)體中文版,我總共用分出的500G的空間來(lái)安裝Ubuntu14.04,這個(gè)版本是最新的版本,有個(gè)好處是,可以直接訪問(wèn)Windows8.1的NTFS分區(qū),不用做額外的操作,而且支持中文,例如:$cd /media/yourname/分區(qū)名字/文件夾名,當(dāng)然GUI就更方便了.
我的分區(qū)設(shè)置如下:
根分區(qū):\100G,
Swap交換分區(qū):128G,這里設(shè)置為何內(nèi)存一樣,據(jù)說(shuō)小于16G的內(nèi)存,就設(shè)置成內(nèi)存的1.5-2倍
boot分區(qū):200M
Home分區(qū):剩余的空間,鑒于Imagenet,PASCALVOC之類的大客戶,建議500G,至少300G以上。
PS:解決啟動(dòng)分區(qū)錯(cuò)誤
基本上,重裝起來(lái),都會(huì)破壞原來(lái)的啟動(dòng)分區(qū)表,還原Windows分區(qū)的一個(gè)簡(jiǎn)單辦法:
$sudo gedit etc/default/grub
設(shè)置:GRUB_DEFAULT= 2 #后面的數(shù)字為默認(rèn)啟動(dòng)的選項(xiàng),想默認(rèn)啟動(dòng)哪個(gè)系統(tǒng)就改為對(duì)應(yīng)的編號(hào)
$sudo update-grub
該方法適用于安裝雙系統(tǒng)后,"看得到Linux,看不到Windows”的情況,反過(guò)來(lái)的話,請(qǐng)大家自己百度吧。
第二部分:nVidiaCUDA Toolkit的安裝(*.deb方法)
PS:特別推薦*.deb的方法,目前已提供離線版的deb文件,該方法比較簡(jiǎn)單,不需要切換到tty模式,因此不再提供原來(lái)的*.run安裝方法,這里以CUDA7.5為例。
一、CUDARepository
獲取CUDA安裝包,安裝包請(qǐng)自行去NVidia官網(wǎng)下載。(https://developer.nvidia.com/cuda-downloads)
首先CD到安裝包所在路徑,我的文件下載到/home/user/Downloads的這個(gè)文件夾,直接在終端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
全部編譯完成后,進(jìn)入samples/bin/x86_64/linux/release,sudo下運(yùn)行deviceQuery
$sudo./deviceQuery
如果出現(xiàn)下列顯卡信息,則驅(qū)動(dòng)及顯卡安裝成功:
$./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測(cè)試沒(méi)有通過(guò),一般是顯卡驅(qū)動(dòng)的問(wèn)題,根據(jù)提示可以先在NVIDIA官網(wǎng)上下載Linux下最新的顯卡驅(qū)動(dòng),一般名稱是*.run,調(diào)出終端,輸入:
$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驅(qū)動(dòng)。
-
sudo apt-get–purge remove nvidia-*(需要清除干凈)
-
sudo apt-get–purge remove xserver-xorg-video-nouveau
然后按CTRL+ALT+F2進(jìn)入tty2模式,進(jìn)入系統(tǒng)后輸入:
$sudo services lightdm stop
Cd到*.run文件所在的文件夾中,執(zhí)行:
$sudo chmod –R 777 *.run
$./*.run
驅(qū)動(dòng)安裝完成后,輸入:
$sudo services lightdm start
能啟動(dòng)證明驅(qū)動(dòng)安裝沒(méi)問(wèn)題
$sudo reboot
重啟電腦
查看驅(qū)動(dòng)型號(hào):
$sudonvidia-smi
重新安裝cuda,直到sample測(cè)試通過(guò)。
第三部分Caffe的安裝和測(cè)試
對(duì)于Caffe的安裝嚴(yán)格遵照官網(wǎng)的要求來(lái):http://caffe.berkeleyvision.org/installation.html
一、安裝BLAS
ATLAS是做線性代數(shù)運(yùn)算的,還有倆可以選:一個(gè)是Intel的MKL,這個(gè)要收費(fèi),還有一個(gè)是OpenBLAS,這個(gè)比較麻煩;但是運(yùn)行效率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文件的鏈接操作,執(zhí)行:
$sudo ldconfig -v
二、安裝其他依賴項(xiàng)
1.Google LoggingLibrary(glog),下載地址:https://code.google.com/p/google-glog/,然后解壓安裝:
下載完成后第一件事仍然CD到保存該安裝包的文件夾中,我的是在/home/user/Downloads文件夾中,所以這樣寫(xiě):
$cd ~/Downloads
$tar zxvf glog-0.3.3.tar.gz
$cd ~/Downloads/glog-0.3.3
$./configure
$make
$sudo make install
如果沒(méi)有權(quán)限就chmoda+x glog-0.3.3 -R , 或者索性chmod777 glog-0.3.3 -R , 裝完之后,這個(gè)文件夾就可以kill了。
2.其他依賴項(xiàng),確保都成功
$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并測(cè)試
1.安裝pycaffe必須的一些依賴項(xiàng):
$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模型運(yùn)算
a.安裝前請(qǐng)去先官網(wǎng)下載最新的cuDNN(cudnn-7.0-linux-x64-v4.0-prod)。下載完成后直接雙擊安裝包,把里面的文件CUDA拖到Downloads文件夾中,這一步很重要,要不然后面編譯都不知道錯(cuò)在哪里了
$cd ~/Downloads/CUDA
$sudo cp include/cudnn.h /usr/local/include
$sudo cp lib64/libcudnn.* /usr/local/lib
b.鏈接cuDNN的庫(kù)文件
$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
如果提示沒(méi)有GIT,直接根據(jù)它說(shuō)的,裝一個(gè)就好了
3.切換到Caffe的文件夾,生成Makefile.config配置文件,執(zhí)行:
$cd ~/caffe
$cp Makefile.config.example Makefile.config
$geditMakefile.config
4.配置Makefile.config文件(僅列出修改部分)
a.啟用CUDNN,去掉"#"
USE_CUDNN:= 1
b.配置一些引用文件(增加部分主要是解決新版本下,HDF5的路徑問(wèn)題)
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.配置路徑,實(shí)現(xiàn)caffe對(duì)Python和Matlab接口的支持
PYTHON_LIB:= /usr/local/lib
6.編譯caffe!!!"-j16"是使用CPU的多核進(jìn)行編譯,可以極大地加速編譯的速度,建議使用。
$make all -j16
$make test -j16
$make runtest -j16
編譯Python用到的caffe文件
$make pycaffe -j16
如果上述過(guò)程沒(méi)有報(bào)錯(cuò),那么caffe就配好了,它默認(rèn)的是python接口。
總結(jié)
- 上一篇: Android堆栈分析
- 下一篇: 计分员计分程序