首页 > 解决方案 > 为什么将 reduce_mean 应用于 sparse_softmax_cross_entropy_with_logits 的输出?

问题描述

有几个教程适用reduce_meansparse_softmax_cross_entropy_with_logits. 例如

cross_entropy = -tf.reduce_sum(y_ * tf.log(y_conv))

或者

cross_entropy = tf.reduce_mean(tf.nn.sparse_softmax_cross_entropy_with_logits(
                               labels=tf.cast(y_, dtype=tf.int32), logits=y_conv))

为什么reduce_mean应用于 的输出sparse_softmax_cross_entropy_with_logits?是因为我们使用的是小批量,所以我们想计算(使用reduce_mean)小批量所有样本的平均损失吗?

标签: tensorflowlosscross-entropy

解决方案


原因是要获得批次的平均损失。

通常,您将训练一个输入批次大小 > 1 的神经网络,批次中的每个元素都会产生一个损失值,因此将它们合并为一个值的最简单方法是平均。


推荐阅读