避免在标准错误上打印tensorflow

ale*_*nte 5 python tensorflow

任何人都知道是否有一种方法可以防止使用gpus'内存分配日志来防止tensorflow污染标准错误?我注意到执行以下命令时:

with tf.Session() as sess:
Run Code Online (Sandbox Code Playgroud)

tensorflow在标准错误上打印关于内存和gpu资源分配的日志.就像是:

I tensorflow/core/common_runtime/local_device.cc:25] Local device intra op parallelism threads: 48
Graphics Device pciBusID 0000:02:00.0
Free memory: 11.75GiB
...
Run Code Online (Sandbox Code Playgroud)

出于重要原因,我想避免这种印刷.

mrr*_*rry 14

这最近已修复,如果您升级到TensorFlow 0.12或更高版本,则应该可用.

要禁用TensorFlow的所有日志记录输出,请在启动Python之前设置以下环境变量:

$ export TF_CPP_MIN_LOG_LEVEL=3
$ python ...
Run Code Online (Sandbox Code Playgroud)

您还可以通过更改以下值来调整详细程度TF_CPP_MIN_LOG_LEVEL:

  • 0 =记录所有消息(默认行为)
  • 1 = INFO不打印消息
  • 2 = INFO并且WARNING不打印消息
  • 3 = INFO,, WARNINGERROR不打印消息


sin*_*ium 11

您可以按照第一个答案中所述在启动 Python 之前设置环境变量,也可以将以下行添加到 Python 代码中:

import os  
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'  
Run Code Online (Sandbox Code Playgroud)

根据您想要避免的消息,将 3 更改为值 (0, 1, 2, 3)。

如果使用 TensorFlow 2.0+,请确保将这些行放在前面import tensorflow才能有效。