在Windows上,TensorFlow在执行import tensorflow
语句后报告以下一个或两个错误:
No module named "_pywrap_tensorflow"
DLL load failed.
答案 0 :(得分:74)
问题是cuDNN库对我来说 - 无论出于什么原因cudnn-8.0-windows10-x64-v6.0不工作 - 我用cudnn-8.0-windows10-x64-v5.1 - 一切都好!
我的设置使用Win10 64和Nvidia GTX780M:
如果您运行Windows 32,请务必获取上述文件的32位版本。
答案 1 :(得分:20)
在我的情况下,/ bin文件夹中的“cudnn64_6.dll”文件必须重命名为“cudnn64_5.dll”才能使错误消失。我轻松花了两个小时来解决这个问题,然后我按照正式的安装指南进行了说明。通过pip(官方支持)和conda(社区支持)进行安装时都是如此。
答案 2 :(得分:13)
任何一个错误都表示您的系统尚未安装MSVCP140.DLL
,
TensorFlow需要哪些。
要解决此错误:
MSVCP140.DLL
变量中是否%PATH%
。MSVCP140.DLL
中没有%PATH%
,请安装。{
Visual C++ 2015 redistributable(x64版本),其中包含此DLL。答案 3 :(得分:8)
仅适用于CPU的张量流:
我使用命令安装了tensorflow:
pip3 install --upgrade tensorflow
已安装tensorflow 1.7
但无法使用python 3.6.5 amd64
导入张量流:
import tensorflow as tf
因此,我使用以下命令将tensorflow版本从1.7
降级为1.5
:
pip3 install tensorflow==1.5
这会卸载以前的版本并安装1.5
。现在它有效。
似乎是tensorflow 1.7
我在系统文件夹中有MSVCP140.DLL
,在环境变量的PATHEXT变量中有.DLL。
答案 4 :(得分:8)
我在AMD CPU上有64位Win7 Pro,没有gpu。我按照"使用原生pip安装"在https://www.tensorflow.org/install/install_windows。安装步骤没问题,但导入tensorflow的尝试产生了臭名昭着的:
ImportError:没有名为' _pywrap_tensorflow_internal'
的模块这似乎是许多不相关的事情可能出错的情况之一,这取决于配置,所有这些都会导致同样的错误。
就我而言,安装MSVCP140.DLL就是答案。
如果(a)你有一个文件C:\ Windows \ System43 \ MSVCP140.DLL,你有MSVCP140.DLL,如果你有一个64位系统,那么(b)你还有C:\ Windows \ SysWOW64 \ MSVCP140.DLL。
我手动安装它,这是不必要的(可再发行组件不是整个Visual C ++开发混乱并且不是很大)。使用此线程前面发布的链接进行安装:Visual C++ 2015 redistributable。
另外,我建议您覆盖Python的默认安装目录,并将其放在C:\ Program Files下的任何位置,因为Windows会尝试对文件进行写保护,这会导致以后出现问题。
答案 5 :(得分:7)
cuDNN导致我的问题。 PATH变量对我不起作用。我必须将我的cuDNN文件夹中的文件复制到尊重的CUDA 8.0文件夹结构中。
答案 6 :(得分:6)
TensorFlow
需要MSVCP140.DLL
,可能未在您的系统上安装。
要解决此问题,请打开终端输入或粘贴此链接:
C:\> pip install --upgrade https://storage.googleapis.com/tensorflow/windows/cpu/tensorflow-1.0.0-cp35-cp35m-win_amd64.whl
请注意,这是安装仅限CPU的TensorFlow版本。
答案 7 :(得分:5)
对于那些在旧硬件上运行的人:
由于使用tensorflow-gpu 1.6的旧CPU,可能会出现同样的错误。
如果你的cpu是在2011年之前制作的,那么你的max tensorflow-gpu版本是1.5。
Tensorflow 1.6需要在您的cpu上使用AVX指令。在此验证:Tensorflow Github docs
启用AVX的CPU:Wiki AVX CPUs
我在conda环境中为tensorflow做了什么:
pip install --ignore-installed --upgrade tensorflow-gpu==1.5
答案 8 :(得分:4)
经过多次试验和错误,确保 VC ++ 2015 Redistributable , cuDNN DLL和所有其他依赖项都可以从PATH访问,它看起来像 Tensorflow GPU < / em>仅适用于Python 3.5.2
(撰写本文时)
因此,如果您使用Anaconda
conda create -n tensorflow-gpu python=3.5.2
activate tensorflow-gpu
pip install tensorflow-gpu
然后打开python解释器并验证
>>> import tensorflow as tf
>>> sess = tf.Session(config=tf.ConfigProto(log_device_placement=True))
找到具有属性的设备0:
名称:GeForce 940M
专业:5个未成年人:0
memoryClockRate(GHz)1.176
pciBusID 0000:06:00.0
总内存:2.00GiB
可用内存:1.66GiB
答案 9 :(得分:3)
对于每个Tensorflow的版本,它需要不同版本的CuDnn。在www.tensorflow.org上,他们没有在安装指南中提到过这一点!
我的案例使用tensorflow版本1.3,它使用cuDNN 6. https://github.com/tensorflow/tensorflow/releases。
请检查您的tensorfow版本和cuDNN版本是否匹配。
请为cuDNN设置路径环境,如果仍然无效,请查看@Chris Han的评论。
答案 10 :(得分:2)
如果您尝试在Windows中安装tensorflow GPU,可以找到opacity
简单有趣的教程。
注意:例如,如果您使用PyCharm,则必须将解释器更改为创建的conda环境。
答案 11 :(得分:2)
有人可能想要在Windows上保持Powershell / cmd打开。我花了一些合理的时间,直到我决定关闭并重新开启我的Powershell,才意识到我已经做好了一切。
答案 12 :(得分:2)
我在Windows系统上的this post中发布了一种用于解决“ DLL加载失败”问题的一般方法。
使用DLL依赖关系分析器Dependencies分析<Your Python Dir>\Lib\site-packages\tensorflow\python\_pywrap_tensorflow_internal.pyd
并确定确切缺少的DLL(由DLL旁边的?
表示)。 .pyd文件的路径基于我安装的TensorFlow 1.9 GPU版本。我不确定其他TensorFlow版本中的名称和路径是否相同。
查找丢失的DLL的信息,然后安装适当的软件包以解决问题。
答案 13 :(得分:1)
使用TensorFlow版本1.3.0,您需要使用Cudnn 6.0而不是Cudnn 5.0,因为Cudnn 5.0会出现此错误。不要忘记将路径变量添加到Cudnn 6.0。使用cudnn64_6.dll,您的Tensorflow将正常工作。阅读以下链接。 https://github.com/tensorflow/tensorflow/blob/master/RELEASE.md#release-130
答案 14 :(得分:1)
我的两分钱:
在尝试在Windows 7上正确安装我的CUDA 8.0时遇到了很多问题。我安装了以前的版本并且我想升级所以我卸载它并尝试安装CUDA 8.0(针对tensorflow 1.3)。安装每次都失败了,我试着降级到CUDA 7.5并且能够安装它但是有一些tensorflow的问题(类似于这里描述的PATH问题)。长话短说:对我有用的是:
1)卸载每个NVIDIA组件(显示图形驱动程序除外)
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并将其位置添加到PATH变量https://developer.nvidia.com/rdp/cudnn-download
希望能帮助并节省一些麻烦...
注意:这个脚本帮我调试了很多问题! (谢谢mrry) https://gist.github.com/mrry/ee5dbcfdd045fa48a27d56664411d41c
答案 15 :(得分:1)
我会尝试提供适合我的解决方案。似乎不同的问题可能导致这种情况。
32位软件在64位操作系统中工作。我在我的64位操作系统中安装了anaconda-3(32位)。它工作得非常好。我决定在我的机器上安装tensorflow,它一开始就不会安装。我正在使用conda环境来安装tensorflow并得到了这个错误。
如果您运行64位操作系统,安装64位anaconda,如果是32位操作系统,那么解决方案是,然后是32位anaconda 。然后按照tensorflow网站上提到的windows(anaconda安装)中提到的标准程序进行操作。这使得可以毫无问题地安装张量流。
答案 16 :(得分:1)
我的答案仅适用于Windows 10用户,因为我在Windows 10上尝试过以下操作。 扩展上面的一些答案我建议: 如果您使用的是anaconda,那么您可以避免一切,只需使用命令安装 anaconda-navigator
conda install -c anaconda anaconda-navigator
然后,您可以使用命令
从命令提示符启动导航器anaconda-navigator
在运行此命令时,您将获得一个简单的gui,您可以在其中创建虚拟环境,使用python = 3.5.2创建环境并通过使用gui在搜索框中搜索模块来安装模块tensorflow-gpu或tensorflow,它将还要注意为您安装正确的cuda文件。使用anaconda导航器是最简单的解决方案。
如果您不使用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
以下是您需要遵循的上述两个流程的步骤 设置路径变量 您必须具有以下系统变量
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"
同时在路径中添加以下内容
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
以上参考资料非常有用。 请评论此答案的改进。 希望这有帮助,谢谢。
答案 17 :(得分:1)
tensorflow 1.3还不支持 cuda 9.0 。 我降级为 cuda 8.0 ,然后就可以了。
答案 18 :(得分:1)
问题是我的cuDNN图书馆。在Windows PATH中添加cuDNN DLL(不是LIB文件)的目录(可能是bin文件夹)后,我能够运行the test code。
作为参考,我使用PIP和我的操作系统从源代码安装了TensorFlow:Windows 7和IDE:Visual Studio 2015。
答案 19 :(得分:1)
未找到Dll。安装Visual C ++ 2015可再发行以修复。
答案 20 :(得分:0)
对于在2019年找到此帖子的人来说,也可能发生此错误,因为Python版本3.7不支持TensorFlow(请参见https://www.tensorflow.org/install/pip)。因此,请检查Python版本:
python --version
如果它大于3.6,则应将其降级为3.6。对于Anaconda:
conda install python=3.6
然后,安装TensorFlow。
pip install tensorflow
顺便说一句,我没有GPU版本,因此我的情况下没有CUDA相关问题。
答案 21 :(得分:0)
在调查[SO]: Error while training using the estimator API in tensorflow时遇到了相同的问题( 2019/09/09 中的)。
设置:
错误:
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow as tf" Traceback (most recent call last): File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module> from tensorflow.python.pywrap_tensorflow_internal import * File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module> _pywrap_tensorflow_internal = swig_import_helper() File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 242, in load_module return load_dynamic(name, filename, file) File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 342, in load_dynamic return _load(spec) ImportError: DLL load failed: The specified module could not be found. During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 1, in <module> File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\__init__.py", line 24, in <module> from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module> from tensorflow.python import pywrap_tensorflow File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in <module> raise ImportError(msg) ImportError: Traceback (most recent call last): File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in <module> from tensorflow.python.pywrap_tensorflow_internal import * File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in <module> _pywrap_tensorflow_internal = swig_import_helper() File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 24, in swig_import_helper _mod = imp.load_module('_pywrap_tensorflow_internal', fp, pathname, description) File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 242, in load_module return load_dynamic(name, filename, file) File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\imp.py", line 342, in load_dynamic return _load(spec) ImportError: DLL load failed: The specified module could not be found. Failed to load the native TensorFlow runtime. See https://www.tensorflow.org/install/errors for some common reasons and solutions. Include the entire stack trace above this error message when asking for help.
查看“故障”模块(由于Dependency Walker),结果发现缺少的不是它本身,而是它的某些依赖项( cu * _ 100 .dll 文件)。
检查[SO]: Python Ctypes - loading dll throws OSError: [WinError 193] %1 is not a valid Win32 application (@CristiFati's answer)(末尾的结论部分),以获取有关此类错误的更多详细信息。
我有一个较旧的 CUDA工具包版本( 8 ),因此, cu * _ 80 .dll 个文件。
升级到 TensorFlow-GPU1。 14 .0 ("e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -m pip install --upgrade tensorflow-gpu
),使错误更清晰(也更短):
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow as tf" Traceback (most recent call last): File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\platform\self_check.py", line 75, in preload_check ctypes.WinDLL(build_info.cudart_dll_name) File "c:\install\x64\python\python\03.07.03\Lib\ctypes\__init__.py", line 356, in __init__ self._handle = _dlopen(self._name, mode) OSError: [WinError 126] The specified module could not be found During handling of the above exception, another exception occurred: Traceback (most recent call last): File "<string>", line 1, in <module> File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\__init__.py", line 28, in <module> from tensorflow.python import pywrap_tensorflow # pylint: disable=unused-import File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\__init__.py", line 49, in <module> from tensorflow.python import pywrap_tensorflow File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 30, in <module> self_check.preload_check() File "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\lib\site-packages\tensorflow\python\platform\self_check.py", line 82, in preload_check % (build_info.cudart_dll_name, build_info.cuda_version_number)) ImportError: Could not find 'cudart64_100.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. Download and install CUDA 10.0 from this URL: https://developer.nvidia.com/cuda-90-download-archive
步骤:
完成上述步骤并设置正确的路径后,它可以正常工作:
[cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> set PATH=%PATH%;%CUDA_PATH%\bin;f:\Install\x64\NVidia\GPU Computing Toolkit\cuDNN\7.6\bin [cfati@CFATI-5510-0:e:\Work\Dev\StackOverflow\q057588589]> "e:\Work\Dev\VEnvs\py_064_03.07.03_test0\Scripts\python.exe" -c "import tensorflow;print(\"Success!!!\")" Success!!!