那些年,在Ubuntu装Tensorflow-GPU踩过的坑......

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Maybemust/article/details/84104622

网上教程千千万,可是能完全顺着装下来的少之又少,写这篇文章记一下自己踩过的坑,不保证对所有人都适用,但是起码是一份可以借鉴的成功案例。另外因为已经装完了,没有截图,所以下面有些截图是从网上找的,但是不影响看。
系统:Ubuntu 16.04
显卡:GTX 1050

一、Nvidia驱动安装

英伟达官网下载最新的对应型号的驱动,我用的是NVIDIA-Linux-x86_64-390.59.run
然后是一通代码操作
卸载原有驱动

sudo apt-get remove --purge nvidia*

禁用 nouveau

  1. 添加黑名单
sudo gedit /etc/modprobe.d/blacklist-nouveau.conf

输入以下内容并保存

blacklist nouveau
options nouveau modeset=0
  1. 执行
sudo update-initramfs -u
  1. 重启电脑,检查操作是否成功
lsmod | grep nouveau

如果没有输出则满足要求
安装驱动
一般有两种方式,ppa和Ubuntu纯命令行,我最初用的是Ubuntu命令行,但是不知道为什么总是出问题,所以用了ppa,我把两种方法都贴一下:
纯命令行

  1. 进入本地控制台

Ctrl + Alt + F1

可以看到进入到黑屏控制台界面,此时输入用户名与密码即可登录

  1. 关闭图形界面
     sudo service lightdm stop
  1. runfile 安装
    sudo chmod a+x NVIDIA-Linux-x86_64-390.59.run

这一步是为了为安装包加权限

sudo ./ NVIDIA-Linux-x86_64-390.59.run –no-x-check –no-nouveau-check –no- opengl-files

按照提示安装,中途如果有 WARNING 或者 ERROR 都可以无视,基本每一步都选择 accept 或者 ok
4. 启动图形界面

sudo service lightdm start

此时进入终端输入 nvidia-smi,若显示下图类似的结果则表示安装成功,如果不显示则重启计算机,若还不显示则尝试重新安装或者从官网下载安装包。
成功的界面应该是下图这样
在这里插入图片描述

然而,我并没有成功,所以隆重推出下面这种方式!
ppa源安装
代码如下:

sudo add-apt-repository ppa:graphics-drivers/ppa  
sudo apt-get update  
sudo apt-get install nvidia-390 #此处要根据上面查询到的版本适当更改
sudo apt-get install mesa-common-dev  
sudo apt-get install freeglut3-dev

记一下这里的坑

  1. 首先,前两行命令,一次不行就两次,两次不行就三次,我在重新跑了五次之后终于可以了,大概是网络环境不稳定吧。
  2. 第三个,install nvidia-390 的版本可以随意;运行完之后会有一个诡异的对话框,里面需要“点击”“确认”什么的,先按Tab,就可以跳到确认这些键上了,获得什么权限都给它,回车就可以了。顺便说一句,密码不要太复杂,下面需要用到密码的地方不按照常理输入。
  3. 这五行代码运行完之后一定要重启,否则肯定没有效果的。
  4. 重点来了,重启,不知道别人怎么样,我是弹出了这么一个…
    在这里插入图片描述
    一下子就刺激了;
    Continue boot
    Change Secure Boot state
    Enroll key frame disk
    Enroll hash from disk
    当时查了网上,有说第三个,有说第二个,我最后选了第二个,还不错,蒙对了,然后输入密码…第n位…
    弄好之后,还是像刚才一样,输入nvidia-smi,出现上图页面就可以了。

二、CUDA 安装

进入 https://developer.nvidia.com/cuda-toolkit-archive,选择 CUDA9.0,下载runfile,如图:
在这里插入图片描述
Runfile 安装
运行下面两行代码:

sudo chmod a+x cuda_8.0.44_linux.run
sudo ./cuda_8.0.44_linux.run

这时会有很长的用户协议,一直按回车键,直到出现选择界面。依次进行如下选择,只有第一个选择 no,因为我们前面已经安装过驱动

Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 390.59? (y)es/(n)o/(q)uit:n
Install the CUDA 9.0 Toolkit?(y)es/(n)o/(q)uit: y
Enter Toolkit Location[ default is /usr/local/cuda-9.0 ]: (按回车)
Do you want to install a symbolic link at/usr/local/cuda? (y)es/(n)o/(q)uit: y
Install the CUDA 9.0 Samples? (y)es/(n)o/(q)uit: y
路径也是可以直接按回车

添加环境变量
打开 ~/.bashrc 添加
添加在原有的export下面就好,另起三行,对于引号之类的符号不要画蛇添足

export PATH=/usr/local/cuda-9.0/bin:$PATH

exportLD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64"

export CUDA_HOME=/usr/local/cuda

保存退出
再执行

sudo gedit /etc/profile

在这个文件的最后添加

export PATH=/usr/local/cuda-9.0/bin:$PATH

export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64$LD_LIBRARY_PATH

完成后重启电脑生效

三、cuDNN安装

https://developer.nvidia.com/cudnn 下载对应版本的安装包cudnn-9.0-linux-x64-v7.tgz

解压并放到相应位置即可

tar xvzf cudnn-9.0-linux-x64-v7.tgz

sudo cp -P cuda/include/cudnn.h /usr/local/cuda/include

sudo cp -P cuda/lib64/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

安装完毕之后执行

nvcc –V

若显示版本信息则表示安装成功。

四、验证安装是否成功

  1. 到sample文件夹下,打开终端,输入 make编译,要大概等一会,好了以后有报错也无所谓
  2. 可以在Samples里面找到bin/x86_64/linux/release/目录,并切换到该目录 ;运行deviceQuery程序,sudo ./deviceQuery
    查看输出结果,重点关注最后一行,Pass表示通过测试
    在这里插入图片描述
    运行bandwidthTest程序,sudo ./bandwidthTest
    查看输出结果,显示结果为PASS表示通过测试

五、Anaconda安装

这个没啥好说的,可以参考我前一篇文章Tensorflow速成学习笔记——一

六、Tensorflow-GPU版本安装

  1. 打开终端
conda create -n name python=x.x

这种方式可以在anaconda中新建一个和本机环境隔离的python环境,方便乱搞,删除的时候直接删除就可以了,在anaconda envs文件夹下可以找到。
其中,name可以是你随意输入的名字,=后面是你要的版本,顺便说一句,python3和kenitic冲突(ROS系统),所以要是用作ROS机器人控制的可以安装2.7版本。

  1. 激活环境
conda activate name

会发现命令行前面多了(name)

  1. 安装,记得按照Tensorflow速成学习笔记——一的方法添加清华的镜像网站。

然后输入

anaconda search -t conda tensorflow-gpu

在这里插入图片描述
输入

anaconda show jjhelmus/tensorflow

就可以查看某一个具体的版本

按照提示,输入

conda install --channel https://conda.anaconda.org/jjhelmus tensorflow

就可以进行安装,提醒一下,有的会有好几个版本,在代码最后添加“=x.x.x”就可以安装对应版本,没有空格。不成功的话可以多试几次或者换一个源。
装完以后,python进入,然后import tensorflow试一试,没问题的话就大功告成了!

猜你喜欢

转载自blog.csdn.net/Maybemust/article/details/84104622