Caffe + linux mint17.3 + CUDA 7.5 新手安装配置指南


PS:
为了方便大家使用,我提供一个百度云盘,用于分享部分安装过程中需要用到的软件包和链接地址(所有软件包仅供学术交流使用,请大家尽量去官网下载。)链接: http://pan.baidu.com/s/1c2lZAes 密码: tmch
简单介绍一下:Caffe,一种Convolutional Neural Network的工具包,和Alex的cuda-convnet功能类似,但各有特点。都是使用C++ CUDA进行底层编辑,Python进行实现,原作主要部署于Ubuntu,也有大神发布了Windows版,但其他相关资料较少,不适合新手使用,所以还是Ubuntu的比较适合新手。(相对而言)
本文主要包含5个部分,包括:
    - 第一部分 Linux安装
    - 第二部分 nVidia CUDA Toolkit的安装(*.deb方法)
    - 第三部分 Matlab安装和调试
    - 第四部分 Caffe-Master的安装和测试
    - 第五部分 增加新层(以Fast RCNN提出的 ROIPooling layer 为例)

第一部分 Linux安装
Linux的安装,建议安装linux mint
下载链接http://verify.iso.mirrors.ustc.edu.cn/linuxmint-cd/stable/17.3/linuxmint-17.3-cinnamon-64bit.iso
根分区: \ 100G,
Swap交换分区:28G
boot分区:200M
Home分区:剩余的空间,鉴于Imagenet,PASCAL VOC之类的大客户,建议500G,至少300G以上。

第二部分:Nvidia CUDA Toolkit的安装(*.deb方法)
PS:特别推荐*.deb的方法,目前已提供离线版的deb文件,该方法比较简单,不需要切换到tty模式,因此不再提供原来的*.run安装方法,这里以CUDA 7.5为例。
一、CUDA Repository(更详细的细节参照tensorflow开发环境的搭建)
获取CUDA安装包,链接: http://pan.baidu.com/s/1slMMQjN 密码: fxji
$ sudo dpkg -i cuda-repo-ubuntu1404_7.5-18_amd64.deb
$ sudo apt-get update
$ sudo apt-get install cuda

第三部分 Matlab安装和调试(以Matlab 2014a为例)
1 下载Matlab2014的Linux版本及破解文件
2 下载完成后将iso文件挂载到Linux
sudo mkdir /media/matlab
sudo mount -o loop [path][filename].iso /media/matlab
cd /media/matlab
sudo ./install
进行安装

3 选项:不使用Internet安装
序列号: 12345-67890-12345-67890
默认路径:/usr/local/MATLAB/R2014a
勾选从默认启动路径创建符号链接(实现在任意位置运行matlab启动程序)
4 破解
安装完成后使用crack下的license进行激活
将crack文件夹下的libmwservices.so copy到  /usr/local/MATLAB/R2014A/bin/glnxa64
$ sudo cp libmwservices.so /usr/local/MATLAB/R2014a/bin/glnxa64/
libmwservices.so需要自己准备)
同时,特别注意:还需要按照网上的步骤使用crack文件夹激活matlab。
运行MATLAB命令行:sudo ./matlab

5.解决编译器gcc/g++版本问题。
因为Mint 17的gcc/g++版本是4.8.4,//查看你的内核GCC版本:$ cat /proc/version //而Matlab 2014a(2015a)的版本是4.7.x所以在使用matlab调用mex文件的时候,基本上都会报错,根据报错信息,考虑如下两步解决方案。
A. 降级安装gcc/g++版本为4.7.x
(a). 下载gcc/g++ 4.7.x
$ sudo apt-get install -y gcc-4.7
$ sudo apt-get install -y g++-4.7
(b). 链接gcc/g++实现降级
$ cd /usr/bin
$ sudo rm gcc
$ sudo ln -s gcc-4.7 gcc
$ sudo rm g++
$ sudo ln -s g++-4.7 g++
B. 暴力引用新版本GLIBCXX_3.4.20
$ sudo cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.19 /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6.0.19 (libstdc++.so.6.0.19的版本,可能因为系统不同而不同,使用最新的就可以了。)

