避免在标准错误上打印tensorflow

时间:2016-03-08 13:47:42

标签: python tensorflow

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

with tf.Session() as sess:

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
...

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

3 个答案:

答案 0 :(得分:10)

这是最近修复的,如果你升级到TensorFlow 0.12或更高版本,它应该可用。

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

$ export TF_CPP_MIN_LOG_LEVEL=3
$ python ...

您还可以通过更改TF_CPP_MIN_LOG_LEVEL

的值来调整详细程度
  • 0 =记录所有消息(默认行为)
  • 1 =未打印INFO条消息
  • 2 =未打印INFOWARNING条消息
  • 3 =未打印INFOWARNINGERROR条消息

答案 1 :(得分:1)

  

默认为0,因此显示所有日志。将TF_CPP_MIN_LOG_LEVEL设置为1以过滤掉INFO日志,将2设置为过滤掉WARNING,3以另外过滤掉ERROR。

答案 2 :(得分:1)

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

import os  
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'  

根据您要使用的消息将3更改为值(0、1、2、3)。

PS::如果您使用的是TensorFlow => 2.0,请确保在导入tensorflow之前先放置这些行,以使其生效。