【问题标题】:Issue installing Tensorflow -- not a CUDA/CuDNN issue安装 Tensorflow 的问题——不是 CUDA/CuDNN 问题
【发布时间】:2018-10-30 00:04:06
【问题描述】:

我最近开始使用 Tensorflow,但我在安装时遇到了问题。每次我尝试导入它时,我都会收到以下错误

>>> import tensorflow as tf
Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\__init__.py", line 24, in <module>
    from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module>
    from tensorflow.python import pywrap_tensorflow
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module>
    raise ImportError(msg)
ImportError: Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 14, in swig_import_helper
    return importlib.import_module(mname)
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 994, in _gcd_import
  File "<frozen importlib._bootstrap>", line 971, in _find_and_load
  File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 658, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 571, in module_from_spec
  File "<frozen importlib._bootstrap_external>", line 922, in create_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
ImportError: DLL load failed: A dynamic link library (DLL) initialization routine failed.

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module>
    from tensorflow.python.pywrap_tensorflow_internal import *
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 17, in <module>
    _pywrap_tensorflow_internal = swig_import_helper()
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 16, in swig_import_helper
    return importlib.import_module('_pywrap_tensorflow_internal')
  File "C:\Users\[user]\AppData\Local\Programs\Python\Python36\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
ModuleNotFoundError: No module named '_pywrap_tensorflow_internal'


Failed to load the native TensorFlow runtime.

我查看了其他与我有同样问题的堆栈溢出帖子,他们建议从 NVIDIA 获取 CUDA 库。问题是,我既没有 NVIDIA 显卡也没有 tensorflow 的 GPU 版本,所以我认为这不是问题所在。还有人建议确保安装了 Visual Studio 的 Microsoft 可再发行组件。

如果这是一个基于系统变量的问题,我将不胜感激更改系统变量的帮助,因为我是这样做的新手。谢谢!

一些系统信息:

  • 操作系统:Microsoft Windows 10 专业版 10.0.17134
  • CPU:英特尔至强 E5620
  • 显卡:Radeon RX 480
  • Python 版本:3.6.5 amd64 TensorFlow
  • 安装方法:pip install tensorflow

【问题讨论】:

    标签: windows tensorflow import installation python-3.6


    【解决方案1】:

    我的猜测是您正在尝试使用 TF >= 1.6,因为您的 CPU 相当旧并且不支持 AVX 指令。确实从 1.6 开始,tensorflow pre-built binaries use AVX instructions。

    目前您的选择是:

    1. 使用 TF 1.5 或更早版本的官方预构建二进制文件。 (您会错过一些事情,但我想说这仍然可以)。
    2. 搜索不支持 AVX 的 TF >= 1.6 的非官方预构建二进制文件。
      • 目前,Windows 上 conda install 的 TF 1.10 之前的预构建二进制文件似乎没有使用 AVX 支持构建,尽管我无法在任何地方找到此信息,因此无法判断这是否是故意的,以及这将持续多长时间案例。
      • 另一方面,请注意来自 conda-forge 的二进制文件(在主通道上可用之前,它曾经是主要的 conda tensorflow 提供程序)是在支持 AVX 的情况下构建的。
    3. 更改您的硬件以支持 AVX(显然)。
    4. 在没有 AVX 指令的情况下编译您自己的 tensorflow 二进制文件。如果其他选项都不可行,这是一个合理的选择。

    【讨论】:

    【解决方案2】:

    @user1735003 想通了。 我卸载了最新版本的 tensorflow

    pip uninstall tensorflow
    

    然后安装了tensorflow 1.5

    pip install tensorflow==1.5
    

    然后我验证了安装与脚本一起工作

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

    我得到了正确的输出

    Hello, TensorFlow!
    

    【讨论】:

    • 正在收集 tensorflow==1.5 找不到满足要求 tensorflow==1.5 的版本(来自版本:)没有找到 tensorflow==1.5 的匹配分布
    【解决方案3】:

    请记住,上述答案在很多情况下都是正确的。 但是,降级到 tensorflow 1.5 可能不是最佳解决方案,因为例如,您将无法访问 tensorflow 的一些新功能,例如“急切执行”功能。

    在我的情况下,我所做的是使用 conda 而不是 pip 安装 tensorflow 1.8。根据我对 conda 和 pip 的一点经验,在将所需文件放置在适当位置时,conda 似乎表现更好。

    总之, 而不是pip3 install --upgrade tensorflow, 我使用了conda install tensorflow,它将正确安装最新版本。

    如果您没有为 conda 命令安装 Anaconda。从here下载

    【讨论】:

      【解决方案4】:

      如果问题仍然存在,请检查版本编号并确保 cuda 和 TF 兼容。

      Check the version numbering here

      或者为了更简单的方式,使用 Anaconda

      conda create --name new_env_name tensorflow-gpu
      activate new_env_name
      

      我成功安装了 TensorFlow GPU 1.12 版(直到撰写本文之日为止)和 Cuda 9.0、GeForce 1050 Ti、Windows 10 和 Python 3.6.7

      注意:您已经安装了 CUDA Toolkit(版本 9),以便 TensorFlow 识别您的 GPU

      【讨论】:

        猜你喜欢
        • 2021-05-05
        • 2016-12-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-12
        • 2020-08-02
        相关资源
        最近更新 更多