前言   :

为了能跑个深度学习特意买了一台式机,其实主要是想用cuda来加速,我的机器显卡是1070Ti,买的时候激情澎湃左挑右选,到货后更是热血沸腾的开始了caffe深度学习环境的搭配,但是激情和热血很快就被配置学习环境中各种曲折和困难给消磨掉了,以至于后来都不想配置caffe了,其实开始确实不怎么想用caffe,想用TF,但公司在用caffe。虽然caffe和TF各有所长,但caffe在安装过程中的各种坑确实招致很多人的吐槽,假如你是个新手也没有其他限制,建议安装TF吧,毕竟这些就是一个库和工具,真正困难和难搞的是一些算法、工程实践过程。

总之caffe的GPU深度学习环境的搭配确实一条坎坷曲折的道路,如果你一次搞定,那确实很厉害了,多少估计也有些运气的成分(在网上找到或参考的配置资料,正好适用你)。

caffe的GPU深度学习环境的搭配为啥这么坎坷啦?caffe GPU配置的大致过程:

安装Ubuntu-->安装一堆依赖库-->安装Nvidia显卡驱动(Nvidia的显卡驱动安装确实蛋疼,不知道这么大个公司怎么这个都搞不好)-->安装cuda-->配置cudnn-->安装opencv及接口-->编译caffe

这是一个串联的过程,在编译caffe之前任何一个小误差,都可能将导致失败,其中最困难当属cuda的安装配置。并且很多人对这配置过程都没啥经验,虽然找到的参考资料上的机器、GPU啥的都一样,也照着参考一步步来着,结果中间出现了各种错误,这更别提参考的资料上的机器、GPU不一样的情况了。其实这主要是由下面原因造成的:

1、不细心+不耐心

如果ubuntu已经安装好,其他软件包下载准备好的情况,感觉最快也得2小时左右吧,因此这个配置过程有些长,最好是抽空一天来配置它,不要中断,断断续续的配置更容易出错,在配置过程中一定要有耐性。如果多次配置还是没决绝问题,还不如从头开始在配。很多时候推倒重来比在原来错误道路上折腾来的快。

2、参考资料中作者有疏漏或记录不全

网上的博客或文章不乏优秀的和记录详细的,但有些作者还是有疏漏的,我觉的最好还是参考官网的安装和配置过程来比较好,

啰嗦了这么多其实就是想主要把配置caffe的一些思考和一些放之四海而皆准的学习经验总结一下。下面就把配置的一些要点做些记录和说明,这里假设已经安装好了Ubuntu16.04。

预先安装的一些工具和库:

git : sudo apt-get install git
cmake : sudo apt-get install cmake
build-essential: sudo apt-get install build-essential

一、安装Nvidia显卡驱动过程

ubuntu下安装Nvidia显卡驱动确实很不人性化。

首先进入官网驱动下载地方:https://www.nvidia.com/Download/index.aspx?lang=en-us

1、Nvidia显卡驱动的选择和下载

我在NVIDIA Driver Downloads下的Option 1下选择了我显卡参数和当前操作系统,然后单机SEAECH,就会出现如下图:

这是支持1070Ti最新的驱动,好像我当时看到还有其他的版本不知这会儿又看不到了。点击DOWNLOAD下载它。

2、安装Nvidia显卡驱动(最好把下载的驱动放置在home下)

2.1、在终端输入:sudo gedit /etc/modprobe.d/blacklist.conf

2.2、在打开的文件最后一行添加:blacklist nouveau

此条语句表示讲自带驱动加入黑名单,然后保存此文件,保存时命令窗口可能会出现以下提示:
** (gedit:4243): WARNING **: Set document metadata failed: 不支持设置属性 metadata::gedit-position,无视此提示~,保存后关闭文件

2.3、在终端中输入:sudo update-initramfs -u

此时禁用 nouveau 才真正生效

2.4、重启电脑后,在终端键入:lsmod | grep nouveau

可以查看nouveau有没有运行,没有输出表示禁止生效了

2.5、进入shell命令行界面 (Ctrl+Alt+F1-F4命令行界面,Ctrl+Alt+F7 可以回到图形化界面),输入用户名和密码,

然后键入:sudo service lightdm stop

2.6、在shell命令行中执行:

cd ~ #我的驱动文件放置在home下

sudo chmod a+x 驱动文件  #赋予文件权限

