说明
- 网上关于caffe的安装教程非常多,但是关于每一步是否操作成功,出现了什么样的错误又该如何处理没有给出说明。因为大家的操作系统的环境千差万别,按照博客中的教程一步步的安装,最后可能失败——这是很常见的哦。有的教程甚至省略了一些细节部分,让小白更不知道如何判断每一步是否操作成功,如何处理出现的错误。
- 作者花费了很长时间才成功地将caffe装完,期间遇到好多错误,多次重装操作系统。现在将经验写下来,一方面为了和大家分享,讨论;另一方面是为了记录一下下~~~
环境
操作系统: Ubuntu 14.04
GCC/G++:4.7.x
OpenCV: 2.4.11和3.0.0
Matlab :R2014b(a)
Python: 2.7
安装步骤
介绍
0.准备工作
- 安装Ubuntu 14.04(15.04),最好安装较新版本的Ubuntu。为什么选择Ubuntu呢?一方面,个人使用习惯,感觉Ubuntu安装软件等特别方便,使用特别顺手;另一方面,caffe项目最初貌似在Ubuntu上开发的,原生嘛。
- 安装过程需要下载东东,因此需要联网。
- 安装
1.安装GCC4.7和G++4.7并降级
- 为什么要先安装GCC和G++,并需要降级呢?
- Ubuntu14.04版本默认的GCC和G++都是4.8。而Matlab默认支持的mex编译器是GCC4.7.x和G++4.7.x。因此需要额外安装GCC4.7和G++4.7并降级。
- 为什么需要先安装编译器GCC和G++,而不是先安装显卡驱动和cuda等等呢?
- 首先,先安装显卡驱动,后安装GCC并降级的安装顺序过程中,遇到了很多问题。比如,在安装CUDA SAMPLES的过程中,遇到了问题/usr/bin/ld: cannot find –lGL,后面通过网上教程,重新连接该库文件,仍然不能通过OpenCV的编译。但是,先安装GCC,再安装显卡驱动,就不会遇到这个问题了。
其次,请先看下图。这是在成功地安装完显卡驱动之后,查看加载的显卡的版本信息时返回的结果。注意,包含了GCC4.7.3。说明,显卡安装过程中,会和GCC的版本产生联系。。。。这也就不不难理解为什么在编译Cuda Samples过程中会遇到上面的问题。
所以,请先安装GCC4.7和G++4.7,然后在执行下面的步骤。
2.安装NVIDIA显卡驱动
- 为什么需要安装NVIDIA显卡驱动,Ubuntu没有自带的显卡驱动吗?
- Ubuntu自带的显卡驱动是开源的Nouveau,据说是一个比较烂的东东。而且,最关键的是cuda不支持Nouveau。如果想使用cuda进行GPU计算,必须安装NVIDIA显卡驱动。
- 选择哪个版本的显卡驱动呢
- 这个问题需要结合操作系统,显卡和个人需求来讨论。
- 操作系统影响显卡驱动的版本。比如,我在Ubuntu14.04 Server上安装NVIDIA-352显卡驱动,说是由于dkms,安装失败。目前,通过apt-get方式可以安装的最新NVIDIA显卡驱动是NVIDIA-346。
- 显卡嘛,硬件当然要和驱动适应才行
- 个人需求,主要从cuda的角度考虑。比如cuda7.5需要显卡驱动最低版本是nvidia-352;cuda7.0需要显卡驱动最低版本是nvidia-336;cuda6.5需要显卡驱动最低版本是nvidia-33*;其他的记不清楚啦。。。
- 显卡驱动的安装方式有哪些
- 方法一:去NVIDIA官网下载相应的驱动二进制安装包,然后安装。
- 方法二:通过
apt-get
来安装。 - 区别:apt-get安装方便,但是不能安装最新的显卡驱动,目前ubuntu14.04通过apt-get可以安装nvidia-346显卡。
- 安装过程中注意事项:①需要关闭显示管理器,②二进制安装需要修改文件,并重启。
3.安装cuda和cudnn
- 安装cuda的方式有哪些?
- 方法一:官网下载cuda开发包的二进制安装包进行安装。
- 方法二:官网下载cuda开发包的deb文件进行安装。
- cuda版本的选择问题?
- 根据个人需求和操作系统来决定,显卡驱动版本。
- cuda6.5是一个分界点,cuda6.5支持compute_11,compute_12. etc. compute_1X系列架构;从cuda7.0开始,不支持compute_1X系列架构,最低是compute_20架构。
- cuda对显卡驱动有要求。比如cuda7.5需要显卡驱动最低版本是nvidia-352;cuda7.0需要显卡驱动最低版本是nvidia-336;cuda6.5需要显卡驱动最低版本是nvidia-33*;其他的记不清楚啦。因此,结合自己操作系统可以安装的NVIDIA显卡驱动来决定选择哪个版本的cuda。
- 为什么安装cudnn?
- cudnn可以简单的理解为
CUDa cNN
,即在GPU上做卷积运算。最近几年,深度学习很火,尤其是CNN(卷积神经网络)。通过cudnn,可以极大的提高CNN训练速度。简单的说,实用GPU是为了快,实用cudnn是为了更快。
- cudnn可以简单的理解为
4.安装Matlab
- 在Ubuntu中安装Matlab比较简单,除了几个注意事项,和Windows中安装没有区别。
- 为什么需要安装Matlab?
- caffe有Matlab的接口,因此如果需要使用Matlab调用caffe,进行编程,就需要安装Matlab。如果你觉得使用C或Python编程比较难,就请安装Matlab。当然如果不需要,并且后面不会编译caffe生成Matlab的接口,就不需要安装Matlab了。这个纯粹根据个人需求来定。
- Matlab是商业软件,请自行百度下载。。。【主要是太大了,不方便提供】
5.安装OpenCV
- 为什么需要安装OpenCV?
- caffe是用来做深度学习的,深度学习的一大应用对象就是图像和视频。而OpenCV是目前最火的开源计算机视觉库,非常多的项目多用到了OpenCV,当然caffe也依赖OpenCV。所以,需要安装OpenCV,否则无法使用caffe哦。。。
- OpenCV安装简单吗?
- 答案是因人而异。有的人觉得简单,可以自己弄,有的人觉得难,没关系,大神们有写的安装脚本点此*下载,运行一下就OK了。
- 但是,使用别人脚本安装的方法,也会遇到一些问题。如果遇到问题,请Google解决。
- 最简单的方式是使用我修改过的脚本,按照顺序执行12345个脚本,基本不需要修改就能成功安装。
- 最后提醒,安装OpenCV是挺麻烦的,请耐心安装,编译不过的话,查看错误Google,解决了再编译,一遍遍的尝试,最后就能解决问题了。
- 应该安装OpenCV哪个版本呢?
- OpenCV的版本和cuda的版本最好匹配。这样子安排的目的是为了减少错误出现的概率。比如,我无错误编译成功的组合有【cuda7.0 + opencv3.0】,【cuda6.5+opencv2.11】。
- 应该安装最新的,又不该安装最新的。呵呵,好别扭哦。针对于低版本的cuda,最好安装opencv2.x。而且是opencv2.x中最新的。
- 低版本cuda安装opencv2.x的原因是,opencv的一些文件中涉及一些关于cuda架构的设置,opencv2.x中有支持相应的架构的配置。从这个角度看,cuda6.5是最保险的, 因为它既支持compute_1x,也支持更高的架构。
6.安装Python相关依赖
- 为什么要安装python相关依赖???
- 首先,python在linux中应用非常的广泛,很多项目都会涉及python,caffe也不例外。
- 其次,caffe提供了python的接口,为了后面使用,也需要这些依赖。
- 这些依赖都可以通过apt-get安装吗?
- 答案是否定的。
- 首先,google一下
apt-get vs pip
,查看两者区别。 - 其次,安装theano的时候,发现apt-get安装的numPy和sciPy无法通过测试,并且造成theano测试失败。使用pip安装成功。参考《Ubuntu14.04安装Theano详细教程》。
- 最后,在安装caffe的过程中,发现有几个python依赖包必须通过pip安装(即自行编译),否则无法成功地编译caffe。
7.安装caffe
- 再重复一遍,请在上面所有步骤成功执行的前提下,安装caffe,否则编译肯定不会通过的。
- caffe源代码能不能直接拿过来编译呢?
- 不能。至少需要修改一个文件Makefile.config。该文件给caffe编译提供了必要的信息。
- 如果opencv的版本是3.0,还需要修改其他项。
- 其他的请参考安装caffe的教程
总结
- 至此,ubuntu下安装caffe的工作已经结束了。如果你完全按照本教程操作,相信你一定已经成功安装caffe了,并且对caffe有了一定的了解。
- 世上无难事只怕有坚持,安装过程虽然很复杂,但是只要坚持,不断的Google解决它,caffe就一定能安装。
- 错误不可怕,它是成功的障碍,同时也为我们成长提供了阶梯——所谓的能力,很大一部分是通过不断解决问题来获取的。
- 下面开始学习如何使用caffe做深度学习的研究喽,祝大家学习愉快。。。
参考
- 《Caffe + Ubuntu 15.04 + CUDA 7.0 新手安装配置指南》——欧新宇
这个教程很好,请查看本教程的过程中,结合欧新宇的教程一并查看。 - 《caffe - GitHub主页》