在tf.estimator
中,average_loss
和loss
有什么区别?我会从名称中猜测到,前者将是后者除以记录数,但事实并非如此。有几千条记录,后者大约是前者的三到四倍。
最佳答案
average_loss
和loss
之间的区别在于,一个减少批次损失中的 SUM
,而另一个减少相同损失中的 MEAN
。因此,比率恰好是batch_size
的input_fn
参数。如果传递batch_size=1
,则应该看到它们相等。
实际报告的张量取决于tf.Estimator
的特定类型,但它们非常相似,回归头为here's the source code(对应于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
张量计算的。将相同的值报告给张量板摘要。关于Tensorflow估算器: average_loss vs loss,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46980374/