ubuntu16.04安装TensorFlow-GPU

一些废话

我感觉我的安装过程还是比较顺利哒,上午十一点多开始安装,到十二点多就安装好了,顺便写下了这篇记录,供大家做参考吧,也方便日后自己重装系统(呀!手欠!!)之后安装的时候还能再看看

我在我的笔记本上装的,虽然笔记本上跑GPU有点赶鸭子上架的感觉,但总比在cpu上硬跑好一丢丢,有时候确实会方便很多

我的系统:Ubuntu16.04,GPU:GeForce GTX 850M

开始正题…

硬件需求

根据tensorflow官方文档,tensorflow-gpu版本只能在下面的显卡上面跑:

  • 具有CUDA®计算能力3.5或更高版本的NVIDIA®GPU卡。请参阅支持CUDA的GPU卡列表 。

是的,只有N卡…

软件需求

根据tensorflow官方文档,需要以下几个软件:NVIDIA驱动、Nvidia CUDA9.0、cuDNN SDK (>= 7.2),接下来咱们一个个的安装

NVIDIA驱动

  • NVIDIA® GPU drivers —CUDA 9.0 requires 384.x or higher.
    英伟达的显卡驱动,待会儿咱们要安装CUDA,版本为9.0,所以需要你的驱动版本在384.*或者更高

安装

这里是一种最简单的方法,因为桌面版的Ubuntu比较方便可以直接使用系统设置完成。

首先打开terminal,输入

1
$ sudo apt-get update

然后,打开系统设置->软件和更新->附加驱动->选择合适的版本安装,这个安装完成之后需要重启电脑

设置NVIDIA驱动

验证是否安装成功

重启之后在terminal里输入

1
$ nvidia-smi

出现下面的类似情况表示安装成功

NVIDIA驱动安装成功

可以看到,我的版本是384.130,满足要求!

Nvidia CUDA9.0

安装

CUDA9.0:下载地址:https://developer.nvidia.com/cuda-toolkit-archive

下载CUDA

我下载的是.deb的本地安装包,下载完成后的安装方法:

1
2
3
4
5
6
7
8
9
10
# 首先切换到你存放安装包的地方,一般默认放在用户的Download文件夹下
$ cd ~/Downloads/
$ sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb
# 注意这里的<version>,表示你安装的版本,所以这里我要替换成9-0-local
# 如果你不知道你的版本该怎么写,那就cd到/var路径下看看这个文件夹的名字吧,名字里面有版本号
$ sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub
# 我对应的替换掉版本号之后的命令:
# sudo apt-key add /var/cuda-repo-9-0-local/7fa2af80.pub
$ sudo apt-get update
$ sudo apt-get install cuda

添加环境变量

安装完成之后需要添加环境变量,具体方法如下:

1
2
# 用gedit打开这个文件,在他后面追加内容
$ gedit ~/.bashrc

在末尾追加内容如下:

1
2
3
# cuda
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}}

如下图所示

添加环境变量

然后打开terminal,使用source ~/.bashrc,使我们刚才的更改立即生效

1
$ source ~/.bashrc

验证是否安装成功

1
$ nvcc -V

如果出现下图类似的提示表示安装成功

CUDA安装成功

cuDNN SDK (>= 7.2)

下载cudnn:https://developer.nvidia.com/rdp/cudnn-download

注意:上面的操作需要登录,如果没有账号的话就注册一个

cuDNN软件开发工具包,tensorflow官方要求它的版本>=7.2,注意还要与CUDA的版本对应哦~

下载cuDNN

安装

这里的安装过程跟我在windows上安装cuDNN的过程基本一样,就是复制文件…

1
2
3
4
5
6
7
8
9
# 首先切换到你存放cuDNN安装包的地方,一般默认放在用户的Download文件夹下
$ cd ~/Downloads/
# 解压下载的cuDNN压缩包
$ tar xvzf cudnn-9.0-linux-x64-v7.4.1.5.tgz
# 将解压的文件复制到对应的cuda的安装路径下,复制完解压的文件就可以删掉了
$ sudo cp cuda/include/cudnn.h /usr/local/cuda/include
$ sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
# 所有用户添加读权限
$ sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

桌面版的Ubuntu中,以上操作其实都可以使用鼠标点击完成…

tensorflow-gpu

我使用pip直接安装,安装之前需要你确认你的系统里面有python3和对应的pip(ubuntu 16.04默认安装Python 2.7.12Python 3.5.2),验证方法如下:

验证python3:

1
2
$ python3 -V
# 显示出版本号就表示已经安装了

验证pip3:

1
2
3
4
$ pip3 -V
# 显示出版本号就表示已经安装了
# Ubuntu默认没有安装pip,如果你也没有安装,可以使用下面的命令安装
$ sudo apt-get install python3-pip

安装

1
2
# 指定阿里镜像源,听说会快好多
$ sudo pip3 install --index-url https://mirrors.aliyun.com/pypi/simple tensorflow-gpu

安装tensorflow-gpu

验证否安装成功

这里我使用官网的例子来测试一下

到桌面新建一个tensorflow-gpu-test.py文件,然后填上如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
import tensorflow as tf

# Creates a graph.
a = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[2, 3], name='a')
b = tf.constant([1.0, 2.0, 3.0, 4.0, 5.0, 6.0], shape=[3, 2], name='b')
c = tf.matmul(a, b)

# Creates a session with log_device_placement set to True.
sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))

# Runs the op.
print(sess.run(c))

打开terminal,执行一下刚才的程序

1
$ python3 ~/Desktop/tensorflow-gpu-test.py

如果你看到如下的效果就表示安装成功啦~

1
2
3
4
5
6
7
8
Device mapping:
/job:localhost/replica:0/task:0/device:GPU:0 -> device: 0, name: Tesla K40c, pci bus
id: 0000:05:00.0
b: /job:localhost/replica:0/task:0/device:GPU:0
a: /job:localhost/replica:0/task:0/device:GPU:0
MatMul: /job:localhost/replica:0/task:0/device:GPU:0
[[ 22. 28.]
[ 49. 64.]]

测试tensorflow-gpu是否安装成功

参考资料:

https://www.tensorflow.org/install/gpu

https://github.com/tensorflow/tensorflow/blob/master/README.md

http://blog.51cto.com/moerjinrong/2175362

https://blog.csdn.net/zhaoyu106/article/details/52793183

如果你觉得此页面对你有帮助,或者想资瓷我一下,欢迎点击下面打赏哦,谢谢~