Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南

来源:互联网 发布:mac os x 10.11.6镜像 编辑:程序博客网 时间:2024/04/28 07:55

Caffe + Ubuntu 14.04 + CUDA 6.5 新手安装配置指南

返回

特别感谢在学习和使用Caffe和CNN的过程中,超级大神Yanqing Jia, Eric Tzeng, Evan Shelhamer, Ross Girshick, Sergey Karayev, Sergio Gadarrama给予的帮助。

特别说明:

0. Caffe 官网地址:http://caffe.berkeleyvision.org/

1. 本文为作者亲自实验完成,但仅限用于学术交流使用,使用本指南造成的任何不良后果由使用者自行承担,与本博主无关,谢谢!

2. 本文旨在为新手提供一个参考,请高手勿要吐槽,有暴力倾向者,请绕道,谢谢!

3. 本文使用2014年11月16日下载版本完成,已包含NVidia cuDNN组件的配置。

4. 最后更新时间:2014年11月16日。本次更新删除了大多数口水话,并调整了章节顺序,默认同时支持Python接口和Matlab接口。软件中已经修正的问题,本文不再累赘叙述,因此尽量下载最新版的Caffe源程序。

洋洋洒洒一大篇,就没截图了,经过几个月的使用,使用Caffe还是建议在Ubuntu系统下完成,因为不需要太多的编程,Windows版需要一定的编程基础,且因为没有官方Release版,所以更新和FixBug都麻烦一些.这里有个建议是,如果将来要做大数据集,最好事先给Linux留多点空间,比如Imagenet,估计500G都不为过。不过也可以全部使用软链接链接到Windows的NTFS磁盘,我后期实验都是使用这个方法。另外,请阅读完,至少一个部分再进行动手操作,避免多余的工作,写作能力有限,尽请见谅。

这篇安装指南,适合零基础,新手操作,请高手勿要吐槽!

简单介绍一下:Caffe,一种Convolutional Neural Network的工具包,和Alex的cuda-convnet功能类似,但各有特点。都是使用C++ CUDA进行底层编辑,Python进行实现,原作主要部署于Ubuntu,也有大神发布了Windows版,但其他相关资料较少,不适合新手使用,所以还是Ubuntu的比较适合新手。(相对而言)

本文主要包含5个部分,包括:

  • 第一部分 Linux安装
  • 第二部分 nVidia驱动和CUDA Toolkit的安装和调试
  • 第三部分 Python安装和调试
  • 第四部分 Matlab安装和调试
  • 第五部分 Caffe的安装和测试

第一部分 Linux安装

Linux的安装,如果不是Linux粉,只是必须,被迫要用它来作作科研什么的,建议安装成双系统,网上方法很多,这里我就不详细写了,安装还算是傻瓜式的,和windows的过程类似,至于语言,如果觉得难度还不够大的话,完全可以装E文版的,甚至日文,德文~~~,我是装的简体中文版,我总共用分出的500G的空间来安装Ubuntu 14.04,这个版本是最新的版本,有个好处是,可以直接访问Windows8.1的NTFS分区,不用做额外的操作,而且支持中文,例如:$ cd /media/yourname/分区名字/文件夹名,当然GUI就更方便了.

我的分区设置如下:

根分区: \ 50G,

Swap交换分区:16G ,这里,我设置和我的内存一样,据说小于16G的内存,就设置成内存的1.5-2倍

boot分区:200M

Home分区:剩余的空间,鉴于Imagenet,PASCAL VOC之类的大客户,建议500G,至少300G以上。

PS:解决启动分区错误

基本上,重装起来,都会破坏原来的启动分区表,还原Windows分区的一个简单办法:

设置:GRUB_DEFAULT = 2

该方法适用于安装双系统后,"看得到Linux,看不到Windows”的情况,反过来的话,请大家自己百度吧。

第二部分:nVidia驱动和CUDA Toolkit的安装和调试

PS:这里其实可以参考nVidia 官方提供的CUDA安装手册,非常相近,32页的,不过是全英文的,我就是参考这个文档完成后面的配置和验证工作。https://developer.nvidia.com/rdp/cuda-65-rc-toolkit-download#linux。一般要输入你的用户名和密码,就是下载6.5的那个账号。

一、Verify You Have a CUDA-Capable GPU

执行下面的操作,然后验证硬件支持GPU CUDA,只要型号存在于https://developer.nvidia.com/cuda-gpus,就没问题了

二、Verify You Have a Supported Version of Linux

重点是“x86_64”这一项,保证是x86架构,64bit系统

三、Verify the System Has gcc Installed

没有的话就先安装吧,这个是必须的用来编译CUDA Toolkit,不过Ubuntu 14.04是默认有的

