Win10下Tensorflow-gpu使用cpu训练而不是gpu加速

问题1:明明安装好了tensorflow-gpu,但是运行代码时无法使用gpu加速

明明安装好了tensorflow-gpu,但是运行代码时无法使用gpu加速,运行tensorflow代码时cpu占满还是跑的很慢,同时tf.test.is_gpu_available()=false。在网上看了很多教程,有人说是tensorflow与tensorflow-gpu的版本不同问题,要求tensorflow-gpu版本比tensorflow版本高,同时要求电脑在装tensorflow之后装tensorflow-gpu。

因此我就尝试了很多次,发现都不成功,tf.test.is_gpu_available()=false一直都是这样。因为我一直用pytorch跑代码,pytorch可以用gpu加速但是tensorflow不可以,说明tensorflow配置可能有问题。


原因分析:

Tensorflow对CUDA和CuDNN的要求很严格,如果gpu用不了建议首先根据这个博主的博客对照一下tensorflow版本对应问题。
附上我觉得总结很好的博主的博客:https://blog.csdn.net/weixin_44560088/article/details/117457619?spm=1001.2014.3001.5502

例如:tensorflow_gpu-2.3.0必须要求python为3.5-3.8;CuDNN=7.6(7版本开头);CUDA=10.1


解决方案:

1.首先查看自己CUDA的版本

在Anaconda中输入nvcc -V查看自己的cuda版本,比如我的就是10.1版本,这样看最靠谱。
我之前是CUDA10.2版本,没有对应的tensorflow,因此尝试了很多次都不成功,所以我重新找了一个CUDA版本和CUDNN版本进行下载,在没有删除10.2的情况下又安装了一个10.1版本。
在这里插入图片描述
2.查看版本对应表选择一个自己的CUDA版本下的Tensorflow版本
3.在Anaconda Navigator中把原来的Tensorflow虚拟环境删除掉(右下角remove)

在这里插入图片描述
4.下载好CUDA10.1和CuDNN7.6.5的压缩包(这里一定要下CuDNN版本7开头的压缩包而不是8开头的,见问题2)
将CUDA10.1与原来的10.2版本的环境分开,比如10.2在C盘,为了不出什么问题,我把10.1安装在了D盘,首先在D盘组织好这样的架构D:\CUDA\NVIDIA corporation\CUDA Samples\v10.1和D:\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v10.1,根据CUDA的默认C盘安装路径将安装路径修改到对应的D盘,方便后续查找文件。
将CuDNN解压缩后将文件复制到D:\CUDA\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin路径下替换掉对应的文件。

5.在Anaconda中创建对应的tensorflow虚拟环境(我给他起名字叫tf)

conda create -n  tf python=3.8

创建完毕后,使用pip安装tensorflow-gpu

pip install tensorflow-gpu==2.3.0

等待其安装成功后,就可以依次在Anaconda prompt中输入以下代码

activate tf
python
import tensorflow as tf
print(tf.test.is_gpu_available())

在这里插入图片描述
如果看到True就表示成功了!

问题2:Could not load dynamic library ‘cudnn64_7.dll’

原因分析:

没有关注CuDNN的版本,我在第一次安装时直接下载了CuDNN 8开头的版本,导致在bin文件夹中找不到cudnn64_7.dll只能找到cudnn64_8.dll,这就是没有认真读题的原因!!!

解决方法:下载CuDNN 7开头的版本解压去bin文件粘贴替换即可

当你完成所有这些之后,重启你的编译器/终端,输入上述测试tensorflow-gpu能否使用的命令,就可以惊喜的发现!它成功了!接下来就可以用gpu快乐的跑代码了~

此处特别鸣谢我的师弟——阿刚!在他的帮助下我们一起完美解决了这个问题~

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值