跳转到主要内容

一个简单的Python包,用于静音Tensorflow的警告和日志,让您专注于重要的错误。

项目描述

Silence TensorFlow

pip python license downloads Github Actions Codacy Badge

Python包,用于静音Tensorflow的警告和日志,让您专注于重要的错误。

如何安装此包?

像往常一样,只需使用pip下载即可

pip install silence_tensorflow

如何使用它?

您只需在导入TensorFlow之前导入该包即可

from silence_tensorflow import silence_tensorflow
silence_tensorflow()
import tensorflow as tf

# your code

设置日志级别

默认情况下,日志级别设置为错误,您可以通过将级别作为函数的参数传递来将其设置为您想要的任何级别。

from silence_tensorflow import silence_tensorflow

# Set the logging level to error, meaning only errors will be logged
silence_tensorflow("ERROR")

# Set the logging level to warning, meaning only errors and warnings will be logged
silence_tensorflow("WARNING")

# Set the logging level to info, meaning errors, warnings and info will be logged
silence_tensorflow("INFO")

# Set the logging level to debug, meaning all logs will be shown
silence_tensorflow("DEBUG")

可以在导入时完成吗?

当然,您可以通过导入子模块auto来使用单行完成所有操作。

这将设置日志级别为错误,并将亲和性设置为无冗余。

import silence_tensorflow.auto
import tensorflow as tf

# your code

如何让pylint忽略未使用的导入?

您可以使用以下标志disable=unused-import来这样做

import silence_tensorflow.auto  # pylint: disable=unused-import
import tensorflow as tf

# your code

如何让pylint忽略未使用的变量?

如果您在函数的上下文中导入silence_tensorflow,您将收到来自pylint的不同警告:未使用的变量。您可以使用以下标志disable=unused-variable来这样做

def func():
    import silence_tensorflow.auto  # pylint: disable=unused-variable
    import tensorflow as tf

    # your code

它是如何工作的?

该包将设置系统变量KMP_AFFINITYnoverboseTF_CPP_MIN_LOG_LEVEL为级别3(仅记录错误)。

如果您需要为KMP_AFFINITY设置自定义值,您应在导入包之后将其重置,如下所示

import os
from silence_tensorflow import silence_tensorflow
backup = os.environ["KMP_AFFINITY"]
silence_tensorflow()
os.environ["KMP_AFFINITY"] = backup

已知限制

尽管我尽力覆盖Tensorflow可能产生的所有日志,但仍有一些日志没有被此包静音。以下是我们已知的一些日志,以及为什么它们没有被静音以及您可以如何静音它们的原因。

TensorFlow Lite (TFLite)

TFLite的日志不会被此软件包静音,因为它们在代码中将日志级别硬编码为INFO,并且无法从Python端更改它。

TFLite会导致打印如下信息日志:

INFO: Created TensorFlow Lite XNNPACK delegate for CPU.

如果您愿意重新编译自己的TensorFlow Lite版本,可以通过更改上述提到的行或将它设置在您的C++代码中,将其日志级别更改为ERROR,如本问题中所述

tflite::LoggerOptions::SetMinimumLogSeverity(tflite::TFLITE_LOG_SILENT);

许可证

本软件采用MIT许可协议分发。

项目详情


下载文件

下载适合您平台文件的版本。如果您不确定选择哪个版本,请了解更多关于安装包的信息。

源代码分发

silence_tensorflow-1.2.2.tar.gz (5.3 kB 查看哈希值)

上传时间 源代码

支持