四、Download the NVIDIA CUDA Toolkit

下载地址:https://developer.nvidia.com/cuda-toolkit

验证地址:https://developer.nvidia.com/rdp/cuda-rc-checksums

例如:md5sum cuda_6.5.11_rc_linux_64.run ,这个文件的正确 md5 = a47b0be83dea0323fab24ca642346351

这个感觉蛮重要,我第一次安装的时候md5就没通过,强制安装,结果就有问题,后面重新下载了再安装了一次

五、Handle Conflicting Installation Methods

根据官网介绍,之前安装的版本都会有冲突的嫌疑

所以,之前安装的Toolkit和Drievers就得卸载,屏蔽,等等

六、Graphical Interface Shutdown

退出GUI,也就是X-Win界面,操作方法是:同时按:CTRL+ALT+F1(F2-F6),切换到TTY1-6命令行模式。

关闭桌面服务:

七、Interaction with Nouveau

Nouveau是一个开源的显卡驱动,Ubuntu 14.04 默认安装了,但是它会影响nVidia驱动的安装,所以只有请他回老家了,sorry!

写入:blacklist nouveau

保存并退出: wq!

末尾写入:rdblacklist=nouveau nouveau.modeset=0

保存并退出: wq!

八、Installation CUDA 6.5

切换到cuda_6.5.11_rc_linux_64.run 所在的目录,然后执行安装命令:

再次提醒,安装前一定要执行 md5sum ,至于如果发现md5检测不一致,怎么办?别逗了,去nVidia重新下载就行了,地球人都知道,别无限循环就好^_^!

这里会一路问你各种问题,基本上就是Accept-yes-Enter-yes-Enter-yes-Enter, 其实就是让你接受协议,然后安装的默认位置确认等等,recruit就别自定义安装位置了,默认才是天堂。

九、Extra Libraries

安装一些必要的库文件,譬如:OpenGL (e.g., Mesa), GLU, GLUT, and X11 (including Xi, Xmu, and GLX).

十、驱动装完了,可以回到GUI界面了,也可以继续留这里玩文本。。。

十一、POST-INSTALLATION ACTIONS

1. Environment Setup

PS:如果出现安装失败,重启系统,重新安装一遍基本都可以解决,实在不行就卸载原来的驱动再安装一遍。

a. 卸载现有驱动

b. 重装CUDA Toolkit

好了,到这里所有nVidia CUDA的安装就结束了,下面看看Caffe如何安装


第三部分 Python安装和调试

1. 安装IDE运行环境

选择一个适合你的IDE运行环境,我是用的是Spyder,因为它内置了 iPython 环境,Caffe有不少的程序是基于 iPython 环境完成的。安装方法很简单,直接在Ubuntu软件中心搜索“spyder”即可安装。

2. 配置和编译pycaffe(见第五部分)

第四部分 Matlab安装和调试

1.下载

由于该软件为商业软件,请大家自行寻找,安装学习,并确保不使用做商业目的,下载24小时删除......

2. 预准备

选择Mathworks.Matlab.R2014a.Unix.iso - 右键 - 使用磁盘映像挂载器打开”

进入装载的虚拟光盘,拷贝全部文件至home/Matlab 文件夹

(PS:我的原则是能GUI就GUI,喜欢CMD的可以参照执行)

复制Crack/install.jar至 home/Matlab/java/jar/ 并覆盖源文件

3. 授权安装文件夹

4. 安装

选项:不使用Internet安装

序列号: 12345-67890-12345-67890

默认路径:/usr/local/MATLAB/R2014a

激活文件:license_405329_R2014a.lic

拷贝 libmwservices.so 至 /usr/local/MATLAB/R2014a/bin/glnxa64

安装完毕,程序默认启动路径:

/usr/local/MATLAB/R2014a/bin/matlab

5.创建快捷方式

1. 软件中心搜索matlab

2. 选择安装目录:/usr/local/MATLAB/R2014a

6.编译Matlab用到的caffe文件(见第五部分)

第五部分 Caffe的安装和测试

对于Caffe的安装严格遵照官网的要求来:http://caffe.berkeleyvision.org/installation.html

一、安装BLAS

这里可以选择(ATLAS,MKL或者OpenBLAS),我这里使用MKL,首先下载并安装英特尔® 数学内核库 Linux* 版MKL,下载链接是:https://software.intel.com/en-us/intel-education-offerings, 请下载Student版,先申请,然后会立马收到一个邮件(里面有安装序列号),打开照着下载就行了。下载完之后,要把文件解压到home文件夹(或直接把tar.gz文件拷贝到home文件夹,为了节省空间,安装完记得把压缩文件给删除喔~),或者其他的ext4的文件系统中。

