Caffe (Convolution Architecture For Feature Extraction)做为深度学习CNN一个很是火的框架,对于初学者来讲,搭建Linux下的Caffe平台是学习深度学习关键的一步,其过程也比较繁琐,回想起当初折腾的那几天,遂总结一下Ubuntu14.04的配置过程,方便之后新手能在此少走弯路。python
1. 安装build-essentialslinux
安装开发所须要的一些基本包git
1: sudo apt-get install build-essential
2. 安装NVIDIA驱动github
输入下列命令添加驱动源shell
1: sudo add-apt-repository ppa:xorg-edgers/ppa
2: sudo apt-get update
安装340版本驱动(具体版本取决于电脑显卡的型号,详细可到NVIDIA官网查看)ubuntu
1: sudo apt-get install nvidia-340
安装完成后,继续安装下列包bash
1: sudo apt-get install nvidia-340-uvm
安装驱动完毕,reboot.app
3. 安装CUDA 6.5框架
CUDA的Deb包安装较为简单,按照官网流程,事先安装必要的库学习
1: sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
3.1 安装CUDA
而后经过如下命令获取Ubuntu 14.04 CUDA相关的repository package
1: $ sudo dpkg -i cuda-repo-ubuntu1404_6.5-14_amd64.deb
2: $ sudo apt-get update
而后开始安装CUDA Toolkit
1: $ sudo apt-get install cuda
此时须要下载较长时间,网速较慢的中途能够出去吃个饭~
3.2 环境配置
CUDA安装完毕后,须要对.bashrc加入一下命令来配置环境
1: export CUDA_HOME=/usr/local/cuda-6.52: export LD_LIBRARY_PATH=${CUDA_HOME}/lib64
1: PATH=${CUDA_HOME}/bin:${PATH}2: export PATH
经过复制SDK samples 到主目录下,完成整个编译过程
1: $ cuda-install-samples-6.5.sh ~
2: $ cd ~/NVIDIA_CUDA-6.5_Samples
3: $ make
若是以上过程都成功后,能够经过运行bin/x86_64/linux/release 下的deviceQuery来验证一下。若是出现如下信息,则说明驱动以及显卡安装成功
1: ./deviceQuery Starting...
2:
3: CUDA Device Query (Runtime API) version (CUDART static linking)
4:
5: Detected 1 CUDA Capable device(s)
6:
7: Device 0: "GeForce GTX 670"
8: CUDA Driver Version / Runtime Version 6.5 / 6.5
9: CUDA Capability Major/Minor version number: 3.0
10: Total amount of global memory: 4095 MBytes (4294246400 bytes)
11: ( 7) Multiprocessors, (192) CUDA Cores/MP: 1344 CUDA Cores
12: GPU Clock rate: 1098 MHz (1.10 GHz)
13: Memory Clock rate: 3105 Mhz
14: Memory Bus Width: 256-bit
15: L2 Cache Size: 524288 bytes
16: Maximum Texture Dimension Size (x,y,z) 1D=(65536), 2D=(65536, 65536), 3D=(4096, 4096, 4096)
17: Maximum Layered 1D Texture Size, (num) layers 1D=(16384), 2048 layers
18: Maximum Layered 2D Texture Size, (num) layers 2D=(16384, 16384), 2048 layers
19: Total amount of constant memory: 65536 bytes
20: Total amount of shared memory per block: 49152 bytes
21: Total number of registers available per block: 65536
22: Warp size: 32
23: Maximum number of threads per multiprocessor: 2048
24: Maximum number of threads per block: 1024
25: Max dimension size of a thread block (x,y,z): (1024, 1024, 64)
26: Max dimension size of a grid size (x,y,z): (2147483647, 65535, 65535)
27: Maximum memory pitch: 2147483647 bytes
28: Texture alignment: 512 bytes
29: Concurrent copy and kernel execution: Yes with 1 copy engine(s)
30: Run time limit on kernels: Yes
31: Integrated GPU sharing Host Memory: No
32: Support host page-locked memory mapping: Yes
33: Alignment requirement for Surfaces: Yes
34: Device has ECC support: Disabled
35: Device supports Unified Addressing (UVA): Yes
36: Device PCI Bus ID / PCI location ID: 1 / 0
37: Compute Mode:
38: < Default (multiple host threads can use ::cudaSetDevice() with device simultaneously) >
39:
40: deviceQuery, CUDA Driver = CUDART, CUDA Driver Version = 6.5, CUDA Runtime Version = 6.5, NumDevs = 1, Device0 = GeForce GTX 670
41: Result = PASS
4. 安装BLAS
Caffe的BLAS能够有三种选择,分别为atlas、mkl以及openBLAS。对于mkl能够到intel官网下载,解压完成后又一个install_GUI.sh文件,执行该文件会出现图形安装界面,根听说明一步一步执行便可。
也可对openBLAS源码进行编译,不过须要gcc以及gfortran等相关编译器。我的认为比较便捷的是atlas,在Caffe官网上有相关的介绍,对于Ubuntu,经过如下命令能够下载atlas
1: sudo apt-get install libatlas-base-dev
5. 安装OpenCV
OpenCV库安装能够经过网上写好的脚本进行下载:https://github.com/jayrambhia/Install-OpenCV
解压文档后,进入Ubuntu/2.4 给全部的shell脚本加上可执行权限
1: chmod +x *.sh
而后执行 opencv2_4_9.sh 安装最新版本,注意,OpenCV 2.4.9不支持gcc-4.9以上的编译器!!
6. 安装其余dependencies
对于Ubuntu 14.04,执行如下命令下载其余相关依赖库文件
1: sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev
2: sudo apt-get install libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler
7. 安装python以及Matlab
首先安装pip和python –dev
1: sudo apt-get install python-dev python-pip
以及caffe python wrapper所须要的额外包
1: sudo pip install -r /path/to/caffe/python/requirements.txt
Matlab接口须要额外安装Matlab程序
Last shot --- 编译Caffe
完成全部的环境配置,终于能够编译caffe了,经过官网下载caffe源码,进入根目录caffe-master,首先复制一份makefile
1: cp Makefile.config.example Makefile.config
而后修改里面的内容,主要有:
CPU_ONLY 是否采用cpu模式,不然选择CUDNN(这里的CUDNN须要在NVIDIA-CUDNN下载,还有经过email注册申请才能经过审核)
BLAS:=atlas(也能够是open或者mkl)
DEBUG 若是须要debug模式
MATLAB_DIR 若是须要采用matlab 接口
完成配置后,能够进行编译了
1: make all -j4
2: make test
3: make runtest
最后若是都能正常,证实caffe里面全部的例子程序均可以运行了,放心都跑CIFAR、MNIST以及ImageNet吧~~