安装Tensorflow的问题 - 不是CUDA / CuDNN问题

时间:2018-05-19 22:33:48

标签: windows tensorflow import install python-3.6

我最近开始进入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显卡也没有GPU版本的张量流,所以我不认为这是问题所在。还有一些建议可以确保安装Visual Studio的Microsoft可再发行组件,它们就是这样。

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

某些系统信息:

  • 操作系统:Microsoft Windows 10 Pro版本10.0.17134
  • CPU:Intel Xeon E5620
  • 显卡:Radeon RX 480
  • Python版本:3.6.5 amd64 Tensorflow
  • 安装方法:pip install tensorflow

4 个答案:

答案 0 :(得分:6)

@ 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!

答案 1 :(得分:5)

我的猜测是你试图使用TF&gt; = 1.6,因为你的CPU相当老,不支持AVX指令。确实从1.6开始,tensorflow pre-built binaries use AVX instructions

目前您可以选择:

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

答案 2 :(得分:1)

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

我在我的案例中做的是用conda而不是pip安装tensorflow 1.8。根据我对conda和pip的小经验,conda在将所需文件放置在适当的位置时似乎表现得更好。

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

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

答案 3 :(得分:0)

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

Check the version numbering here

或以更简单的方式,使用Anaconda

conda create --name new_env_name tensorflow-gpu
activate new_env_name

我已使用Cuda 9.0,GeForce 1050 Ti,Windows 10和Python 3.6.7成功安装了TensorFlow GPU 1.12版本(直到撰写本文为止)。

注意:您已经为TensorFlow安装了CUDA工具包(版本9)以识别您的GPU