淘先锋技术网

首页 1 2 3 4 5 6 7

1、报错样式

在一段时间没有使用TensorFlow之后,当我再次打开,企图运行import TensorFlow as tf 时出现了ImportError: DLL load failed:找不到指定的模块 这个让我措手不及,我经历了安装VS2019、重装cuda、重装TensorFlow,耗费了一上午,没有解决问题,直到我意识到从根源上找一找DLL的问题,才解决了它,下面的这个方法应该试用不同的版本,让我们一起来吧。

先把报错贴出来:

......
  File "D:\Anaconda\envs\tensorflow\lib\imp.py", line 343, in load_dynamic
    return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。

Failed to load teh native TensorFlow runtime.

See https://www.tensorflow.org/install/install_sources#common_installation_problems

for some common reasons and solutions.  Include the entire stack trace
above dis error message when asking for help.

2、查找DLL文件

打开cmd输入
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Tools\MSVC\14.25.28610\bin\Hostx86\x86\dumpbin.exe" /dependents D:\python3.7.4\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
这里我用的是Visual Studio 2019,这个无所谓(17、18都行),只要有它dumpbin.exe,找到这个的目录,我们可以在C:\Program Files (x86),下的VS文件夹下直接搜索dumpbin.exe,找到它的目录。
然后把我剩下是部分复制到cmd里,如上标红地方运行。
效果如图:
红框中显示的是tf需要的DLL文件
红框中显示的是tf需要的DLL文件,我们继续在cmd里把红框内容逐条使用where filename 搜索文件是否存在。
如下图:
在这里插入图片描述
发现是找不到cudnn64_7.dll文件了,第一我去看了一下环境变量,没有问题

第二去cudnn的文件夹里看看少没少cudnn64_7.dll文件,或者我这里是不是cudnn版本的问题,是不是cudnn64_6.dll之类的文件。如果你发现你这里没有cudnn64_7.dll文件,那就重新下载一下对应版本的cudnn。
如果是缺少其他的DLL文件,可以去百度一下哪一个文件归属那个软件,是VS还是CUDA或cudnn,对应的重装即可。
到这里你如果解决了问题,恭喜你结束了,可是我发现我有这个文件
在这里插入图片描述
这让我回忆起来,以前安装cudnn的时候,是直接把cudnn解压后就放在D盘没有动了,后来用 tf 没有问题,可以正常使用,再后来装了pytorch,pytorch可以用,直到近期跑了一个tf程序,发现不能用了,tf真的巨坑,环境啥都没变,就这样了。
最后,既然你查找不到DLL文件,而这个文件存在,cuda的环境变量没问题,那就只能把cudnn目录下的bin、include、lib文件夹下的文件都复制到
在这里插入图片描述
CUDA Development文件夹下对应的文件夹中去,让这些DLL文件聚个会。
在这里插入图片描述
到这里,我解决了问题,你如果只是缺少DLL文件,那找到对应的文件归属软件重装即可,不要图省事把不同版本的DLL文件改个名字。

3、我的环境

Python3.7.4
TensorFlow 1.13.1
cuda_10.0.130_411.31_win10
cudnn-10.0-windows10-x64-v7.6.5.32
其他的版本安装上述的方法,也都可以解决问题。