Tensorflow estimator: average_loss与loss的区别

tf.estimator中,average_lossloss有什么区别?我原本猜测前者应该是后者除以记录数,但事实并非如此;在几千条记录的情况下,后者大约是前者的三到四倍。


回答:

average_lossloss的区别在于,一个是对批次损失进行SUM(求和)操作,另一个是对相同的损失进行MEAN(求平均)操作。因此,它们之间的比率正好是你的input_fn中的batch_size参数。如果你传入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_lossweights张量计算得出的。相同的值会被报告到tensorboard摘要中。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注