tensorflow 打印的损失是批量/样本损失还是运行平均损失?

Posted

技术标签:

【中文标题】tensorflow 打印的损失是批量/样本损失还是运行平均损失?【英文标题】:Is the loss printed by tensorflow a batch/sample wise loss or is it a running average loss? 【发布时间】:2021-10-24 05:15:41 【问题描述】:

当我训练一个 tensorflow 模型时,它通常会在每次迭代时打印类似于以下行的信息

INFO:tensorflow:loss = 1.9433185, step = 11 (0.300 sec)

正在打印的损失是模型当前看到的批次的损失,还是之前所有训练批次的运行平均损失?

如果我使用 1 的批大小,即每批中只有一个训练样本,那么打印的损失将分别是每个样本的损失,这将是运行平均损失吗?

【问题讨论】:

【参考方案1】:

Keras/TensorFlow 进度条中报告的损失始终是到目前为止看到的批次的运行平均值,而不是每批次的值。

我认为没有办法在训练期间查看每批次的值。

【讨论】:

以上是关于tensorflow 打印的损失是批量/样本损失还是运行平均损失?的主要内容,如果未能解决你的问题,请参考以下文章

使用Tensorflow后端的Keras LSTM RNN中令人费解的训练损失与纪元...行为的任何原因

损失函数tensorflow2实现——Python实战

Keras 中的自定义损失函数应该返回批次的单个损失值还是训练批次中每个样本的一系列损失?

多个正分类的 TensorFlow 损失计算

TensorFlow 如何编写自定义 Aitchison 损失

Keras 中具有样本权重的自定义损失函数