tensorflow 估计器 : average_loss vs loss

标签 tensorflow machine-learning tensorflow-estimator

tf.estimator中,average_lossloss有什么区别?我本可以从名称中猜测前者是后者除以记录数,但事实并非如此;如果有几千条记录,后者大约是前者的三四倍。

最佳答案

average_lossloss 之间的区别在于,前者减少了批量损失的 SUM,而其他降低了相同损失的MEAN。因此,该比率正是 input_fnbatch_size 参数。如果您传递 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_lossweights 张量计算的。相同的值会报告给张量板摘要。

关于 tensorflow 估计器 : average_loss vs loss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46980374/

相关文章:

python - 如何在 CNN 中使用自己的图像进行预测?

python - Keras 应用程序 - imagenet 上的 VGG16 低精度

machine-learning - 使 Harmonic 中的记忆意义加倍重要

opencv - 使用不同参数测试我的 SVM 模型会产生完全相同的结果

TensorFlow Serving 将图像作为 Cloud ML Engine 上的 base64 编码字符串

tensorflow - 检查点 keras 模型 : TypeError: can't pickle _thread. 锁定对象

python - 如何在pytorch中使用SGD成功训练简单的线性回归模型?

tensorflow - 使用 TensorFlow Estimator API 仅优化模型的某些变量

python - 如何将序列化数据提供给 tf 保存的模型?

python - 训练过程中的过多步骤会扰乱机器学习的训练过程吗?