python动态库反初始化_tensorflow CPU指令集缺失导致报错:动态链接库(DLL)初始化例程失败...

无论是tensorflow的CPU版本还是GPU版本,其启动都需要经过CPU的指令,如果指令集缺失就会报错。

这些报错的原因很有可能是你的CPU过老,或者规格属于服务器级别,如旧版本的志强系列CPU,这一切的原因都有可能造成 ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败  报错,如:

>>> import tensorflow as tf

Traceback (most recent call last):

File "I:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in

from tensorflow.python.pywrap_tensorflow_internal import *

File "I:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in

_pywrap_tensorflow_internal = swig_import_helper()

File "I:\Anaconda3\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 "I:\Anaconda3\lib\imp.py", line 242, in load_module

return load_dynamic(name, filename, file)

File "I:\Anaconda3\lib\imp.py", line 342, in load_dynamic

return _load(spec)

ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "", line 1, in

File "I:\Anaconda3\lib\site-packages\tensorflow\__init__.py", line 24, in

from tensorflow.python import pywrap_tensorflow  # pylint: disable=unused-import

File "I:\Anaconda3\lib\site-packages\tensorflow\python\__init__.py", line 49, in

from tensorflow.python import pywrap_tensorflow

File "I:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 74, in

raise ImportError(msg)

ImportError: Traceback (most recent call last):

File "I:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow.py", line 58, in

from tensorflow.python.pywrap_tensorflow_internal import *

File "I:\Anaconda3\lib\site-packages\tensorflow\python\pywrap_tensorflow_internal.py", line 28, in

_pywrap_tensorflow_internal = swig_import_helper()

File "I:\Anaconda3\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 "I:\Anaconda3\lib\imp.py", line 242, in load_module

return load_dynamic(name, filename, file)

File "I:\Anaconda3\lib\imp.py", line 342, in load_dynamic

return _load(spec)

ImportError: DLL load failed: 动态链接库(DLL)初始化例程失败。

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.

这样的一个错误。

一般来说,tensorflow可以需要 SSE/AVX/FMA 这几种指令集的支持,而默认下载的方式 pip install tensorflow-gpu 这样的下载方式,核心是基于 AVX 指令集,这个指令集不一定都有(常见于阉割的显卡缺失这个指令集),也有一些CPU比如本人的CPU就没有AVX指令集,但是有一个类似的指令集 AES 就依然可以达到效果,他们的具体区别如下:

AES:是高级加密标准,是一种加密算法。拥有AES-NI指令集的处理器在加解密方面会有非常大的性能飞跃。

AVX:是Intel最新推出的高级矢量扩展指令集,将浮点数性能翻了一番——从128Bit,上升至256Bit,增强了浮点数性能。

我们可以通过替换SSE版本的tensorflow进行安装,SSE指令集的功能如下,基本市面上的CPU均支持这个指令集,应用更加广泛:

SSE指令集也就是所谓胜出的”互联网SSE”指令集。SSE指令集包括了70条指令,其中包含提高3D图形运算效率的50条SIMD(单指令多数据技术)浮点运算指令、12条MMX 整数运算增强指令、8条优化内存中连续数据块传输指令。理论上这些指令对目前流行的图像处理、浮点运算、3D运算、视频处理、音频处理等诸多多媒体应用起到全面强化的作用。S SE指令与3DNow!指令彼此互不兼容,但SSE包含了3DNow!技术的绝大部分功能,只是实现的方法不同。SSE兼容MMX指令,它可以通过SIMD和单时钟周期并行处理多个浮点数据来有效地提高浮点运算速度。

————《百度百科》

下载连接如下:

可以在这个网址下载到自己需要的指令集版本的tensorflow,注意CUDA和细节版本不要下载错误,主要还是支持python3.7的为主。

PS:记得提前删除已经安装的不能用的tensorflow

pip uninstall tensorflow

pip uninstall tensorflow-gpu

#删除已经安装的tensorflow

下载完成后,放置到一个合适的目录(不一定是项目文件夹或者是python的路径),之后在这个目录下打开cmd,通过pip install进行安装

Post Views:

1,572

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值