machine-learning - tensorflow 中的batch_loss和total_loss=tf.get_total_loss()

标签 machine-learning tensorflow deep-learning backpropagation loss-function

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

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

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

最佳答案

评论中的讨论摘要:

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

参见this post了解更多详情。

关于machine-learning - tensorflow 中的batch_loss和total_loss=tf.get_total_loss(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47122591/

相关文章:

r - 使用方法("predict"): no applicable method for 'predict' applied to an object of class "train"

machine-learning - 如何在Python中执行肘法?

javascript - react 中的Tensorflow automl模型

machine-learning - 如何在Python中将Alexnet的梯度存储为numpy数组(在每次迭代中)?

machine-learning - model.train(False) 和 required_grad = False 的区别

java - 使用 Weka 每周​​预测明年的温度值

image-processing - 如何使用 pytorch 只更新网络中的某些特定张量?

tensorflow - 如何使用 bool 张量制作 if 语句

python - 在 tensorflow 中连接 vgg19 的问题

keras - 内核大小等于 1 的 Conv1D 做什么?