Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04

0. 前记

之前的博客已经写过如何进行Tensorflow1.5.0+cuda8.0+cudnn6.0+gtx1080的环境搭建了,由于最近需要安装caffe2,所以考虑对环境进行升级。可以说,环境的配置问题真的是一个很麻烦的问题,所以我也有必要写一篇博客,帮助你们能少踩些坑吧。这次搭建的时候我特意注意了官网给出的说明,按照说明进行搭建。

一路走过来先说几个建议:

  • 下载cuda文件就下载runfile吧,deb软件包是官方的推荐,如果实在不会安装,可以用这个。

  • cudnn文件尽量下载压缩文件,不要下载deb包。

  • cudnn下载版本问题,下边会有说明

  • 这样可能稍微少走一点弯路。最后需要感谢的是我的老师,他也提供给我一个救命稻草:救命博客,所以也很感谢写出这篇博客的博主。ps:之前参考了一个博客,说是1.6.0的tensorflow与cuda9&cudnn适配,但是我这里没有成功。

  • 最后提供了官方说明文档,还是需要仔细看看的,但还是没有博客好~~hh

1. 环境说明

  • GeForce gtx 1080

  • ubuntu16.04

  • Nvidia驱动版本:nvidia-390

  • Cuda 9.0(原有环境Cuda 8.0)

  • Cudnn 8.0(原有环境Cudnn 7.0)

因为原有环境的原因,可能需要先卸载,再重装,这也是官网建议的(但是我的一个小伙伴他没有卸载8.0,还是照常使用了,所以再次建议你们先保留,如果不行的话,再重头再来)

2. 安装GTX1080显卡驱动

1、在官网下载对应自己系统的驱动(官网也可以检测驱动),选择自己对应的系统即可,版本号是390.77,下载为一个.run文件。

此处无法用apt直接下载更新,是因为apt源里的NVIDIA驱动是非常久远的版本了

2、打开终端,首先卸载一下之前安装的

$ sudo apt-get --purge remove nvidia-*

3、打开blacklist:

$ sudo gedit /etc/modprobe.d/blacklist.conf

在最后添加几行:

blacklist vga16fb
blacklist nouveau
blacklist rivafb
blacklist nvidiafb
blacklist rivatv

这个地方容易出现的问题是明明把nouveau添加到了blacklist里,安装驱动的时候还是会出现这个错误,后面会讲解决办法。

保存退出。

【接下来是针对nouveau的双重保险】

这个时候在终端尝试一下

$ lsmod | grep nouveau

如果没有输出,可以忽略下面这一段,直接开始安装1080的驱动,如果仍有输出,终端输入:

$ sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

直接写入:

blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off

保存关闭,再尝试

$ sudo update-initramfs -u
$ reboot
$ lsmod | grep nouveau

应该OK了,如果不OK,再往下看。

4、开始安装驱动,记住你的驱动的.run文件的下载路径和完整文件名(如果你的版本号和我的不同,请自行修改),注销账户,按Ctrl+Alt+F1进入命令界面,登入

$ sudo /etc/init.d/lightdm stop
$ sudo init 3
$ sudo /path/to/NVIDIA-Linux-x86_64-390.42.run -no-x-check -no-nouveau-check -no-opengl-files
$ sudo /etc/init.d/lightdm start

这里是关闭x server,nouveau和不下载opengl文件(我也不太明白是个啥),安装complete后用

$ nvidia-smi

检查一下,是否出来你的显卡信息

最后reboot
sudo reboot

3. CUDA 9.0安装

(如果你之前已经安装了,可以先看)

官网下载9.0版本,选择对应系统,请下载runfile

在下载文件夹终端输入(根据下载的文件名来)

$ sudo sh cuda_9.0.176_384.81_linux.run

具体选项:

Do you accept the previously read EULA? (accept/decline/quit): accept
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64? ((y)es/(n)o/(q)uit): n
Install the CUDA Toolkit? ((y)es/(n)o/(q)uit): y
Enter Toolkit Location [ default is /usr/local/cuda-9.1 ]:
Do you want to install a symbolic link at /usr/local/cuda? ((y)es/(n)o/(q)uit): y
Install the CUDA Samples? ((y)es/(n)o/(q)uit): y
Enter CUDA Samples Location [ default is /home/user ]:

有一个关键是会让你选择是否安装Graphics Driver for Linux-x86_64:XXXX版本,这个地方必须选择no!否则会覆盖之前的驱动。

安装完毕之后,声明环境变量,终端输入

$ sudo gedit ~/.bashrc

在最后加上

export PATH=/usr/local/cuda-9.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}

保存退出

$ source ~/.bashrc

在profile中也输入上面两行声明

$ sudo gedit /etc/profile

保存退出,reboot一下

验证驱动版本:390.42

$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 390.42 Sat Mar 3 04:10:22 PST 2018
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.9)

验证CUDA版本:9.0

$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Sep__1_21:08:03_CDT_2017
Cuda compilation tools, release 9.0, V9.0.176

还有可能遇到的问题是没有安装gcc或者gcc版本过高需要手动进行降级,都比较好解决,我好像没有遇到这种问题,如果出现个这两种问题手动解决一下即可,很简单的。

