2021-12-01如何解决tensorflow无法调用GPU运行的问题?

1.目前的环境和问题

1.1问题说明

目前的主要问题是在做深度学习时,不能成功调用GPU进行运算,程序一直在CPU上运行,对于数据量大的深度学习而言,时间成本高
主要问题如下(代码都是在python环境下运行):
①tensorflow版本检查

import tensorflow as tf
tf.__version__  #(2.6.0)

再导入tensorflow时出现如下问题:
在这里插入图片描述
②可用的GPU设备检查

import tensorflow as tf
from tensorflow.python.client import device_lib
#输出可用的GPU数量
print("Num GPUs Available: ", len(tf.config.experimental.list_physical_devices('GPU')))
#查询GPU设备
print(device_lib.list_local_devices())

以上结果返回如下:
GPU的可使用数量为0(实际上可使用的GPU数量为2)
在这里插入图片描述
未能成功检测到GPU设备,只检测到CPU
在这里插入图片描述
综合以上目前觉得是GPU的配置不成功,版本不匹配之类的问题

1.2操作环境等说明

①操作系统linux/ubuntu18.04(查询方法如下图)
在这里插入图片描述
②系统的架构=amd64(x86_64)(查询方法如下图)
在这里插入图片描述
③python=3.6.9
④tensorflow-gpu=2.6.0
⑤cuda=9.1.85(查询方法如下图)
注意区分两种查询命令的区别:https://blog.csdn.net/hb_learing/article/details/115534219
在这里插入图片描述
⑥无cudnn(查询方法如下图)
在这里插入图片描述

2.针对该问题的解决办法

①查询tensorflow版本对应的cuda和cudnn
查询链接:https://tensorflow.google.cn/install/source?hl=en
在这里插入图片描述
由以上可知tensorflow2.6.0对应的版本分别为cudnn=8.1和cudn=11.2
②升级cudn的版本
先下载对应的cudn版本文件,下载地址:https://developer.nvidia.com/cuda-11.2.0-download-archive?target_os=Linux&target_arch=x86_64&target_distro=Ubuntu&target_version=1804&target_type=runfilelocal
可直接参照官网的安装教程在终端输入相关命令进行安装
在这里插入图片描述
因为我是在docker容器里运行,没有root权限,所以在命令行输入时,我会舍去sudo,直接输入后面的内容
③配置cudn
a. 查看.bashrc文件

vim  ~/.bashrc

b. 在该文件的末尾加入

export PATH=/usr/local/cuda-11.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64:$LD_LIBRARY_PATH

c. 最后使用如下命令对.bashrc文件的修改进行激活生效

source ~/.bashrc

d. 使用nvcc -V命令查看cudn的版本,可知现在变成了11.2.152,如图所示:
在这里插入图片描述
④安装cudnn
a. 先下载对应的cudnn安装包,安装包链接:https://developer.nvidia.com/rdp/cudnn-archive
b. 解压安装包并进入解压目录

tar zxvf cudnn-11.2-linux-x64-v8.1.0.77.tgz
cd 压缩文件所在路径

c. 执行cp和chmod命令配置cudnn环境

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

d. 查看cudnn版本
网上常用的查看cudnn版本的命令为:

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

但是该命令没有反应,所以网上搜索了解决办法,有效解决办法的链接https://blog.csdn.net/eaxy_z/article/details/108615548
最终查询cudnn的版本为8.1.0
在这里插入图片描述
至此所有的配置均已完成,现在可以按照1.1问题说明中的②查看可用GPU的数量了,结果显示如下(部分截图):
在这里插入图片描述

哈哈哈哈,困扰我老久的问题总算解决了,具体参考内容的链接如下
①cudn配置时.bashrc文件的添加内容:https://blog.csdn.net/qq_16792139/article/details/113256279
②整体的安装流程:
https://zhuanlan.zhihu.com/p/72298520

  • 7
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LJhaha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值