导入 tensorflow 模块时出错

Posted

技术标签:

【中文标题】导入 tensorflow 模块时出错【英文标题】:Error while import tensorflow module 【发布时间】:2017-09-08 07:37:48 【问题描述】:

我尝试使用 Python 学习 TensorFlow。我的问题是导入 TF 模块。这是我的配置:Python 3.6.1Windows 7(带有 MSVCP140.dll)

我已经通过命令(在 power shell 中)安装了 TensorFlow。它有效。

python -m pip install --upgrade tensorflow

但是当我运行 python 环境并尝试导入 Tensor Flow 时

import tensorflow as tf

我收到错误,这个错误引发了另一个与之相关的错误,但一开始我想先解决这个问题

Traceback(最近一次调用最后一次):文件 "C:\Users\Jacek\AppData\Local\Programs\Python\Python36\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", 第 18 行,在 swig_import_helper 中 fp, pathname, description = imp.find_module('_pywrap_tensorflow', [dirname(file)]) 文件 "C:\Users\Jacek\AppData\Local\Programs\Python\Python36\lib\imp.py", 第 296 行,在 find_module 中 raise ImportError(_ERR_MSG.format(name), name=name) ImportError: No module named '_pywrap_tensorflow'

【问题讨论】:

【参考方案1】:

问题在于我的 cuDNN 库 - 无论出于何种原因 cudnn-8.0-windows10-x64-v6.0 无法正常工作 - 我使用的是 cudnn-8.0-windows10-x64-v5.1 - 一切都好!

我的设置使用 Win10 64 和 Nvidia GTX780M:

通过检查你的系统/路径确保你有 lib MSVCP140.DLL - 如果没有得到它here 从 here 运行适用于 python 3.5.3-amd64 的 Windows 安装程序 - 不要尝试较新的版本,因为它们可能无法正常工作 从 here 获取适用于 CUDA 8.0 的 cuDNN v5.1 - 将其放在您的用户文件夹下或其他已知位置(您的路径中将需要它) 从here 获取 CUDA 8.0 x86_64 按预期设置 PATH 变量以指向 cuDNN 库和 python(python 路径应在 python 安装期间添加)

如果您运行 Windows 32,请务必获取上述文件的 32 位版本。

【讨论】:

【参考方案2】:

解决方案是将 Python 降级到 3.5 版,然后重新安装 TensorFlow。它对我有用

【讨论】:

可能会也可能不会 - 已知这是由于在尝试使用我们的 GPU 时为 CUDA 运行了错误版本的 cuDNN 造成的。 我安装了没有 CUDA 支持的“简单”版本的 TF 这不是解决方案。【参考方案3】:

这是一个已知错误。有一个名为 MSVCP140.DLL 的文件,您需要在系统中运行 TensorFlow。检查此文件是否在您的%path% 中。如果不是,请下载 Visual Studio C++。它是免费的,您可以在这里下载:https://www.visualstudio.com/vs/cplusplus。

【讨论】:

我有这个文件,并为 VS C++ 2015 安装了更新 3。你考虑指定位置吗? 如果您同时安装了 DLL 和 Visual Studio C++,则可能是您的 python 失败了。尝试将 python 降级到 3.5。 有人知道这些说明是否需要在 2019 年更新吗?即将解决这个问题。我已经在 Windows 10 当前版本的 ubuntu 18.40 中安装了 anaconda。并按照 tensorflow.org 上的说明安装 tensorflow (CPU) 版本。除了 ubuntu 中包含的默认 python 2.7 之外,这还导致了 python3.7。试图让 jupyter notebook 版本运行,sudo apt install jupyter-core python3-notebook jupyter python-ipykernel 这安装了另一个版本的python(3.6)【参考方案4】:

解决方案:-

不要受太多苦。只需将您的 python 版本从 3.6.1 降级到 3.5.2 和

再次安装tensorflow..你不需要升级包。

“pip install tensorflow”会自动下载最新版本(可能

1.0.1)

步骤:-

第 1 步:- conda 搜索 python

第 2 步:- conda install python=3.5.2

第 3 步:- pip install tensorflow

第 4 步:- 将 tensorflow 导入为 tf

万岁!!.. 有效..

希望您不会再遇到同样的错误!

【讨论】:

这是一个很好的第一步 - 如果您仍有问题,请参阅下面的答案 - 与 cuDNN 版本相关。【参考方案5】:

起初,我使用 Python 3.5 和 PIP 版本 19 的 anaconda 环境,但遇到了同样的问题。所以我没有使用 PIP,而是使用了 Conda 包管理器:

conda install TensorFlow

使用 Conda 代替 PIP 后效果很好

【讨论】:

【参考方案6】:

如果您的系统中有 GPU,并且它与当前的库集冲突或引发 cudnn 错误,那么您可以在代码中添加以下行以禁用 GPU

os.environ["CUDA_VISIBLE_DEVICES"] = "-1"

把它放在你的代码中应该没问题。

【讨论】:

【参考方案7】:

pip install tensorflow-gpu

安装这个包可以帮助我解决我的问题

【讨论】:

以上是关于导入 tensorflow 模块时出错的主要内容,如果未能解决你的问题,请参考以下文章

[ModuleNotFoundError尝试导入Tensorflow

导入 TensorFlow 时出错。 TypeError:预期字节,找到描述符

导入 tensorflow 时出错,tensorflow 库被编译为使用 AVX 指令,但这些在您的机器上不可用

使用 tensorflow-gpu 后端导入 Keras 时出错(找不到 libcublas.so.10.0)

ModuleNotFoundError:尝试导入 tensorflow 模块时没有名为“tensorflow.python”的模块

Tensorflow高级封装