4. cuDNN安装

在官网下载,需要注册账号,目前提供的不同版本为:

之前那个博主写的时候还是:

之前看到for CUDA9.0就开始下载,下了一个7.2的所以导致失败 ,应该下载cudnn-9.0-linux-x64-v7.tgz(7后边没有别的版本号了),那篇博客中这样说的,选择以下的内容:

很不幸,发现现在已经是这样了:

所以只好从CSDN中下载了一份,你们可以直接搜索刚才那个软件包的名字,这里提供一个我上传的链接https://pan.baidu.com/s/1IQFchjn7K8G_3RsG0bwsrQ吧:

因为我是修改cuDNN版本,所以还要卸载之前装的7.1.1,没装过的可以直接安装

$ sudo rm -rf /usr/local/cuda/include/cudnn.h
$ sudo rm -rf /usr/local/cuda/lib64/libcudnn*

3、官网下载的是一个后缀为.solitairetheme8的文件,修改一下即可

$ cp  cudnn-9.0-linux-x64-v7.solitairetheme8 cudnn-9.0-linux-x64-v7.tgz

4、在下载路径解压文件,复制到本地路径,这里解压出来的文件名比较重要,后面会要对照着看

$ tar -zxvf cudnn-9.0-linux-x64-v7.tgz
cuda/include/cudnn.h
cuda/NVIDIA_SLA_cuDNN_Support.txt
cuda/lib64/libcudnn.so
cuda/lib64/libcudnn.so.7
cuda/lib64/libcudnn.so.7.0.3
cuda/lib64/libcudnn_static.a
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include/
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64/

5、到本地cuda路径,创建软连接,终端输入,

这里的文件名就参照之前解压出来的文件名对照着写

,就算和我下的不是一个版本也能搞定啦

$ sudo chmod +r libcudnn.so.7.0.3
$ sudo ln -sf libcudnn.so.7.0.3 libcudnn.so.7
$ sudo ln -sf libcudnn.so.7 libcudnn.so
$ sudo ldconfig

6、在本地cuda路径检测一下

$ ll

出现cuDNN对应的版本号就证明安装成功啦

lrwxrwxrwx  1 root root        13 3月  19 16:02 libcudnn.so -> libcudnn.so.7*
lrwxrwxrwx 1 root root 17 3月 19 16:02 libcudnn.so.7 -> libcudnn.so.7.0.4*
-rwxr-xr-x 1 root root 287641664 3月 19 16:00 libcudnn.so.7.0.4*

5. Tensorflow-GPU安装

我直接采用的pip安装,也是最简单最直接的安装方式,喜欢别的方式的可以在网上搜一下

我用的是anaconda3,所以开启一个环境

$ conda create -n tensorflow python==3.5(我用的那个库支持3.5比较好,版本看你们情况)
$ source activate tensorflow
$ sudo pip uninstall tensorflow
$ sudo pip install --upgrade --ignore-installed tensorflow-gpu==1.5.0

测试

$ python
import tensorflow as tf

如果没有报错,那就恭喜啦~~

6. Cuda的卸载,cuDNN的卸载

处理之前安装的cuda文件

之前安装的版本会对现有版本造成冲突,需要卸载

Use the following command to uninstall a Toolkit runfile installation:

$ sudo /usr/local/cuda-X.Y/bin/uninstall_cuda_X.Y.pl

Use the following command to uninstall a Driver runfile installation:

$ sudo /usr/bin/nvidia-uninstall

Use the following commands to uninstall a RPM/Deb installation:

$ sudo yum remove <package_name>                      # Redhat/CentOS
$ sudo dnf remove <package_name> # Fedora
$ sudo zypper remove <package_name> # OpenSUSE/SLES
$ sudo apt-get --purge remove <package_name> # Ubuntu

处理之前安装的cuDNN

$ sudo rm -rf /usr/local/cuda/include/cudnn.h
$ sudo rm -rf /usr/local/cuda/lib64/libcudnn*

7. Reference

https://blog.csdn.net/weixin_41864878/article/details/79621210?tdsourcetag=s_pctim_aiomsg

官网说明-cuDNN安装手册

官方说明-Cuda安装手册

官方说明-tensorflow安装手册

