【问题标题】:Tensorflow how to enable logging to print out?Tensorflow如何启用日志打印输出?
【发布时间】:2017-11-15 13:04:47
【问题描述】:

在object-detection API代码中,我在源代码中看到了很多日志语句,但是当我运行程序时,它们都没有真正打印出来。

我发现这些日志语句没有使用tf.logging,而是使用了系统日志,比如

import logging
#do some fancy job here
logging.info("this is a test")

如何使这些日志语句打印出来?我知道我可以在python源文件中插入一段代码,比如

logger = logging.getLogger()    # initialize logging class
logger.setLevel(logging.DEBUG)  # default log level
format = logging.Formatter("%(asctime)s - %(message)s")    # output format 
sh = logging.StreamHandler(stream=sys.stdout)    # output to standard output
sh.setFormatter(format)
logger.addHandler(sh)

但这很繁琐,我需要在每个源文件中插入这段代码。是否有一些聪明的方法来激活系统日志语句?

【问题讨论】:

    标签: logging tensorflow object-detection


    【解决方案1】:

    您只需要在所有其他代码工作之前运行这段代码(它将创建一个静态存储在日志记录中的日志处理程序,所有后续调用任何日志记录函数都将找到并使用此处理程序),所以对于例如,您可以在train.pyeval.py 的主函数开头添加它。或者您可以使用自己的包装脚本,它基本上创建记录器并从eval.pytrain.py 调用main 函数。

    【讨论】: