Tensorflow估算器:average_loss vs loss

时间:2017-10-27 17:17:37

标签: tensorflow machine-learning tensorflow-estimator

tf.estimator中,average_lossloss之间有什么区别?我会从名字中猜到前者将被后者除以记录的数量,但事实并非如此;有几千条记录,后者大约是前者的三到四倍。

2 个答案:

答案 0 :(得分:3)

average_lossloss之间的区别在于,减少 SUM 超过批量损失,而另一个减少 {{1相同的损失。。因此,该比率恰好是MEAN的{​​{1}}参数。如果你通过batch_size,你应该看到它们相等。

实际报告的张量取决于input_fn的特定类型,但它们非常相似,回归头here's the source code(对应batch_size=1):

tf.Estimator

如您所见,它们是根据相同的tf.DNNRegressortraining_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,因此损失是整批产品的损失总和,而平均损失是整批产品的损失平均值。