Ubuntu16.04安装 tensorflow-gpu CUDA9.0+cudnn 7.0

 

 

本篇适合第一次安装tensorflow-gpu的人,折腾了好久,一开始装了CUDA 10.1,发现tensorflow 1.13版本调用不起来GPU,后来看了官方的说明,CUDA10.1好像要2.0以上的tensorflow,所以放弃了CUDA10.1,装起了CUDA 9.0,以下为安装步骤

一、安装nvidia驱动

首先在终端 输入

nvidia-smi 

如果有以下显示,说明驱动正常(这86%是我正在运行程序,就截图说明下而已)

如果没有反映或者提示没有这个命令之类,那么采用以下方式,我看到网上很多是要切换到无桌面命令格式,感觉好麻烦,其实不用,只要先在软件中搜索“软件更新”,首先找个镜像源,如果使用Ubuntu自带的更新实在太慢,还不一定成功,选择源的格式如下:

选择源之后,还是在软件更新中,选择附加驱动,然后选择合适的驱动,应用更改就好

然后在终端输入 nvidia-smi,应该可以正常显示第一个图的样子,接下来安装cuda9.0

二、安装cuda9.0

1、下载deb文件,网址如下:https://developer.nvidia.com/cuda-90-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1604&target_type=deblocal

文件大小1.2GB,下载速度还是挺快的,下载完成后,进入下载目录,然后在终端输入以下命令:

sudo dpkg -i cuda-repo-ubuntu1604-9-0-local_9.0.176-1_amd64.deb 
sudo apt-key add /var/cuda-repo-<version>/7fa2af80.pub 
sudo apt-get update
sudo apt-get install cuda

如果发现自动升级最新版本了,重新运行最后一条命令

sudo apt-get install cuda-9.0

此时CUDA安装完成,之后添加环境变量

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 

三、安装CUDNN

首先去官网下载https://developer.nvidia.com/rdp/cudnn-archive ,我下载的版本是cuDNN v7.0.5版本

下载完成后,对文件进行解压,有一个cuda的文件夹,包括include 和 lib64,把里面的文件复制到/usr/local/cuda/里面相应的目录里:

 

sudo cp 解压地址/cuda/include/cudnn.h /usr/local/cuda/include/
sudo cp 解压地址/cuda/lib64/libcudnn* /usr/local/cuda/lib64/

然后给文件加读权限

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

更新网络链接

cd /usr/local/cuda/lib64/ 
sudo chmod +r libcudnn.so.7.0.5 # 自己查看.so的版本  
sudo ln -sf libcudnn.so.7.0.5. libcudnn.so.7 
sudo ln -sf libcudnn.so.7 libcudnn.so  
sudo ldconfig 

查看cudnn是否安装好:

cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 

显示如下,说明好啦

至此,基本安装就ok了,以上主要参考https://zhuanlan.zhihu.com/p/58114055?utm_source=wechat_session&utm_medium=social&utm_oi=28989976477696感谢分享,很清楚

然后就是装tensorflow-gpu了,直接pip3安装就行测试是否使用GPU,测试程序是否调用GPU

import tensorflow as tf
 
with tf.device('/cpu:0'):
    a = tf.constant([1.0,2.0,3.0],shape=[3],name='a')
    b = tf.constant([1.0,2.0,3.0],shape=[3],name='b')
with tf.device('/gpu:0'):
    c = a+b
#因为不是所有的操作都可以被放在GPU上,如果强行将无法放在GPU上的操作指定到GPU上,将会报错。
sess = tf.Session(config=tf.ConfigProto(allow_soft_placement=True,log_device_placement=True))

sess.run(tf.global_variables_initializer())
print(sess.run(c))

如果显示操作是在GPU上,说明成功了,不成功的话,tensorflow-gpu版本是否都是匹配的

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值