【问题标题】:Cannot import Tensorflow for GPU on Windows 10无法在 Windows 10 上为 GPU 导入 Tensorflow
【发布时间】:2017-09-20 12:50:15
【问题描述】:

尝试在我的机器上安装 GPU 版本的 Tensorflow,但在尝试“import tensorflow”时出现此错误


ImportError Traceback(最近调用 最后的) C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflo swig_import_helper() 中的 w_internal.py 17 尝试: ---> 18 返回 importlib.import_module(mname) 19 除了 ImportError:

C:\Users\snh5_000\Anaconda3\lib\importlib__init__.py 在 进口模块(名称,包装) 125 级 += 1 --> 126 return _bootstrap._gcd_import(name[level:], package, level) 127

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap.py 在 _gcd_import(名称、包、等级)

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap.py 在 _find_and_load(name, import_)

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap.py 在 _find_and_load_unlock ed(name, import_)

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap.py 在 _load_unlocked(规范)

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap.py 在 module_from_spec(spec)

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap_external.py 在 create_modul e(self, spec)

C:\Users\snh5_000\Anaconda3\lib\importlib_bootstrap.py 在 _call_with_frames_removed(f, *args, **kwds)

ImportError: DLL load failed: 找不到指定的模块。

在处理上述异常的过程中,又发生了一个异常:

ImportError Traceback(最近调用 最后的) C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflo w.py in () 40 sys.setdlopenflags(_default_dlopen_flags | ctypes.RTLD_GLOBAL) ---> 41 来自 tensorflow.python.pywrap_tensorflow_internal 导入 * 42 从 tensorflow.python.pywrap_tensorflow_internal 导入 版本

C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflo w_internal.py in () 20 返回 importlib.import_module('_pywrap_tensorflow_internal' ) ---> 21 _pywrap_tensorflow_internal = swig_import_helper() 22 del swig_import_helper

C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflo swig_import_helper() 中的 w_internal.py 19 除了 ImportError: ---> 20 返回 importlib.import_module('_pywrap_tensorflow_internal' ) 21 _pywrap_tensorflow_internal = swig_import_helper()

C:\Users\snh5_000\Anaconda3\lib\importlib__init__.py 在 进口模块(名称,包装) 125 级 += 1 --> 126 return _bootstrap._gcd_import(name[level:], package, level) 127

ImportError:没有名为“_pywrap_tensorflow_internal”的模块

在处理上述异常的过程中,又发生了一个异常:

ImportError Traceback(最近调用 最后)在() ----> 1 导入张量流

C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow__init__.py 在 () 22 23 # pylint: 禁用=通配符导入 ---> 24 来自 tensorflow.python 导入 * 25 # pylint: 启用=通配符导入 26

C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python__init__.py 在 () 49 将 numpy 导入为 np 50 ---> 51 从 tensorflow.python 导入 pywrap_tensorflow 52 53 # 协议缓冲区

