在tf.estimator
中,average_loss
和loss
之间有什么区别?我会从名字中猜到前者将被后者除以记录的数量,但事实并非如此;有几千条记录,后者大约是前者的三到四倍。
答案 0 :(得分:3)
average_loss
和loss
之间的区别在于,减少 SUM
超过批量损失,而另一个减少 {{1相同的损失。。因此,该比率恰好是MEAN
的{{1}}参数。如果你通过batch_size
,你应该看到它们相等。
实际报告的张量取决于input_fn
的特定类型,但它们非常相似,回归头here's the source code(对应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)
张量计算出来的。将相同的值报告给tensorboard summary。
答案 1 :(得分:2)
实际比率恰好是4.0
,与批量大小相对应。
当您训练网络时,通常会批量输入输入
在您所指的example中,批量大小为4
,因此损失是整批产品的损失总和,而平均损失是整批产品的损失平均值。