这篇安装指南,适合零基础,新手操作,请高手勿要吐槽!
简单介绍一下: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
重启电脑
查看驱动型号:
重新安装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接口。