sudo sh 驱动文件 #安装驱动

2.7、重启电脑后,进入终端,键入:nvidia-smi

如果会显示信息说明正确安装。

在安装驱动中一些好的博客或文章放置于此:

1、Linux安装NVIDIA显卡驱动的正确姿势  https://blog.csdn.net/wf19930209/article/details/81877822

2、https://blog.csdn.net/qq_31261509/article/details/78755968

3、https://blog.csdn.net/ghw15221836342/article/details/79571559#commentBox

二、安装CUDA9.0过程

1、CUDA9.0的下载

首先进入官网:https://developer.nvidia.com/cuda-toolkit-archive

然后,点击CUDA Toolkit 9.0 (Sept 2017), Online Documentation,进入下面:

选好你的系统及配置,在此我参考的博客使用的run版本,其他版本没试过

2、CUDA9.0的安装

cuda的安装特别需要注意的是:

在正式安装选择时,一定要先知道当选择选项 Install NVIDIA Accelerated Graphics Driver for nvidia*时候选择取消(cuda是自带驱动的,但前面我们以手动安装过了驱动了,至于为啥不用自带的驱动我也不清楚,参考的博客很多都是选择手动安装驱动),其他选项选择yes,或则回车,并且查看协议时候有快捷键CART + D 进行翻页

cuda安装过程参考的文章或博客:

1、Ubuntu16.04 + Caffe + CUDA + cudnn 的配置详细教程&& Ubuntu18.04 可用

https://blog.csdn.net/qq_31261509/article/details/78755968

2、CentOS6.7 + GTX1070Ti + CUDA 9.0 + cuDNN 7.0.5搭建深度学习环境

https://blog.csdn.net/zryowen123/article/details/80054605

3、https://blog.csdn.net/10km/article/details/61915535

cuda安装中出现诸如:
Installing the CUDA Toolkit in /usr/local/cuda-8.0 …
Missing recommended library: libGLU.so
Missing recommended library: libX11.so
Missing recommended library: libXi.so
Missing recommended library: libXmu.so

按第3篇博客解决就行。不过弄好了后需要在按照前面的过程安装一次cuda就行

三、cudnn7.0.5配置

cudnn的下载确实有点费事,需要在官网注册个账号,但注册过程由于连外网经常中断,所以会有些恼火。而且和cuda9.0搭配的cudnn版本也有好多个,为了少走弯路,我还是按照参考的博客来选择cudnn7.0.5,其他应该没问题,没有试过。

1、cudnn7.0.5下载及安装

首先去官网:https://developer.nvidia.com/rdp/cudnn-archive

然后点击,Download cuDNN v7.0.5 (Dec 5, 2017), for CUDA 9.0,出现如下(红色圈区域是我选择的安装方式):

我在此参考官网的,点击:cuDNN Install Guide,你将在其中看到如下图所示:

教程中提供了两种安装方式,我选择第二种即deb文件安装。网上的博客大多选择第一种的tar文件安装,而且还有软连接,不管选择那种感觉还是按照官网的指导文件安装好些。

2、安装成功检测

cudnn安装成功与否,有个检验方式,这个在指导文件中也有说明,如下图:

按照说明执行这几条命令就可以了。

在执行第4条即./mnistCUDNN命令,出现:

/mnistCUDNN: error while loading shared libraries: libcudart.so.9.0: cannot open shared object file: No such file or directory

解决方法参考:https://blog.csdn.net/weixin_39123145/article/details/81979270

sudo cp /usr/local/cuda-9.0/lib64/libcudart.so.9.0 /usr/local/lib/libcudart.so.9.0 && sudo ldconfig
sudo cp /usr/local/cuda-9.0/lib64/libcublas.so.9.0 /usr/local/lib/libcublas.so.9.0 && sudo ldconfig
sudo cp /usr/local/cuda-9.0/lib64/libcurand.so.9.0 /usr/local/lib/libcurand.so.9.0 && sudo ldconfig

四、OpenCV3.3.1及opencv_contrib的安装配置

为了后面方面,一次性把contrib也配置了,免得需要的时候又来折腾。

OpenCV的安装及配置网上有很多博客,在此只稍微整理汇总一下:

1、OpenCV官网:https://docs.opencv.org/master/d7/d9f/tutorial_linux_install.html,官网的安装指导过程很详细

