当 Tensorflow 估算器打印损失时,正在使用什么数据集



当使用Tensorflow Estumator时,它会在python控制台(每100个步骤(上打印全局步骤和损失(此外,它还打印学习率,交叉熵和MAE,这是我的评估指标,它将这3个值打印在不同的行中,我认为这是由于某些包装函数不是原始估算器API的一部分,因为我使用的是Google开发人员的ResNet实现(。它看起来像这样:

I0530 19:20:42.748463 10964 tf_logging.py:116] learning_rate = 3.552962e-05, cross_entropy = 2.2080934, MAE = 5.135024 (62.295 sec)   
I0530 19:20:42.749458 10964 tf_logging.py:116] loss = 2.2080934, step = 76066 (62.295 sec)

我的问题是,正在计算什么损失(或正在计算什么MAE(?
是日志记录发生时特定步骤中仅丢失一个示例的损失吗?
是日志记录发生时特定步骤的批次损失吗?
或者也许是整个火车组的损失?

另外,如果我假设有错误,请纠正我。我在这个领域很陌生。
谢谢。

tf.Estimator自动设置损失和全局步长的LoggingTensorHook。据推测,您运行的代码为其他值(学习率、交叉熵(这只是损失(和 MAE(设置了一个单独的钩子,这就是它们打印在单独行上的原因。

至于使用哪些数据来生成值:它是"当前"数据批次,即在完成日志记录的步骤中使用的批次。因此,在您提出的三个选项中,第二个是正确的。

这可以通过源代码进行限制,因为钩子在"运行后"进行日志记录,在run_values中接收最后一次session.run()调用的结果(一次只能获得一个批次(。

最新更新