解决tensorflow-gpu安装过程中出现的tf.test.is_gpu_avaiable()返回false的一部分解决方法

说起安装tensorflow-gpu的时候出现的一些坑就有点郁闷写个博客记录一下这一些坑,也算给后人一点解决方法

Question Ⅰ

第一种出现在import tensorflow as tf 的时候,看截图!
在这里插入图片描述
这玩样我一开始安装的时候看别人的教程里貌似也有这问题,就没管它,以为没事情,后来最后的最后,我才发现是我想多了,这玩样解决方法其实很简单也很暴力,不就是没找到cudart64_101.dll这个文件嘛,直接搜索,然后找到你电脑里的cudart64_101.dll,一般在这个目录下C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.1\bin会有这样的一个文件,然后Ctrl-C,进入C:\Windows\System32目录,来个Cril-V,over,解决!再来一次你就会发现,哎,他好了
在这里插入图片描述

Question Ⅱ

接下来就是那万恶的GPU问题了
测试的时候输入 tf.test.is_gpu_available(),然后出现
在这里插入图片描述
得嘞,一大堆东西,前面一个waring不用管,出现这个警告的原因是TF2里面这行语句改了,不用管,他自动帮你转换了,直接看最后一行,好家伙,False,毫无疑问,没连上GPU啊

噢,插句题外话,有些教程里会让你输入tf.Session()来测试,然后你会发现,他会出现这样的一个报错
在这里插入图片描述
这是因为这句话是tensorflow1.*的一个语法,在tensorflow2.*把这句话改成了tf.compat.v1.Session(),输入这个以后就会显示对应的信息了
在这里插入图片描述

这里有几种可能,我主要讲一下我遇到的,其他的我也就给个其他博主的链接了,毕竟没遇到嘛

CUDA、cuDNN、tensorflow版本不一致

对应版本的话,可以看这位博主整理的,还是目前比较的全的https://blog.csdn.net/K1052176873/article/details/114526086
当然也可以直接上官网https://tensorflow.google.cn/install/source_windows?hl=en#gpu
这个问题其实我很久以前遇到的,那时候我在装Pytorch,那次以后我就把这玩样全部配好了,这次出现的也不是这个问题,我这里就给出我当时的几种解决思路。

  • 第一种是看看这三个版本对不对应,如果不对应的话可能就需要重新安装一下cuda,主要是CUDA版本,貌似cuDNN版本高一点没啥太大关系,我电脑上的cuDNN也是8.0的而不是表里的7.4。这个的话我就不给链接了,百度一搜太多了,基本上都是讲这个问题的,我也没有看哪个比较的好,所以就自行搜一下吧。
  • 第二种也是我当初遇到的问题,显卡驱动版本过低了,我当初可是被这个坑的不轻,我一直在找CUDA的问题,最终确实驱动的锅。这种的话,你可以下载一个GeForce Experience,官网:https://www.nvidia.cn/geforce/drivers/,它会自动给你更新驱动,不过这东西它需要登录,首次登录要验证邮箱,验证邮件发过来呢又非常的慢,甚至出现一个周才到也是有可能的(别怀疑,我真的遇到过),so,可以选择手动下载安装驱动,在官网里也有,选择对应的信息就好了
  • 第三种是PATH内配置的的问题,在PATH里有两条是需要手动配的,如下,如果没有配的话,也是有可能出现这个问题的
    在这里插入图片描述

Could not load dynamic library 'cudnn64_7.dll'; dlerror: cudnn64_7.dll not found

yes,各位看到的是一条报错信息,就是这条报错导致我输出False,我当时最后发现这玩样然后改完后有点想口吐芬芳,就说啊,其他框架可以调用GPU,咋就你TF不行。这段报错出现在 tf.test.is_gpu_available()的输出里,可以仔细悄悄,如果有的话,那解决方法......前面说了复制粘贴的事情,请看Question I
当我改完这个以后,它就....True了????
在这里插入图片描述

没安装GPU版本

这个问题,enmm......,也不是不可能出现,如果装的是CPU版本的话,那肯定是调用不了GPU的,乖乖卸了重装吧
验证方法的话,进入tensorflow环境,python下运行下面这些代码

from tensorflow.python.client import device_lib
print(device_lib.list_local_devices())

看看输出(图片来自于https://blog.csdn.net/qq_37902216/article/details/89556068
在这里插入图片描述
这种的话是CPU版本
如果是GPU版本的话,应该会有这样的一段在这里插入图片描述
(因为这个是我写这篇博客时候想到的,那时候我已经解决那个False问题了,但应该在输出里也会有明显的GPU字样,或者反向思维,不是CPU版本那肯定就是GPU版本了)

卸载

pip uninstall tensorflow

安装

pip install tensorflow-gpu==版本号

然后重新验证一下

主要应该就这些了,如果还有其他的其实可以看一看那一大段输出,或许在里面就会找到答案,我其他的也没遇到过,也不好在此谈论,希望这篇博客对大家能有所帮助。

如有错误,欢迎指正!

同时发布在CSDN:https://blog.csdn.net/tangkcc/article/details/120510152

posted @ 2021-09-27 16:44  小汤同学  阅读(1521)  评论(0编辑  收藏  举报