首页 > 解决方案 > 无法导入 tensorflow,OSError: [WinError 193] %1 不是有效的 Win32 应用程序

问题描述

我正在尝试使用 anaconda 为 python (3.7) 安装 TensorFlow。我已经安装了 Cuda 10.2 和匹配的 cndd 并将其安装在虚拟环境中:

pip install tensorflow==2.1.0

该命令运行没有任何错误,但是当我尝试在 python 中导入它时,我得到:

    Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\site-packages\tensorflow\__init__.py", line 101, in <module>
    from tensorflow_core import *
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\site-packages\tensorflow_core\__init__.py", line 40, in <module>
    from tensorflow.python.tools import module_util as _module_util
  File "<frozen importlib._bootstrap>", line 983, in _find_and_load
  File "<frozen importlib._bootstrap>", line 959, in _find_and_load_unlocked
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\site-packages\tensorflow\__init__.py", line 50, in __getattr__
    module = self._load()
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\site-packages\tensorflow\__init__.py", line 44, in _load
    module = _importlib.import_module(self.__name__)
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\importlib\__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\site-packages\tensorflow_core\python\__init__.py", line 47, in <module>
    import numpy as np
  File "C:\Users\abual\AppData\Roaming\Python\Python37\site-packages\numpy\__init__.py", line 140, in <module>
    from . import _distributor_init
  File "C:\Users\abual\AppData\Roaming\Python\Python37\site-packages\numpy\_distributor_init.py", line 26, in <module>
    WinDLL(os.path.abspath(filename))
  File "C:\Users\abual\Anaconda3\envs\ml1\lib\ctypes\__init__.py", line 364, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 is not a valid Win32 application
>>>

任何人都可以帮我解决它吗?谢谢

标签: pythonpython-3.xtensorflowmachine-learningartificial-intelligence

解决方案


关于你的第一个问题

问题可能是在 64 位机器上安装 32 位。请尝试安装 64 位 TensorFlow 版本 2.x。请参阅此处的文档

关于你的第二个问题

tf.Session() 版本为 1.x,您需要将其迁移到 2.1。您可以在此处阅读有关迁移的信息

请参考下面的示例代码

# Using the `close()` method.
sess = tf.compat.v1.Session()
sess.run(...)
sess.close() 

推荐阅读