在和 和tf.estimator
有什么区别?我会从名称中猜到前者是后者除以记录数,但事实并非如此;有几千条记录,后者大约是前者的三四倍。average_loss
loss
问问题
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 回答