目录切换到 /usr/local/MATLAB/R2014a/sys/os/glnxa64/ ,非常重要!
$ sudo mv libstdc++.so.6 libstdc++.so.6.backup (仅仅是备份,可以不备份,直接删除)。
$ sudo ln -s libstdc++.so.6.0.19 libstdc++.so.6
$ sudo ldconfig -v
通过命令“strings /usr/local/MATLAB/R2014a/sys/os/glnxa64/libstdc++.so.6 | grep GLIBCXX_” 可以看一下,是否已经成功包含了GLIBCXX_3.4.21,如果已经存在,基本上就成功了。
6.编译Matlab用到的caffe文件(见第五部分)
第五部分 Caffe-Master的安装和测试
对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html
一、安装BLAS
这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL(Intel(R) Parallel Studio XE Cluster Edition for Linux 2016),下载链接是:https://software.intel.com/en-us/intel-education-offerings, 使用学生身份(邮件 + 学校)下载Student版,填好各种信息,可以直接下载,同时会给你一个邮件告知序列号。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。
很多人说,下载不了,本人于2016年4月8日使用该地址下载最新的2016版本,仍然没有问题,请大家细心操作^_^。
接下来是安装过程,先授权,然后安装:
解压 parallel_studio_xe_2016_update2.tgz,并且打开解压后的文件夹 (如果你是直接拷贝压缩文件过来的)
#必须先将压缩包复制到你的路径下,然后解压缩安装,否则无法启动安装程序
鼠标右键点击install_GUI.sh,属性,权限,在允许以程序执行文件前的方框内打勾
$ sudo ./install_GUI.sh
PS:本教程是 安装在默认位置(opt/intel)基础下进行的
二、MKL与CUDA的环境设置
1. 新建intel_mkl.conf, 并编辑之:
$ sudo gedit /etc/ld.so.conf.d/intel_mkl.conf
/opt/intel/lib/intel64
/opt/intel/mkl/lib/intel64
2. 新建cuda.conf,并编辑之:
$ sudo gedit /etc/ld.so.conf.d/cuda.conf
/usr/local/cuda/lib64
/lib
3. 完成lib文件的链接操作,执行:
$ sudo ldconfig -v
三、安装OpenCV 3.0.0
1. 下载并编译OpenCV(官网原版OpenCV:http://opencv.org/), 或者使用我提供的修改版的安装包(前面的百度云下载)(下面的安装方式使用该包完成,安装包修改了dependencies.sh文件并增加了OpenCV 3.0.0的安装文件)
2. 切换到文件保存的文件夹,然后安装依赖项:
$ sudo sh Ubuntu/dependencies.sh
3. 切换目录Ubuntu\3.0\安装OpenCV 3.0.0:
$ sudo sh opencv3_0_0.sh
保证网络畅通,因为软件需要联网这里时间较长,请耐心等待。。。,
```
补充一个opencv2.4.10的安装方法:
下载install_OpenCV:
$gitclonehttps://github.com/jayrambhia/Install-OpenCV.git
下载opencv的依赖:
$sudoapt-get-qqremoveffmpegx264libx264-dev
$sudo apt-get install -y libopencv-dev build-essential checkinstall cmake pkg-config yasm libtiff5-dev libjpeg-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev libxine2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev python-dev python-numpy libtbb-dev libqt4-dev libgtk2.0-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
编译安装opencv2.4.10:
$ cd Install-OpenCV/Ubuntu/2.4
$ sudo sh opencv2_4_10.sh

测试可用
```
四、安装其他依赖项tex
1. Google Logging Library(glog),下载地址:页头,然后解压安装:
$ tar zxvf glog-0.3.3.tar.gz
$ ./configure
$ make
$ sudo make install
如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。
2. 其他依赖项,确保都成功
$ sudo apt-get install libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler protobuf-c-compiler protobuf-compiler
不成功的话分开安装,例如
sudo apt-get install libprotobuf-dev
sudo apt-get install libleveldb-dev
……
sudo apt-get install protobuf-compiler
```
caffe dependencies:
sudo apt-get install -y libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler libhdf5-serial-dev protobuf-c-compiler 
测试可用
```

五、安装Caffe并测试
1. 安装pycaffe必须的一些依赖项:
$ sudo apt-get install python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
不成功的话分开安装
```
pycaffedependencies:
sudo apt-get install -y python-dev python-numpy python-scipy python-matplotlib python-sklearn python-skimage python-h5py python-protobuf python-leveldb python-networkx python-nose python-pandas python-gflags Cython ipython
测试可用
```

2. 安装配置nVidia cuDNN 加速Caffe模型运算
a. 在之前给的百度云文件夹中找到 (cudnn-7.0-linux-x64-v4.0-prod)。
$ 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
3. Download Caffe-master:
git clone https://github.com/BVLC/caffe.git
切换到Caffe-master的文件夹,生成Makefile.config配置文件,执行:
$ cp Makefile.config.example Makefile.config

4. 配置Makefile.config文件(仅列出修改部分)
a. 启用CUDNN,去掉"#"
USE_CUDNN := 1
```
查看你的GPU是否在CUDA支持名单里:
https://developer.nvidia.com/cuda-gpus
如果不在支持名单中,uncomment CPU_ONLY := 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. 启用Intel Parallel Studio XE 2016
BLAS := mkl
d. 配置路径,实现caffe对Python和Matlab接口的支持
PYTHON_LIB := /usr/local/lib
MATLAB_DIR := /usr/local/MATLAB/R2014a
c. 启用OpenCV 3.0, 去掉"#"
OPENCV_VERSION =3
```
if opencv2_4_10, comment
```
注意:红色字体部分是需要修改或添加的部分。
6. 编译caffe-master!!!"-j16"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。
$ make all -j16
$ make test -j16
$ make runtest -j16
编译Python和Matlab用到的caffe文件
$ make pycaffe -j16
$ make matcaffe -j16
```
ifusingpycaffe
$make distribute
$sudo gedit /etc/profile
add:
exportPYTHONPATH=/path-to-caffe/distribute/python:$PYTHONPATH
exportLD_LIBRARY_PATH=/path-to-caffe/distribute/lib:$LD_LIBRARY_PATH
$source /etc/profile
```
六、使用MNIST数据集进行测试
Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html
1. 数据预处理
$ sh data/mnist/get_mnist.sh
2. 重建lmdb文件。Caffe支持多种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,HDF5等,根据自己需要选择不同输入吧。
$ sh examples/mnist/create_mnist.sh
生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集
3. 训练mnist
$ sh examples/mnist/train_lenet.sh
至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了,虽然MNIST数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。
测试平台1:i7-4770K/16G/GTX 770/CUDA 6.5
MNIST Windows8.1 on CPU:620s
MNIST Windows8.1 on GPU:190s
MNIST Ubuntu 14.04 on CPU:270s
MNIST Ubuntu 14.04 on GPU:160s
MNIST Ubuntu 14.04 on GPU with cuDNN:30s
Cifar10_full on GPU wihtout cuDNN:73m45s = 4428s (Iteration 70000)
Cifar10_full on GPU with cuDNN:20m7s = 1207s (Iteration 70000)

测试平台2:技嘉P35X v3,i7-4720HQ@2.6G/16G/NVidia GTX 980 8G
MNIST Ubuntu 15.04 on GPU with cuDNN:33s

测试平台3:Dell 7910,E5 2623v3 3.0G *2 /128G/ NVidia Titan X 12G
MNIST Ubuntu 15.04 on GPU with cuDNN:23s (真是逆天啊!)

对比测试1:2*E5-2620(12CPUs)/128G/Tesla K20M/CUDA5.5/CentOS 6.4
MNIST CentOS 6.4 on GPU:294s
对比测试2:Tesla K40M/CUDA6.5/ubuntu 14.04
MNIST on GPU with cuDNN:30s
对比测试3:GTX 660/CUDA6.5/ubuntu 14.04
MNIST on GPU with cuDNN:49s

------------------------------
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值