在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
。
要解决这个错误:
- 确定
MSVCP140.DLL
是否在%PATH%
variables中。 - 如果
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 Redistributable , cuDNN 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 ,那么它的工作。
- 用TensorFlow模型进行预测
- 我可以使用TensorFlow来测量单个操作的执行时间吗?
- 如何在张量stream中有效地应用梯度裁剪?
- tensorflow tf.nn.softmax与tf.nn.softmax_cross_entropy_with_logits的区别
- 如何使用张量stream中的自定义python函数预取数据
- TensorFlow,为什么保存模型后有3个文件?
- Numpy和Tensorflow中的np.mean和tf.reduce_mean之间的区别?
- 在Ubuntu 12.04中导入python2.7中的Tensorflow时出错。 'GLIBC_2.17找不到'
- 如何判断tensorflow是否从python shell里面使用gpu加速?