【问题标题】:How do I resolve these tensorflow warnings?如何解决这些 tensorflow 警告?
【发布时间】:2017-02-16 10:07:05
【问题描述】:

我刚刚使用 pip 安装了 Tensorflow 1.0.0。运行时,我收到如下所示的警告。

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

我收到了另外 5 个关于 SSE4.1、SSE4.2、AVX、AVX2、FMA 的类似警告。

尽管有这些警告,但程序似乎运行良好。

【问题讨论】:

  • 您是否尝试过按照警告中的说明进行操作?例如:编译它以使用 sse3 指令?
  • 这里有点菜鸟,我该怎么做?
  • 使用 pip 安装软件的全部意义在于不必构建它。自从我通过 pip 将 TF 从 r0.12 更新到 r1.0 后,我遇到了同样的错误。
  • GPU 的 PIP 构建似乎也很糟糕,因为我收到了关于 GPU 版本和安装 GPU 的警告。似乎谷歌人对关闭非常积极问题即使错了。很明显,Pip 构建不应该产生这些错误..(以前的版本没有。)如果不是全部现代的话,大多数(最近 4 年的 CPU 都有说明)
  • 我硬着头皮为我的原生 CPU 构建。除了警告消失之外,性能提升非常显着,使用 pip install 版本训练了一个小型 RNN:339 秒。为我的系统构建后 187 秒。我以前从来没有为我的系统构建过一个包定制,我没有发现它很困难(只是有点费时)。

标签: python tensorflow


【解决方案1】:

export TF_CPP_MIN_LOG_LEVEL=2 在 Ubuntu 上为我解决了这个问题。

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

【讨论】:

  • 这只是禁用警告,不是吗?
【解决方案2】:

我提出的解决问题的方法:

#!/usr/bin/env python3
import os
import tensorflow as tf
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2'

至少应该在任何 Debian 或 Ubuntu 系统上工作。

【讨论】:

  • 非常感谢分享这个。这对我很有帮助,也适用于 Mac OS。
【解决方案3】:

我对C不太了解,但我发现了这个

bazel build --linkopt='-lrt' -c opt --copt=-mavx --copt=-msse4.2 --copt=-msse4.1 --copt=-msse3-k //tensorflow/tools/pip_package:build_pip_package

你如何构建你的程序?

【讨论】:

【解决方案4】:

似乎即使您没有兼容的(即 Nvidia)GPU,您实际上仍然可以通过 pip install tensorflow-gpu 安装 tensorflow-gpu 的预编译包。看起来除了 GPU 支持之外,它还支持(或至少不抱怨)CPU 指令集扩展,如 SSE3、AVX 等。我观察到的唯一缺点是 Python 轮子有点更大:tensorflow-gpu 为 90MB,而普通 tensorflow 为 42MB。

在我没有 Nvidia GPU 的机器上,我确认 tensorflow-gpu 1.0 运行良好,没有显示 cpu_feature_guard 警告。

【讨论】:

  • 查看我上面的评论我有 GPU 和 GPU 版本并收到警告
【解决方案5】:

GPU 的 PIP 构建似乎很糟糕,而且我收到了关于 GPU 版本和已安装 GPU 的警告...

【讨论】:

  • 这确实回答了这个问题,我在上面的评论中进一步更新了它,PIP 安装不应该产生这个错误。我想我需要在 GitHub 中打开它错误似乎适用于 GPU 版本和 CPU 版本,因为我的 GPU 版本具有最新的处理器,包括 Intel coreI7 和 Nvidia (1070) 有人正在积极地删除有用的信息。
【解决方案6】:

这些只是警告。 他们只是告诉你,如果你从源代码构建 TensorFlow,它可以在你的机器上更快。

在我认为尽可能兼容更多 CPU 的可用版本上,默认情况下不启用这些指令。

【讨论】:

    【解决方案7】:

    正如警告所说,如果您需要使 TF 更快,您应该只使用这些标志编译 TF。

    您可以使用TF环境变量TF_CPP_MIN_LOG_LEVEL,它的工作原理如下:

    • 默认为0,显示所有日志
    • 要过滤掉 INFO 日志,请将其设置为 1
    • WARNINGS另外,2
    • 并额外过滤掉 ERROR 日志,将其设置为 3

    因此您可以执行以下操作来消除警告:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-03
      • 1970-01-01
      • 2016-04-20
      相关资源
      最近更新 更多