问题 有没有办法抑制TensorFlow打印的消息?


我认为这些消息在最初几次非常重要,但它只是无用的。 它实际上使阅读和调试变得更糟。

我成功打开了tensorflow / stream_executor / dso_loader.cc:128]   CUDA库本地libcublas.so.8.0我   tensorflow / stream_executor / dso_loader.cc:119]无法打开CUDA   library libcudnn.so。 LD_LIBRARY_PATH:我   tensorflow / stream_executor / cuda / cuda_dnn.cc:3459]无法加载cuDNN   DSO I tensorflow / stream_executor / dso_loader.cc:128]成功   我在本地打开了CUDA库libcufft.so.8.0   tensorflow / stream_executor / dso_loader.cc:128]成功打开了CUDA   本地库libcuda.so.1我   tensorflow / stream_executor / dso_loader.cc:128]成功打开了CUDA   本地库libcurand.so.8.0

有没有办法压制那些只说它成功的?


7167
2017-11-04 15:33


起源



答案:


您可以使用设置TensorFlow日志记录的详细级别

tf.logging.set_verbosity(tf.logging.ERROR)

哪里 ERROR 可以是任何一个 DEBUGINFOWARNERROR, 要么 FATAL。看到 记录模块

但是,将此设置为 ERROR 并不总是完全阻止所有 INFO 日志,为了完全阻止他们,我认为你有两个主要选择。

  • 如果您使用的是Linux,那么您可以 grep 以...开头的所有输出字符串 I tensorflow/
  • 否则,您可以使用一些已修改的文件完全重建TensorFlow。看到 这个答案

8
2017-11-04 15:44



这适用于我的TF v1.4和1月18日:D - Nachiket


答案:


您可以使用设置TensorFlow日志记录的详细级别

tf.logging.set_verbosity(tf.logging.ERROR)

哪里 ERROR 可以是任何一个 DEBUGINFOWARNERROR, 要么 FATAL。看到 记录模块

但是,将此设置为 ERROR 并不总是完全阻止所有 INFO 日志,为了完全阻止他们,我认为你有两个主要选择。

  • 如果您使用的是Linux,那么您可以 grep 以...开头的所有输出字符串 I tensorflow/
  • 否则,您可以使用一些已修改的文件完全重建TensorFlow。看到 这个答案

8
2017-11-04 15:44



这适用于我的TF v1.4和1月18日:D - Nachiket


除了Wintro的答案,您还可以从C侧禁用/抑制TensorFlow日志(即以单个字符开头的丑陋日志:I,E等);该 问题 关于日志记录已打开已更新,表示您现在可以通过环境变量控制日志记录。您现在可以通过设置调用的环境变量来更改级别 TF_CPP_MIN_LOG_LEVEL;它默认为0(显示所有日志),但可以设置为1以过滤掉 INFO 记录,2另外过滤掉 WARNING 记录,3另外过滤掉 ERROR 日志。它现在似乎在掌握,并且很可能是未来版本的一部分(即r0.11之后的版本)。看到 这一页 了解更多信息。以下是使用Python更改详细程度的示例:

import os
import tensorflow as tf

os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'  # or any {'0', '1', '2'}

3
2017-11-29 16:34