tensorflow import错误 ImportError: DLL load failed: The specified module could not be found的解决办法

Tensorflow安装测试

tensorflow成功安装以后,测试一下:

>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))

在import的时候,报如下错误:

return _bootstrap._gcd_import(name[level:], package, level)
File “”, line 986, in _gcd_import
File “”, line 969, in _find_and_load
File “”, line 958, in _find_and_load_unlocked
File “”, line 666, in _load_unlocked
File “”, line 577, in module_from_spec
File “”, line 906, in create_module
File “”, line 222, in _call_with_frames_removed
ImportError: DLL load failed: The specified module could not be found.

During handling of the above exception, another exception occurred:

import_module
return _bootstrap._gcd_import(name[level:], package, level)
ImportError: No module named ‘_pywrap_tensorflow’

Tensorflow对Visual Studio库的依赖

tensorflow会依赖Visual Studio的dll库,首先确保你已经安装了Visual Studio 2015,并且包括了C++的组件。

如果你运行的是tensorflow 的非GPU版本,那么这个问题应该能够解决了。

Tensorflow依赖库的检查

但是如果你安装了tensorflow-gpu,那么上述问题可能仍然存在,为了进一步确认所缺少的库,可以使用一个check脚本:
https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

将文件下载到本地:
然后运行 python tensorflow_self_check.py,该脚本会对windows上tensorflow-gpu所需的dll库进行检查。

忘了截屏了。

Tensorflow对NVIDIA的动态库依赖

在我的Windows10系统上,使用的是NVIDIA的显卡,运行check脚本显示,缺少NVIDIA的dll文件,按照提示的link,一次安装即可。

注意的点:
1. CUDA Toolkit安装需要3G左右的数据下载,花时间比较长。下载链接为:https://developer.nvidia.com/cuda-downloads,有本地安装和网络安装两种方式。
安装完成之后,会系统将安装路径添加至Path环境变量中去,无需额外操作。可以直接检查环境变量确认。
2. 如果是cudnn64_5.dll,你可以点击https://developer.nvidia.com/cudnn下载,在下载之前,需要注册一个nvidia的账号。
直接下载列表:https://developer.nvidia.com/rdp/cudnn-download

现在最新的cudnn文件版本已经更新至版本6了,这里要注意选择之前的5.1版本(cuDNN v5.1 Library for Windows 10)。
这里你需要额外做两件事情:
2.1 找到第一步中CUDA Toolkit的安装路径,可以直接查看Path环境变量,例如C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin, 然后将cudnn64_5.dll拷贝到该目录下。

再次运行python tensorflow_self_check.py,确认没有提示更多需要安装的库。

好了,到现在为止,你的tensorflow可以正常运行了。

Tensorflow Github issue区的问题参考

更多的问题,可以参考tensorflow的github的讨论区:
https://github.com/tensorflow/tensorflow/issues/5949
https://github.com/tensorflow/tensorflow/issues/10994

By Code问答

发表评论

电子邮件地址不会被公开。 必填项已用*标注

5 + 3 =