当前位置: 首页 > 知识库问答 >
问题:

您的CPU支持此TensorFlow二进制文件未编译为使用的指令:AVX AVX2

阎善
2023-03-14

我是TensorFlow的新手。我最近安装了它(Windows CPU版本),收到以下消息:

成功安装TensorFlow-1.4.0 TensorFlow-TensorBoard-0.4.0 RC2

当我想跑的时候

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
sess.run(hello)
'Hello, TensorFlow!'
a = tf.constant(10)
b = tf.constant(32)
sess.run(a + b)
42
sess.close()

(我是通过https://github.com/tensorflow/tensorflow找到的)

我收到以下消息:

2017-11-02 01:56:21.698935:I C:\TF_Jenkins\Home\Workspace\Rel-Win\M\Windows\Py\36\TensorFlow\Core\Platform\CPU_Feature_Guard.cc:137]您的CPU支持未将此TensorFlow二进制文件编译为使用的指令:AVX AVX2

但当我跑的时候

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))

它按应有的方式运行,并输出hello,TensorFlow!,这表明安装确实成功,但还有其他错误。

你知道问题是什么,如何修复吗?

共有2个答案

苏嘉歆
2023-03-14

使用以下命令为您的CPU&OS更新tensorflow二进制文件

pip install --ignore-installed --upgrade "Download URL"

whl文件的下载url可以在这里找到

https://github.com/lakshayg/tensorflow-build

谭铭
2023-03-14

除了通常的算术和逻辑外,现代CPU还提供了许多低级指令,称为扩展,如SSE2、SSE4、AVX等,参见维基百科:

Advanced Vector Extensions(AVX)是对Intel和AMD微处理器x86指令集架构的扩展,由Intel于2008年3月提出,2011年第一季度推出的Sandy Bridge处理器首先得到Intel的支持,2011年第三季度推出的推土机处理器随后得到AMD的支持。AVX提供了新的特性、新的指令和新的编码方案。

特别是AVX引入了融合的乘累加(FMA)运算,加快了线性代数计算,即点积、矩阵乘、卷积等。几乎每一个机器学习训练都涉及大量这些运算,因此在支持AVX和FMA的CPU上会更快(高达300%)。警告说明您的CPU支持AVX(万岁!)。

在这里我要强调一下:这一切都只关乎CPU。

因为tensorflow默认发行版是在没有CPU扩展的情况下构建的,如SSE4.1、SSE4.2、AVX、AVX2、FMA等。默认版本(来自PIP install tensorflow的版本)旨在与尽可能多的CPU兼容。另一种观点是,即使有了这些扩展,CPU也比GPU慢得多,中等和大规模的机器学习训练也需要在GPU上进行。

如果你有一个GPU,你不应该关心AVX的支持,因为大多数昂贵的ops将被调度在一个GPU设备上(除非明确设置为not to)。在这种情况下,您可以通过以下方法忽略此警告:

# Just disables the warning, doesn't take advantage of AVX/FMA to run faster
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

...或者在UNIX上设置export tf_cpp_min_log_level=2。无论如何,Tensorflow工作得很好,但您不会看到这些烦人的警告。

如果您没有GPU,并且希望尽可能多地利用CPU,那么您应该从源代码处构建tensorflow。如果您的CPU支持AVX、AVX2和FMA,那么您应该为您的CPU优化它们。在这个问题和GitHub问题中已经讨论过了。Tensorflow使用了一个名为bazel的特别构建系统,构建它并不是那么简单,但肯定是可行的。在这之后,不仅警告会消失,tensorflow的性能也应该会提高。

 类似资料:
  • 我试着用这些说明来验证我的mac tensorflowhttps://www.tensorflow.org/install/install_mac#ValidateYourInstallation 但要产生这样的结果。可以吗?令人不快的我该怎么解决这个问题?谢谢 sess=tf。会话() 您的CPU支持该TensorFlow二进制文件未编译使用的指令:AVX2 FMA 打印(sess.run(你好

  • 刚刚安装了Cuda,使用我的GPU获取Tensorflow。我按照上面的说明做了https://www.tensorflow.org/install/gpu并在上运行了Cuda测试https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/(deviceQuery和bandwidthTest)这两个测试都很好。 当我

  • 本文向大家介绍解决Tensorflow 使用时cpu编译不支持警告的问题,包括了解决Tensorflow 使用时cpu编译不支持警告的问题的使用技巧和注意事项,需要的朋友参考一下 使用TensorFlow模块时,弹出错误Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX AV

  • 我尝试在eclipse中使用二进制文件安装Tomcat服务器,当我运行cmd并运行启动命令时,cmd打开和关闭,这些写在cmd屏幕上: (startup.bat也尝试过,但行为相同) > 当我运行此命令时: 卡塔琳娜。短跑 java版本“15.0.2”2021-01-19 java(TM)SE运行时环境(构建15.0.2 7-27) java热点(TM)64位服务器虚拟机(构建15.0.2 7-2

  • 问题内容: 我是第一次运行TensorFlow并使用一些示例代码。运行代码时出现此错误。有谁知道为什么会这样,如何解决?谢谢! 问题答案: 这些是警告,而不是错误(如冒号后面的所示。错误在那里)。 警告是指您的CPU支持SSE指令,从而可以进行一些快速的硬件内并行操作。启用这些操作是一个编译时操作(即,要使用SSE,您需要从源代码构建库以启用要定位的特定SSE版本),在这种情况下,您可以考虑一下此

  • 在导入python2.7中的tenstorflow后,我使用以下命令: