【Caffe安装】caffe安装系列——史上最详细的安装步骤

说明

  • 网上关于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是为了更快。

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。

6.安装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主页》

已标记关键词 清除标记
相关推荐
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质? 你是否想成为一名资深开发人员,想开发别人做不了的高性能程序? 你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹?   那么C++就是你个人能力提升,职业之路进阶的不二之选。 【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。 2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。 3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。 【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署; 2.吊打一切关于C++的笔试面试题; 3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。 【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块 基础篇 本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。 进阶篇 本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。 提升篇: 本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
©️2020 CSDN 皮肤主题: 书香水墨 设计师:CSDN官方博客 返回首页