2、http://www.cnblogs.com/klchang/p/7510526.html

3、https://blog.csdn.net/qq_21033779/article/details/77567919

其实最主要是配置cmake的一些参数,我需要配置python接口,参数如下:

  1. cmake -D CMAKE_BUILD_TYPE=RELEASE \

  2. -D CMAKE_INSTALL_PREFIX=/usr/local \

  3. -D INSTALL_PYTHON_EXAMPLES=ON \

  4. -D INSTALL_C_EXAMPLES=ON \

  5. -D OPENCV_EXTRA_MODULES_PATH=/home/dq/opencv-3.3.1/opencv_contrib-3.3.1/modules \

  6. -D PYTHON_EXECUTABLE=/usr/bin/python \

  7. -D BUILD_EXAMPLES=ON ..

五、caffe的安装与配置

caffe的安装配置最好还是参照官网来配置,我在此只罗列我注意的地方

1、caffe 依赖库的安装

  1. boost : sudo apt-get install --no-install-recommends libboost-all-dev

  2. gflags : sudo apt-get install libgflags-dev

  3. glog : sudo apt-get install libgoogle-glog-dev

  4. LevelDB : sudo apt-get install libleveldb-dev

  5. LMDB : sudo apt-get install liblmdb-dev

  6. ProtoBuf : sudo apt-get install libprotobuf-dev

  7. ProtoBuf compiler: sudo apt-get install protobuf-c-compiler protobuf-compiler

  8. HDF5 : sudo apt-get install libhdf5-serial-dev

  9. snappy : sudo apt-get install libsnappy-dev

  10. OpenBlas : sudo apt-get install libopenblas-dev

  11. atlas : sudo apt-get install libatlas-base-dev

  12. 选择性安装:

  13. opencv : sudo apt-get install libopencv-dev #我们前面安装了OpenCV3.3.1这里就不要安装这个库了

其实这些库安装去官网复制命令然后运行就可以了,我之所以把这些库一个个单独列出来是因为我当初在在安装中少了库然后瞎折腾了好些,所以单独列一下吧,确保每一个都安装正确。

2、配置文件的修改及pycaffe编译

配置文件的修改及编译我也是参考网上的,在此只给出链接:

1、https://blog.csdn.net/yhaolpz/article/details/71375762

2、https://blog.csdn.net/qq_31261509/article/details/78755968

3、https://blog.csdn.net/zryowen123/article/details/80054605

这几篇博客中基本都一样,但我在修改中没有修改 /usr/local/cuda/include/host_config.h 文件 ,因为我的这个文件是空的

六、caffe中的mnist示例

caffe 安装后一般需要进行测试一下,我们选用mnist来测试一下,这个可以参考:

https://blog.csdn.net/lingyunxianhe/article/details/85014912

好了至此就算配置完了caffe并初步感受了下caffe的运行过程,据说这是一个很不错的框架,如此就开始一段新的学习旅程吧

最后非常感谢那些无私分享他们配置过程的那些网友。

Ubuntu16.04系统 GPU1070Ti下搭建Caffe++Nvidia显卡驱动+Cuda9.0+Cudnn7.0.5相关推荐

  1. Ubuntu16.04使用apt get 命令安装 Nvidia 显卡驱动提示“更换介质:请把标有......”解决办法

    Ubuntu16.04使用apt get 命令安装 Nvidia 显卡驱动 如果出现提示 更换介质:请把标有 "Ubuntu-Kylin 16.04.5 LTS _Xenial Xerus_ ...

  2. 安装教程rtx2080ti_Ubuntu18.04.2下安装 RTX2080 Nvidia显卡驱动的方法

    不久前入手了蓝天P870TM1G准系统,配置如下: 1. Z370主板 2. i9-9900k桌面处理器 3. RTX2080移动版 由于显卡太新的缘故,安装Ubuntu16.04时,试了好多版本,只 ...

  3. ubuntu16.04+双显卡驱动+cuda9.1+cudnn7.05深度学习环境配置

    因为项目需要,准备入坑facebook的detectron目标检测框架.由于目前框架只能在linux+gpu环境下运行,所以准备了以下工作: 先说下我的硬件配置: i5-6500破铜 华硕gtx 10 ...

  4. 【记录+解决】ubuntu服务器显卡驱动安装;Ubuntu20.04重启后找不到Nvidia显卡驱动

    记录ubuntu服务器显卡驱动安装 一次ubuntu服务器显卡驱动安装历程,简单记录. 1.下载Nvidia-Linux驱动到本地 Nvidia-Linux-XXX.run 2.停用桌面,安装驱动 / ...

  5. 粗暴解决因ubuntu 18.04因内核升级导致的NVIDIA显卡驱动失效

    粗暴解决因ubuntu 18.04因内核省级导致的NVIDIA显卡驱动失效 有一天电脑开机之后发现显示屏分辨率不对,结果一看系统信息发现显卡找不到了,再使用nvidia-smi查看显卡驱动果然打不开了 ...

  6. 记录一次Ubuntu18.04安装教程和解决安装NVIDIA显卡驱动出现黑屏问题

    我之前安装过Ubuntu但是由于我一次的错误操作导致系统崩溃,就进行了重装,在经历了几次安装NVIDIA显卡驱动黑屏之后,终于安装好了,下面是我对成功安装的记录: 一.Ubuntu18.04系统安装 ...

  7. 拯救者R7000ubuntu18.04解决分屏问题(NVIDIA显卡驱动安装)

    使用中给笔记本外接显示器分屏非常方便,但是我在系统安装完成后发现ubuntu不能分屏,非常影响使用.查找了众多资料,最终认为是显卡驱动的原因.进入ubuntu系统,在设置中找到详细信息中的图形显示的不 ...

  8. linux下如何装NVIDIA显卡驱动(gt940m为例)

    参考: http://www.linuxandubuntu.com/home/how-to-install-latest-nvidia-drivers-in-linux 目的: 在Ubuntu 16. ...

  9. ubuntu16.04安装1080ti显卡驱动+cuda9.1+cudnn7

    一.查看显卡信息: 终端输入命令:lspci |grep -i vga 二.安装显卡驱动 1. 禁用nouveau驱动 参考博客:https://blog.csdn.net/qq_33200967/a ...

  10. Ubuntu20.04(18.04通用)禁用nouveau,安装NVIDIA显卡驱动

    卸载其它版本NVIDIA驱动 sudo apt-get --purge remove nvidia*sudo apt autoremove 禁掉nouveau 打开文本形式 sudo gedit /e ...

最新文章

  1. 【LeetCode系列】从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树...
  2. C# 操作Word书签(二)——插入图片、表格到书签;读取、替换书签
  3. 阿里云AIoT全新工业和农业云端一体机深度产品,全链路数据化实现效率提升
  4. 《数字短片创作(修订版)》——第一部分 剧本创作 第1章 数字短片创意技法 剧本创作的构思...
  5. frameworks/av/media/CedarX-Projects/CedarAndroidLib/LIB_KK44_/Android.mk: No such file or directory
  6. 阿里研发效能数据知多少
  7. phpcmsV9视频模块开发——盛大游戏通行证注册与密码找回
  8. ASP.NET的路由系统:URL与物理文件的分离
  9. HijackThis日志细解【简明教程增强版】(六)
  10. tarjan 算法模板
  11. JS事件之事件类型[鼠标和滚轮事件]
  12. 第三阶段应用层——1.7 数码相册—电子书(3)—轮询方式支持多输入
  13. windows 大容量存储设备驱动异常(代码:39)U盘由于驱动问题无法用的解决方法
  14. vbs打开网页并全屏
  15. Element is missing end tag
  16. html5 预览图片原理,html5实现图片预览和查看原图
  17. 怎么修改图片为300dpi?如何在线修改分辨率?
  18. 福特汽车是美股电动汽车行业值得投资的股票吗?
  19. 关于vite配置postcss未生效问题
  20. 在国企做程序员怎么样?

热门文章

  1. max/sup、min/inf辨析
  2. Leader-Follower线程模型
  3. spring cloud互联网分布式微服务云平台规划分析--spring cloud服务监控中心
  4. 使用.gitignore忽略编译自动生成的那些文件
  5. 堆叠顺序的误区和z-index
  6. 几个更新(Update声明)查询方法
  7. 在Spring Boot中使用 @ConfigurationProperties 注解, @EnableConfigurationProperties
  8. 1121: [POI2008]激光发射器SZK
  9. 手动配置S2SH三大框架报错(三)
  10. 微信分享ios 不显示图片和简介问题总结