接下来是安装过程,先授权,然后安装:

二、MKL与CUDA的环境设置

1. 新建intel_mkl.conf, 并编辑之:

/opt/intel/lib/intel64

/opt/intel/mkl/lib/intel64

2. 新建cuda.conf,并编辑之:

/usr/local/cuda/lib64

/lib

3. 完成lib文件的链接操作,执行:

三、安装OpenCV 2.4.10

1. 下载Install-OpenCV-master(也可以下载官网原版OpenCV:http://opencv.org/,自己编译) ,该集成包中的opencv2.4.8于近期被删除,如果想要下载最新的OpenCV 2.4.10可以下载我修改过的Install-OpenCV-master,百度网盘分享地址:http://pan.baidu.com/s/1eQ9xy8q (不保证长期有效)

2. 切换到文件保存的文件夹,然后安装依赖项:

3. 切换目录Ubuntu\2.4\安装openCV 2.4.10:

保证网络畅通,因为软件需要联网这里时间较长,请耐心等待。。。,所以就安

四、安装其他依赖项

1. Google Logging Library(glog),下载地址:https://code.google.com/p/google-glog/,然后解压安装:

如果没有权限就chmod a+x glog-0.3.3 -R , 或者索性 chmod 777 glog-0.3.3 -R , 装完之后,这个文件夹就可以kill了。

2. 其他依赖项,确保都成功

五、安装Caffe并测试

1. 安装pycaffe必须的一些依赖项:

2. 切换到Caffe的下载文件夹,然后执行:

修改新生成的Makefile.config文件,修改“BLAS := mkl”,这个非常重要。

3. 配置路径,实现caffe对Python和Matlab接口的支持,编辑Makefile.config:

PYTHON_INCLUDE := /usr/include/python2.7 \

/usr/lib/python2.7/dist-packages/numpy/core/include

PYTHON_LIB := /usr/local/lib

INCLUDE_DIRS := $(PYTHON_INCLUDE) /usr/local/include

LIBRARY_DIRS := $(PYTHON_LIB) /usr/local/lib /usr/lib

MATLAB_DIR := /usr/local/MATLAB/R2014a

4. 这里非常重要的是,为了确保支持Caffe Notebook里的程序,需要使用到IDE环境,并且支持iPython接口。


5. 安装配置nVidia cuDNN 加速Caffe模型运算

a. 编辑确保Makefile.config,启用GPU “# CPU_ONLY := 1”,并设置 “USE_CUDNN := 1”。

b. 安装cuDNN

cuDNN 介绍和下载地址:cuDNN Introdution and Download(下载在最下面,需要注册)

c. 链接cuDNN的库文件

6. 编译caffe-master!!!"-j8"是使用CPU的多核进行编译,可以极大地加速编译的速度,建议使用。

编译Python和Matlab用到的caffe文件

六、使用MNIST数据集进行测试

Caffe默认情况会安装在$CAFFE_ROOT,就是解压到那个目录,例如:$ home/username/caffe-master,所以下面的工作,默认已经切换到了该工作目录。下面的工作主要是,用于测试Caffe是否工作正常,不做详细评估。具体设置请参考官网:http://caffe.berkeleyvision.org/gathered/examples/mnist.html

1. 数据预处理

2. 重建lmdb/leveldb文件。Caffe支持三种数据格式输入网络,包括Image(.jpg, .png等),leveldb,lmdb,根据自己需要选择不同输入吧。

生成mnist-train-lmdb 和 mnist-train-lmdb文件夹,这里包含了lmdb格式的数据集

3. 训练mnist

至此,Caffe安装的所有步骤完结,下面是一组简单的数据对比,实验来源于MNIST数据集,主要是考察一下不同系统下CPU和GPU的性能。可以看到明显的差别了,虽然MNIST数据集很简单,相信复杂得数据集,差别会更大,Ubuntu+GPU是唯一的选择了。

测试平台: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:35s

Cifar10_full on GPU wihtout cuDNN:73m45s = 4428s (Iteration 70000)

Cifar10_full on GPU with cuDNN:20m7s = 1207s (Iteration 70000)


对比测试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

对比试验1是一个不太公平的测试,毕竟性能差很大,很可能不单单是由Tesla K20s 和GTX 770带来的,也可能是因为CentOS或者是CUDA5.5的影响,但总体上的结论和Caffe官网的 reference performance numbers 一致,对于普通用户:GTX的性价比高很多。对比试验2展现了Tesla K40的强大性能,相信对于复杂图像,它应该有更强劲的表现。(感谢香港城市大学 Ph.D Jingjing 和南京理工大学 Ph.D JinLu 提供的测试环境和测试数据。)

0 0