1、问题描述:
Traceback (most recent call last):
File "D:\Anaconda3\envs\tensorflowModel\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in
from tensorflow.python.pywrap_tensorflow_internal import *
File "D:\Anaconda3\envs\tensorflowModel\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in
_pywrap_tensorflow_internal = swig_import_helper()
File "D:\Anaconda3\envs\tensorflowModel\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 "D:\Anaconda3\envs\tensorflowModel\lib\imp.py", line 243, in load_module
return load_dynamic(name, filename, file)
File "D:\Anaconda3\envs\tensorflowModel\lib\imp.py", line 343, in load_dynamic
return _load(spec)
ImportError: DLL load failed: 找不到指定的模块。
2、我的环境是:
2.1、python3.6+ Cuda10.0+Window10+Anconda x64 3.6
2.2 GPU版本信息:NVIDIA GeForce MX150 (通过下图位置查看版本信息)
3、解决办法:
注意:安装GPU版本需要预先安装CUDA、CUDNN、visual studio 这里给出别人的教程
<我在这里就已经解决了我的问题了。是由于没有安装CUDNN,我以为安装了CUDA就不需要安装CUDNN然而并不是。>
https://blog.csdn.net/weixin_43907422/article/details/88896928
第一步:视情况而定!首先conda search --info tensorflow-gpu 查看你安装的tensorflow-gpu的版本适合的环境
在这里我就贴出几个常用的:
分别是tensorflow-gpu1.11.0,tensorflow-gpu1.12.0,tensorflow-gpu1.13.1
有以下几个可能错误原因:
1、将protobuf降级到3.6.0会给我带来这个错误,不知道谁应该支持这个修复,protobuf或tensorflow ...:
tensorflow-gpu 1.13.1有要求protobuf> = 3.6.1,但你有protobuf 3.6 .0这是不相容的。
2、硬件是否支持AVX。可能也会导致产生DLL错误!
下面提供个代码检查是否支持AVX。
from cpuid import *
def _is_set(id, reg_idx, bit):
regs = cpuid(id)
if (1 << bit) & regs[reg_idx]:
return "Yes"
else:
return "--"
print("Vendor ID : %s" % cpu_vendor())
print("CPU name : %s" % cpu_name())
print("Microarchitecture : %s%s" % cpu_microarchitecture())
print("Vector instructions supported:")
print("SSE : %s" % _is_set(1, 3, 25))
print("SSE2 : %s" % _is_set(1, 3, 26))
print("SSE3 : %s" % _is_set(1, 2, 0))
print("SSSE3 : %s" % _is_set(1, 2, 9))
print("SSE4.1 : %s" % _is_set(1, 2, 19))
print("SSE4.2 : %s" % _is_set(1, 2, 20))
print("SSE4a : %s" % _is_set(0x80000001, 2, 6))
print("AVX : %s" % _is_set(1, 2, 28))
print("AVX2 : %s" % _is_set(7, 1, 5))
print("BMI1 : %s" % _is_set(7, 1, 3))
print("BMI2 : %s" % _is_set(7, 1, 8))
这就是我得到的:
Vendor ID : GenuineIntel
CPU name : Intel(R) Core(TM) i7-8565U CPU @ 1.80GHz
Microarchitecture : kabylake
Vector instructions supported:
SSE : Yes
SSE2 : Yes
SSE3 : Yes
SSSE3 : Yes
SSE4.1 : Yes
SSE4.2 : Yes
SSE4a : --
AVX : Yes
AVX2 : Yes
BMI1 : Yes
BMI2 : Yes
从输出结果可以看出是支持AVX2、AVX的。
硬件不支持是无法解决!
3、产生了:Could not find 'msvcp140.dll'错误
ImportError: Could not find 'msvcp140.dll'. TensorFlow requires that this DLL be installed in a directory that is named in your %PATH% environment variable. You may install this DLL by downloading Visual C++ 2015 Redistributable Update 3 from this URL: https://www.microsoft.com/en-us/download/details.aspx?id=53587
system32
文件夹中具有此DLL的计算机,它很好,因为系统路径优先于用户路径。_pywrap_tensorflow_internal...
错误,很可能是因为在scipy中找到的DLL与Microsoft Visual C ++ 2015 Redistributable Update 3 RC安装的最新版本不兼容。解决方法是简单地安装Microsoft Visual C ++ 2015 Redistributable 64位。这样,DLL安装在system32文件夹中,优先于scipy安装的文件夹。4、我在环境变量中添加了“C:\ Program Files \ NVIDIA Corporation \ NvStreamSrv”到我的PATH。也有可能解决的DLL缺失的问题!
……
最后祝大家好运!解决问题安装成功!
下面提供几个网址:
网址1:https://github.com/tensorflow/tensorflow/issues/22512 关于 tensorflow-gpu安装没有pywrap_tensorflow_internal模块的问题解决,也许你能发现新的方法
网址2:https://www.tensorflow.org/install/errors 这是tf的官网安装,出错的解决办法都可在这里找找看看!
网址3:https://blog.csdn.net/weixin_43907422/article/details/88896928 关于tensorflow-gpu/cpu 1.13.1 的安装教程!