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。
答案 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