Python 避免标准错误上的tensorflow打印

Python 避免标准错误上的tensorflow打印,python,tensorflow,Python,Tensorflow,任何人都知道是否有一种方法可以防止tensorflow通过GPU的内存分配日志污染标准错误?。 我注意到,当执行以下命令时: 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 pciB

任何人都知道是否有一种方法可以防止tensorflow通过GPU的内存分配日志污染标准错误?。 我注意到,当执行以下命令时:

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

出于重要原因,我希望避免这种打印。

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

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

$ export TF_CPP_MIN_LOG_LEVEL=3
$ python ...
您还可以通过更改
TF\u CPP\u MIN\u LOG\u LEVEL
的值来调整详细程度:

  • 0=记录所有消息(默认行为)
  • 1=
    INFO
    未打印消息
  • 2=
    信息
    警告
    消息不打印
  • 3=
    信息
    警告
    错误
    消息不打印
默认值为0,因此显示所有日志。将TF_CPP_MIN_LOG_LEVEL设置为1以过滤掉信息日志,将2设置为额外过滤掉警告,将3设置为额外过滤掉错误


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

import os  
os.environ['TF_CPP_MIN_LOG_LEVEL'] = '3'  
根据您想要的消息,将3更改为值(0、1、2、3)

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

跟踪问题: