win10跑深度学习程序无法调用gpu的问题(已解决)

win10跑深度学习真的是一言难尽,但是windows系统又使用的比较习惯,过去使用过ubuntu系统,里面写文档什么的确实不习惯,所以自己做的实验项目也主要是以win10为主工具是常见的pycharm+anaconda+win10

采用的是keras2.3.1,更改了程序中一些代码之后,每次跑模型都会中断

记录一下,防止碰见类似问题再次遗忘吧。。。

每次程序跑起来打开任务管理器就是这个样子。。。。。。

gpu是一点儿没出力。。。。我寻思你起码是个980Ti啊,你不出力要你有啥用。。。。

在pycharm的terminal终端输入python,进入python环境

在python中输入如下代码

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

在terminal中发现

 

 发现问题,检测不到gpu

只有一个cpu(-1)

经过我的查询与研究分析可能存在很多种问题(血泪史)

 1,tensorflow版本与显卡版本不对应(或者没有安装对应gpu版本)

 

2,cudnn与cuda和相应的python版本以及对应的tensorflow或keras版本不对应

1,2解决方法很简单,寻找对应的版本重新安装即可,网上教程很多,有的是使用代码在终端加载,有的是在英伟达官网下载文件安装,这些方法都可以的,

还有可以尝试重装显卡驱动或者更新显卡驱动,但是我的问题不在这里,就不再赘述了,但是仍然需要尝试。

3,代码未调用gpu

尝试在运行的程序头部输入以下代码

import os
os.environ["CUDA_VISIBLE_DEVICES"] = "0"	#使用的gpu的编号,使用第 0 个

但是显然我的gpu都识别不到,问题也并不在这里

4,anaconda下的环境在pycharm中并未进入

这是我所存在的问题

在conda下创建的环境在pycharm中进入 File Setting

在project中选择interpreter 

右侧python interpreter 选中所需conda的环境 

但是

但是

对于我的电脑pycharm来讲,并没有进入这个虚拟环境,到现在我都不知道为什么,同样的设定在其他电脑上就行。。。。

比如在pycharm terminal中输入

conda info --envs

会发现

我的程序依然在pycharm中处于base环境中。而非创建的虚拟环境里 

https://zhuanlan.zhihu.com/p/441469719

用了上述的方法之后

这才算是进入了(个人认为) 

5,缺少必要的cuda组件(个人认为有可能是win10跑程序的bug,这也是我一直以来未发现的核心问题)

之前一直会或多或少的提示缺少cudnn某某组件,但是没有注意,全心全意的在解决环境的问题,环境的问题解决了也没有类似提示了

当我觉得终于搞定了的时候再次

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

结果

居然还是识别不了。。。。。。(请忽略我几次手残打错代码的愚蠢失误。。。)

从下图我当时写的研究记录来看,我的心情不太妙

不过还是功夫不负有心人找到了问题

could not locate zlibwapi.dll    Please make sure it is in your library path.

从官网下载所需组件并将其添加到path中

官方网站地址

https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-zlib-windows

 添加到path中或者是添加到cuda

右键此电脑 —-属性——-高级系统设置

 

 环境变量——path——–添加

path路径添加zlib123.dll.zip解压后的zlibwaip.dll路径

然后再次尝试

 可以发现有-1和0号两张卡

cpu 与gpu全都能识别到

解决了。。。。撒花

总结一下,如果有能力,除了看中文资料外,可以Google一下适当参考一些英文论坛上的信息或者官方网站,确实多用一门语言,就会有更多的想法可以参考。

 

 

 

 

来源:Sawyer Zhang

物联沃分享整理
物联沃-IOTWORD物联网 » win10跑深度学习程序无法调用gpu的问题(已解决)

发表评论