在和 和tf.estimator有什么区别?我会从名称中猜到前者是后者除以记录数,但事实并非如此;有几千条记录,后者大约是前者的三四倍。average_lossloss
4378 次
2 回答
7
average_loss和之间的区别在于loss,一个减少SUM了批量损失,而另一个减少MEAN了相同的损失。因此,该比率正是batch_size您的论点input_fn。如果您通过batch_size=1,您应该看到它们相等。
实际报告的张量取决于 的特定类型tf.Estimator,但它们非常相似,这是回归头的源代码(对应于tf.DNNRegressor):
training_loss = losses.compute_weighted_loss(unweighted_loss, weights=weights,
reduction=losses.Reduction.SUM)
mean_loss = metrics_lib.mean(unweighted_loss, weights=weights)
如您所见,它们是从相同的张量unweighted_loss和weights张量中计算出来的。相同的值会报告给张量板摘要。
于 2017-11-02T16:19:41.520 回答
3
实际比例正好是4.0,对应于批量大小。
当你训练一个网络时,你通常将输入作为一个批次提供。
在您参考的示例4中,批次大小为,因此损失是整个批次损失的总和,而平均损失是整个批次损失的平均值。
于 2017-11-02T00:05:48.470 回答