CPU指令未使用TensorFlow编译

时间:2017-02-26 01:11:35

标签: python machine-learning terminal tensorflow cpu

MacBook Air:OSX El Capitan

当我在终端(python 3 tfpractice.py)中运行TensorFlow代码时,我得到一个比正常更长的等待时间来返回输出,然后是这些错误消息:

W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations. W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations. W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations. W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations. W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.

我不知道如何解决这个问题。我想让TensorFlow在这个pip3安装上工作。所以我沿着路径前进:tensorflow/core/platform/cpu_feature_guard

我需要在这里编辑代码吗?或者是否有另一种方法可以让TensorFlow使用这些指令进行编译?

我使用sudo pip3 install tensorflow安装了TensorFlow。

4 个答案:

答案 0 :(得分:9)

注意:这些不是错误消息,只是警告消息。

最大化TF性能的最佳方法(除了编写好的代码!!),是从sources

编译它

当你这样做时,TF会要求你提供各种选项,这些选项也包含这些说明的选项。

根据我自己的经验,从源头编译平均性能更好。

如果您正在进行一些可以在GPU上完成的密集处理,那么这也可以解释您的等待时间。 要获得GPU支持,您需要执行pip3 install tensorflow-gpu

答案 1 :(得分:4)

这些警告意味着从源上建立电脑上的张量流可能会更快。

但是,如果要禁用它们,可以使用下面的代码

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

这应该使警告无声。 'TF_CPP_MIN_LOG_LEVEL'表示负责记录的Tensorflow环境变量。此外,如果你在Ubuntu上,你可以使用下面的代码

export TF_CPP_MIN_LOG_LEVEL=2 

我希望这会有所帮助。

答案 2 :(得分:2)

您也可以使用带有opt参数的bazel进行编译:

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-msse4.1 --copt=-msse4.2 //tensorflow/tools/pip_package:build_pip_package

我认为您可以在此讨论中找到一些内容:How to compile Tensorflow with SSE4.2 and AVX instructions?

祝你好运!

答案 3 :(得分:-3)

  

这些只是警告。他们只是告诉您,如果您从源代码构建TensorFlow,它可以在您的机器上更快。默认情况下,这些指令不会在可用的构建上启用我认为尽可能与更多的CPU兼容。   如果您对此有任何其他疑问,请随时询问,否则可以关闭。

Try export TF_CPP_MIN_LOG_LEVEL=2

https://github.com/tensorflow/tensorflow/issues/7778