Tensorflow1.5.0+cuda9.0+cudnn7.0+gtx1080+ubuntu16.04的更多相关文章

  1. 初用Linux, 安装Ubuntu16.04+NVIDIA387+CUDA8.0+cudnn5.1+TensorFlow1.0.1

    因为最近Deep Learning十分热门, 装一下TensorFlow学习一下. 本文主要介绍安装流程, 将自己遇到的问题说明出来, 并记录自己如何处理, 原理方面并没有能力解释. 由于本人之前从来 ...

  2. 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)

    写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...

  3. ubuntu 16.04 +anaconda3.6 +Nvidia DRIVER 390.77 +CUDA9.0 +cudnn7.0.4+tensorflow1.5.0+neural-style

    这是我第一个人工智能实验.虽然原理不是很懂,但是觉得深度学习真的很有趣.教程如下. Table of Contents 配置 时间轴 前期准备工作 anaconda3 安装 bug 1:conda:未 ...

  4. anconda1.8+cuda9.0+cudnn7.0.5+tensorflow1.7(win10)安装

    1.下载安装cuda9.0 https://developer.nvidia.com/cuda-90-download-archive 2.下载cudnn7.0.5,下载cuda9.0的对应版本 ht ...

  5. ubuntu18.04下搭建深度学习环境anaconda2+ cuda9.0+cudnn7.0.5+tensorflow1.7【原创】【学习笔记】

    PC:ubuntu18.04.i5.七彩虹GTX1060显卡.固态硬盘.机械硬盘 作者:庄泽彬(欢迎转载,请注明作者) 说明:记录在ubuntu18.04环境下搭建深度学习的环境,之前安装了cuda9 ...

  6. TensorFlow-GPU安装配置(win10+tensorflow1.6+CUDA9.0+cudnn7.0+python3.6+Visual Studio2013)

    安装步骤: TensorFlow官网 tensorflow一般只能装在python3上,CUDA9.0搭配cudnn7.0,CUDA8.0搭配cudnn6.0 查看对应要安装的环境版本(因为会不断更新 ...

  7. Ubuntu16.04 + CUDA9.0 + cuDNN7.3 + Tensorflow-gpu-1.12 + Jupyter Notebook 深度学习环境配置

    目录 一.Ubuntu16.04 LTS系统的安装 二.设置软件源的国内镜像 1. 设置方法 2.关于ubuntu镜像的小知识 三.Nvidia显卡驱动的安装 1. 首先查看显卡型号和推荐的显卡驱动 ...

  8. Ubuntu16.04安装cuda9.0+cudnn7.0

    Ubuntu16.04安装cuda9.0+cudnn7.0 这篇记录拖了好久,估计是去年6月份就已经安装过几遍,然后一方面因为俺比较懒,一方面后面没有经常在自己电脑上跑算法,比较少装cuda和cudn ...

  9. 深度学习环境配置:Ubuntu16.04安装GTX1080Ti+CUDA9.0+cuDNN7.0完整安装教程(多链接多参考文章)

    本来就对Linux不熟悉,经过几天惨痛的教训,参考了不知道多少篇文章,终于把环境装好了,每篇文章或多或少都有一些用,但没有一篇完整的能解决我安装过程碰到的问题,所以决定还是自己写一篇我安装过程的教程, ...

随机推荐

  1. python环境杂谈

    最近发现集群里的服务器上有多个python环境,版本相同的python也有多个,主要区别是site-packages里安装的模块不同,这样配置的好处是不同类型的项目可以使用自己的python环境,不会 ...

  2. 云计算之路-阿里云上:消灭“黑色n秒”第一招——不让CPU空闲

    昨天对“黑色n秒”问题的最终猜想以失败而告终,从而让我们结束了被动猜想阶段,进入了主动进攻阶段——出招. 今天出第一招——用C#写个小程序,让其在每个CPU核上运行一个线程,不让任何一个CPU核进入空 ...

  3. Code Forces 652A Gabriel and Caterpillar

    A. Gabriel and Caterpillar time limit per test 1 second memory limit per test 256 megabytes input st ...

  4. Oracle等待事件之Enqueue(锁)

    1.产生原因 表示与内部队列机制相关的等待,例如对保护内部资源或者组件的锁的请求等,一种并发的保护机制,该等待意味着在访问同样的数据库资源时需要等待其他会话已经获取的锁. 2.确定产生问题的对象 死锁 ...

  5. Python开发【Tornado】:异步Web服务(二)

    真正的 Tornado 异步非阻塞 前言: 其中 Tornado 的定义是 Web 框架和异步网络库,其中他具备有异步非阻塞能力,能解决他两个框架请求阻塞的问题,在需要并发能力时候就应该使用 Torn ...

  6. android进入页面会定位到ListView问题解决方法

    在我们的页面中如果存在有ListView,当我们进入这个activity时,页面会定位到ListView的位置去,而不是activity的头部,这是由于ListView会去默认获取焦点所造成的. 解决 ...

  7. React Native入门-刘望舒

    React Native入门(一)环境搭建与Hello World React Native入门(二)Atom+Nuclide安装.配置与调试 React Native入门(三)组件的Props(属性 ...

  8. SpringBoot开启缓存注解

    https://blog.csdn.net/sanjay_f/article/details/47372967 https://www.cnblogs.com/lic309/p/4072848.htm ...

  9. 手把手教你学node之搭建node.js开发环境

    搭建node.js开发环境 本文只针对在Linux或者Mac下面.至于使用 Windows 并坚持玩新技术的同学,我坚信他们一定有着过人的.甚至是不可告人的兼容性 bug 处理能力,所以这部分同学麻烦 ...

  10. hdu5021 树状数组+二分

    这 题 说 的 是 给 了 一 个 K—NN    每次查询离loc 最近的k个数 然后将这k个数的权值加起来除以k 赋值给 loc 这个位置上的 权值  我说说 我的做法 假如 查询的是loc 这个 ...