Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2

这个警告是关于什么的?

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

高级矢量扩展(AVX)是英特尔和AMD于2008年3月提出的英特尔和AMD微处理器的x86指令集架构的扩展,并首次得到英特尔的支持,其中Sandy Bridge处理器于2011年第一季度发布,之后由AMD推出Bulldozer处理器在2011年第3季度.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支持,因为大多数昂贵的操作都将在GPU设备上发送(除非明确设置为不)。在这种情况下,您可以简单地忽略此警告

把下面代码加入至代码最前端

# 只需要不使能AVX/FMA
import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

最简单的代码如:

import os
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'
import tensorflow as tf

hello = tf.constant('hello tensorflow')
sees = tf.Session()
print(sees.run(hello))

如果没有GPU,并希望利用CPU尽可能的,你应该从优化源建立tensorflow 您的 CPU与AVX,AVX2,并启用了FMA如果你的CPU支持他们。这个问题以及GitHub问题已经讨论过了。Tensorflow使用一个名为bazel的ad-hoc构建系统,并且构建它并不是那么简单,但肯定是可行的。在此之后,警告不仅会消失,张力流性能也会提高。

你可能感兴趣的:(视觉)