在Windows上,运行“导入tensorflow”生成没有名为“_pywrap_tensorflow”错误的模块

在Windows上,TensorFlow在执行import tensorflow语句后报告以下错误中的一个或两个:

  • No module named "_pywrap_tensorflow"
  • DLL load failed.

问题是我的cuDNN库 – 不pipe是什么原因cudnn-8.0-windows10-x64-v6.0不工作 – 我使用cudnn-8.0-windows10-x64-v5.1 – 所有的好!

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

  • 确保你有lib MSVCP140.DLL通过检查你的系统/path – 如果没有得到它在这里
  • 从这里运行python 3.5.3-amd64的Windows安装程序 – 不要尝试更新的版本,因为它们可能不会工作
  • 从这里获取CUDA 8.0的cuDNN v5.1 – 将其放置在用户文件夹下或其他已知位置(您将需要在您的path中)
  • 从这里获取CUDA 8.0 x86_64
  • 按预期设置PATHvariables指向cuDNN库和python(pythonpath应该在python安装过程中添加)
  • 确保“.DLL”包含在PATHEXTvariables中
  • 如果你正在使用tensorflow 1.3,那么你想使用cudnn64_6.dll github.com/tensorflow/tensorflow/issues/7705

如果你运行Windows 32,一定要获得上述文件的32位版本。

在我的情况下,/ bin文件夹中的“cudnn64_6.dll”文件必须重命名为“cudnn64_5.dll”,以使错误消失。 我轻松地花了两个小时弄清楚了这一点,我按照正式的安装指南来写信。 通过pip(官方支持)和conda(社区支持)进行安装是正确的。

或者错误表示您的系统尚未安装TensorFlow所需的MSVCP140.DLL

要解决这个错误:

  1. 确定MSVCP140.DLL是否在%PATH%variables中。
  2. 如果MSVCP140.DLL不在%PATH% ,则安装包含此DLL的Visual C ++ 2015可再发行组件 (x64版本)。

我有AMD CPU的Win7 Pro 64位,没有GPU。 我正在按照https://www.tensorflow.org/install/install_windows上的; “使用本地点安装”中的说明进行操作。 安装步骤正常,但导入张量stream的尝试产生了臭名昭着的:

ImportError:没有名为'_pywrap_tensorflow_internal'的模块

这似乎是很多不相关的事情可能出错的情况之一,这取决于configuration,所有这些都会级联到相同的错误。

在我的情况下,安装MSVCP140.DLL是答案。

(a)您有一个文件C:\ Windows \ System43 \ MSVCP140.DLL,并且(b)如果您有一个64位系统,那么您另外有C:\ Windows \ SysWOW64 \ MSVCP140已经有MSVCP140.DLL。 DLL。

我手动安装它,这是不必要的(可再分发不是整个Visual C ++开发混乱,并不大)。 使用本主题前面发布的链接来安装它: Visual C ++ 2015 redistributable 。

此外,我build议您覆盖Python的默认安装目录,并将其放在C:\ Program Files下的任何位置,因为Windows会尝试在其中写入保护文件,这会在稍后导致问题。

cuDNN导致我的问题。 PATHvariables不适用于我。 我必须将我的cuDNN文件夹中的文件复制到尊重的CUDA 8.0文件夹结构中。

TensorFlow需要MSVCP140.DLL ,可能不会在您的系统上安装。 为了解决这个问题打开terminal的types或粘贴这个链接:

 C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl 

注意这是安装TensorFlow的纯CPU版本。

对我来说,问题是cuDNN库不符合显卡的要求。 我下载了6.0版本,但对于我的GTX980ti,但在NVIDIA网站上推荐的计算能力是5.1( http://developer.nvidia.com/cuda-gpus ),所以我下载5.1版本,并replace6.0版本,只要我'已经完成了它开始工作。

有人可能会试图保持在Windows上打开Powershell / cmd。 我花了合理的时间,直到我决定closures并重新打开我的Powershell,才意识到我已经做好了一切。

找不到。 安装Visual C ++ 2015 redistributable来解决。

问题是我的cuDNN库。 在Windows PATH中添加cuDNN DLL(不是LIB文件)的目录(可能是bin文件夹)后,我能够运行testing代码 。

为了参考,我使用PIP和我的操作系统从源代码安装了TensorFlow:Windows 7和IDE:Visual Studio 2015。

如果你想在Windows中安装tensorflow GPU,你可以find这个简单有趣的教程。

注意:如果您使用的是PyCharm,则必须将解释器更改为创build的conda环境。

经过大量的试验和错误,并确保VC ++ 2015 RedistributablecuDNN DLL和所有其他依赖项都可以从PATH访问,看起来像Tensorflow GPU只适用于Python 3.5.2 (截至撰写本文)

所以如果你使用的是Anaconda

  • conda create -n tensorflow-gpu python=3.5.2
  • activate tensorflow-gpu
  • pip install tensorflow-gpu

然后打开python解释器并validation

 >>> import tensorflow as tf >>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True)) 

find设备0的属性:
名称:GeForce 940M
重大:5次要:0
memoryClockRate(GHz)1.176
pciBusID 0000:06:00.0
总内存:2.00GiB
可用内存:1.66GiB

积分: 这个整洁的指南

对于每个Tensorflow的版本,它需要不同版本的CuDnn。 在www.tensorflow.org上,他们没有在安装指南中提到这个问题!

我的情况使用tensorflow版本1.3使用cuDNN 6. https://github.com/tensorflow/tensorflow/releases

请检查您的tensorfow版本和cuDNN版本是否匹配。

请为cuDNN设置path环境,如果仍然无效,请查看@Chris Han的评论。

随着TensorFlow版本1.3.0,你需要使用Cudnn 6.0而不是Cudnn 5.0,因为Cudnn 5.0正在给出这个错误。 不要忘了添加pathvariablesCudnn 6.0。使用cudnn64_6.dll您的Tensorflow将正常工作。 阅读下面的链接。 https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130

我的答案是只为Windows 10用户,因为我已经在Windows 10上尝试了以下内容。扩展上面的一些答案我build议这样做:如果您使用anaconda那么你可以避免一切,只需使用命令安装anaconda导航

 conda install -c anaconda anaconda-navigator 

然后,您可以使用命令从命令提示符启动导航器

 anaconda-navigator 

在运行这个命令的时候,你会得到一个简单的gui,你可以创build一个虚拟环境,使用python = 3.5.2来创build环境,并且使用gui在search框中search模块来安装模块tensorflow-gpu或者tensorflow。为您安装正确的cuda文件。 使用anaconda导航器是最简单的解决scheme。

如果您没有使用anaconda,请注意以下事项

tensorflow-gpu 1.3需要python 3.5.2,cuda开发工具包8.0和cudaDNN 6.0,因此安装时一定要运行命令

 pip install tensorflow-gpu==1.3 

tensorflow-gpu 1.2.1或更低版本需要python 3.5.2,cuda开发工具包8.0和cudaDNN 5.1,因此安装时请确保运行命令

 pip install tensorflow-gpu==1.2.1 

以下是上述两个过程需要遵循的步骤设置pathvariables您必须具有以下系统variables

 CUDA_HOME = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0" CUDA_PATH = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0" CUDA_PATH_V8.0 = "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0" 

您PATHTEXT必须包括“.DLL”以及其他扩展名

 ".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.DLL" 

另外添加以下到你的path

 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\lib\x64 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v8.0\extras\CUPTI\libx64; C:\Windows\SysWOW64; C:\Windows\System32 

如果你遇到错误,你可以下载mrry运行下面的代码,这段代码将检查你的设置,并告诉你是否有错误https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

参考文献: http : //blog.nitishmutha.com/tensorflow/2017/01/22/TensorFlow-with-gpu-for-windows.html

上面的参考是非常有用的。 请评论这个答案的改进。 希望这有助于,谢谢。

我的两分钱:

我有很多问题试图让我的CUDA 8.0在Windows 7上正确安装。我有一个以前的版本安装,我想升级,所以我卸载它,并试图安装CUDA 8.0(tensorflow 1.3)。 每次安装都失败了,我试图降级到CUDA 7.5,并且能够安装它,但是有很多的tensorflow问题(类似于这里描述的PATH问题)。 长话短说:对我有效的是:

1)卸载每个NVIDIA组件(显示器graphics驱动程序除外)

2)下载CUDA工具包8.0(和补丁) https://developer.nvidia.com/cuda-downloads

3)检查CheckSum MD5(我使用MS https://www.microsoft.com/en-ca/download/confirmation.aspx?id=11533,但任何会这样做),以确保他们确定(它发生了几次安装程序没有正确下载,因为我的WiFi路由器显然)。;

4)以root身份运行CUDA工具包安装程序

5)下载cudnn 8.0 v6并将其位置添加到PATHvariableshttps://developer.nvidia.com/rdp/cudnn-download

希望能够帮助并挽救一些头痛的问题

注:这个脚本帮助我很多debugging问题! (谢谢你mrry) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c

我会尽力给我解决scheme。 看来不同的问题会导致这种情况。

32位软件在64位操作系统中工作。 我在我的64位操作系统中安装了anaconda-3(32位)。 它工作得很好。 我决定在我的机器上安装tensorflow,它不会在第一时间安装。 我使用conda环境安装tensorflow并得到这个错误。

解决scheme是, 如果你正在运行64位操作系统,安装64位anaconda,如果32位操作系统,然后安装32位anaconda 。 然后按照tensorflow网站提到的windows(anaconda安装)中提到的标准程序。 这使得可以安装tensorflow没有任何问题。

tensorflow 1.3还不支持cuda 9.0 。 我降级到CUDA 8.0 ,那么它的工作。