C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflo w.py in () 50 一些常见的原因和解决方案。包括整个堆栈跟踪 51 上面求救时出现这个错误信息。""" % traceback.format_exc() ---> 52 引发 ImportError(msg) 53 54 # pylint: enable=wildcard-import,g-import-not-at-top,unused-import,line- 太长了

ImportError: Traceback(最近一次调用最后一次):文件 "C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_t ensorflow_internal.py”,第 18 行,在 swig_import_helper 中 返回 importlib.import_module(mname) 文件“C:\Users\snh5_000\Anaconda3\lib\importlib__init__.py”,第 126 行,在 导入模块 return _bootstrap._gcd_import(name[level:], package, level) File "", line 986, in _gcd_import File "",第 969 行,在 _find_and_load 文件中 "",第 958 行,在 _find_and_load_unlocked 文件“”,第 666 行,在 _load_unlocked
文件“”,第 577 行,在 module_from_spec
文件“”,第 906 行,在 create_module 文件“”,第 222 行,在 _call_with_frames_removed ImportError: DLL load failed: 找不到指定的模块。

在处理上述异常的过程中,又发生了一个异常:

Traceback(最近一次调用最后一次):文件 "C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_t ensorflow.py”,第 41 行,在 从 tensorflow.python.pywrap_tensorflow_internal 导入 * 文件“C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_t ensorflow_internal.py”,第 21 行,在 _pywrap_tensorflow_internal = swig_import_helper() 文件“C:\Users\snh5_000\Anaconda3\lib\site-packages\tensorflow\python\pywrap_t ensorflow_internal.py”,第 20 行,在 swig_import_helper 中 返回 importlib.import_module('_pywrap_tensorflow_internal') 文件“C:\Users\snh5_000\Anaconda3\lib\importlib__init__.py”,行 126,在导入模块中 return _bootstrap._gcd_import(name[level:], package, level) ImportError: No module named '_pywrap_tensorflow_internal'

无法加载原生 TensorFlow 运行时。

https://www.tensorflow.org/install/install_sources#common_installation_probl 特快专递

出于一些常见原因和解决方案。包括整个堆栈跟踪 寻求帮助时出现此错误消息。

运行 Windows 10、Python 3.5.2、Anaconda 4.2.0 64 位。使用“pip install tensorflow-gpu”安装了 tensorflow-gpu。

我已尝试在 https://github.com/tensorflow/tensorflow/issues/5949 中进行修复,即运行 Microsoft Visual C++ 2015 Redistributable Update 3 并确认我在 System32/SysWOW64/my Python 文件夹中有以下 DLL:

KERNEL32.dll

WSOCK32.dll

WS2_32.dll

SHLWAPI.dll

python35.dll

MSVCP140.dll

VCRUNTIME140.dll

api-ms-win-crt-runtime-l1-1-0.dll

api-ms-win-crt-heap-l1-1-0.dll

api-ms-win-crt-utility-l1-1-0.dll

api-ms-win-crt-stdio-l1-1-0.dll

api-ms-win-crt-string-l1-1-0.dll

api-ms-win-crt-math-l1-1-0.dll

api-ms-win-crt-convert-l1-1-0.dll

api-ms-win-crt-environment-l1-1-0.dll

api-ms-win-crt-filesystem-l1-1-0.dll

api-ms-win-crt-time-l1-1-0.dll

值得注意的是,Tensorflow 的 cpu 版本的导入和运行都很好,但是当我尝试使用 gpu 版本时,我得到了上述错误。我认为这是由于我在配置 CUDA 工具包/cudNN 时犯了一个错误,但我认为我正确地完成了说明中列出的所有内容。我确保在 CUDA 工具包的 PATH 环境变量中有一个条目(通向 \bin 和 \libnvvp),并在 cudNN 中添加了一个(通向 \cuda)。

您有什么想法或其他信息需要帮助吗?

【问题讨论】:

    标签: python dll tensorflow


    【解决方案1】:

    尝试在C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\bin 中将cudnn64_6.dll 重命名为cudnn64_5.dll

    【讨论】:

    • 感谢 Nova,这似乎有效。我还确保更新我的环境变量以匹配 Amar 在 cmets 中所说的更低。
    • github 上有一个关于该主题的ongoing discussion。确保您关注更新。
    • 我尝试将 cudnn64_6.dll 重命名为 cudnn64_5.dll,但没有成功。我的错误是我下载了 cuDNN 6.0 而不是 5.1,requirements section in the installation guide 说它只支持 5.1 版本。当我使用正确的文件时它起作用了。
    • 确实需要5.1版。无需重命名。
    • 如果你使用的是 tensorflow 1.3 那么你需要使用 cudnn65_6.dll github.com/tensorflow/tensorflow/issues/7705
    【解决方案2】:

    您需要将CUDA_HOME 指向\cuda%CUDA_HOME%\bin 附加到您的PATH。 此外,tensorflow 目前仅支持 cudNN 5.1,请确保您拥有该版本。

    【讨论】:

    【解决方案3】:

    我在运行 Windows 10、Anaconda 4.3.21 64 位、Python 3.5.3 和 TensorFlow 1.2.0 时遇到了同样的问题。
    但是,通过安装 cuDNN v5.1 而不是这里建议的 v6.0 解决了这个问题https://stackoverflow.com/a/43566341/3830240

    【讨论】:

    • 这是最好的解决方案,因为“重命名的 DLL”解决方案(由 Nova 发布)会导致您稍后遇到二进制不兼容问题。
    • 如果你使用的是 tensorflow 1.3 那么你想使用 cuDNN 6.0 github.com/tensorflow/tensorflow/issues/7705
    【解决方案4】:

    您是否尝试将其关闭再打开? 不过说真的。如果您在 CUDA 和 cuDNN 安装期间运行命令行终端,则在您关闭并重新打开终端之前不会刷新环境变量。我知道这很简单,但我挣扎了一个小时,然后简单的重启解决了同样的导入错误。

    【讨论】:

      【解决方案5】:

      安装 cuDNN 5.1 后,我仍然收到 _pywrap_tensorflow_internal 错误(是的,我的 PATH 设置正确)。我最好从this site 安装 tensorflow_gpu。这需要 cuDNN 6.0,而不是 5.1。不幸的是,他们目前只有用于 GPU 系统的 Tensorflow 1.1。

      【讨论】:

        【解决方案6】:

        我在这里尝试了所有解决方案,但对我不起作用。检查此link 的要求并确保您拥有兼容的版本。 我还将所有 cuDNN 路径添加到我的环境变量中,并且不要忘记将 libbininclude 的内容复制到CUDA 安装中的相同文件夹。

        【讨论】:

          【解决方案7】:

          这对我有用。我参考了 Tensorflow 网站以找到当前支持的 CudaNN 版本。当我解决我的问题时,它是 CudaNN 6.x。最新版本,在我的例子中是 7 DLL 没有被 tensorflow 加载,如果你尝试重命名它,会导致内存错误。

          【讨论】:

            【解决方案8】:

            需要注意的是,从版本 1.0 到版本 1.2 Tensorflow 需要 Cuda8 和 cudnnv5.1。因此,您需要安装 cudnnv5.1。
            这个问题是在April 24 2017 上提出的,这意味着 OP 正在尝试安装版本 1.1.0(当时是最新版本),当时需要 cudnnv5.1 和 python3.5。所以他需要 cudnnv5.1 来解决他/她的问题。

            但是,如果您尝试安装最新版本的Tensorflow,即大于 1.3.0 的版本,则需要cudnnv6.0 +。
            如果您在 1.3.0 上遇到此错误,则意味着您需要 cudnnv6.0。 把它放进你的PATH,你会没事的。

            【讨论】:

              【解决方案9】:

              尝试更改 dll 文件版本对我不起作用。在与 tensorflow-gpu 导入错误斗争了几周后,我终于发现我需要使相应的目录(CUDA、cuDNN 和 CUPTI)与我的 %PATH% 环境变量匹配。我正在使用 CUDA 9.0、cuDNN v7.0 和 Tensorflow 1.11。

              C:\> SET PATH=C:\Program Files\NVIDIA GPU Computing
              Toolkit\CUDA\v9.0\bin;%PATH% 
              
              C:\> SET PATH=C:\Program Files\NVIDIA GPU
              Computing Toolkit\CUDA\v9.0\extras\CUPTI\libx64;%PATH% 
              
              C:\> SET PATH=C:\tools\cuda\bin;%PATH%
              

              https://www.tensorflow.org/install/gpu

              【讨论】:

                猜你喜欢
                • 2021-08-29
                • 1970-01-01
                • 2018-09-11
                • 1970-01-01
                • 1970-01-01
                • 2019-05-17
                • 2018-06-12
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多