1

当我在im2txt中阅读 im2txt 源代码时遇到问题。

batch_losstotal_loss:batch_loss为每批数据计算,并tf.Graphkeys.LOSSES通过tf.add_loss(batch_loss)调用添加。total_loss得到了,它平均了 中的tf.losses.get_total_loss()所有损失 tf.Graphkeys.LOSSES

问题:为什么total_loss会更新参数?我被这个问题困惑了很多天。

4

1 回答 1

1

评论中的讨论摘要

训练损失是在小批量的前向传递中计算的。但是开始反向传播不需要实际的损失值。反向传播从误差信号开始,它等于在前向传播的值处评估的损失函数导数。所以损失值不影响参数更新,上报只是为了监控训练过程。例如,如果损失没有减少,则表明需要仔细检查神经网络模型和超参数。因此,通过平均来平滑报告的损失并不是什么大不了的事,只是为了让图表看起来更漂亮。

有关更多详细信息,请参阅此帖子

于 2017-11-05T15:52:47.013 回答