Keras Tensorflow 二元交叉熵损失大于 1

Blu*_*lue 5 python keras tensorflow

库:Keras,后端:Tensorflow

我正在训练一个单类/二元分类问题,其中我的最后一层有一个节点,激活 sigmoid 类型。我正在用二元交叉熵损失编译我的模型。当我运行代码来训练我的模型时,我注意到损失的值大于 1。这是对的,还是我在某处出错了?我检查了标签。它们都是 0 和 1。

是否有可能使二元交叉熵损失大于 1?

Y. *_*Luo 8

Kerasbinary_crossentropy首先将您的预测概率转换为 logits。然后它用于tf.nn.sigmoid_cross_entropy_with_logits计算交叉熵并将其返回给您。从数学上讲,如果您的标签为 1 并且您的预测概率很低(例如 0.1),则交叉熵可以大于 1,例如losses.binary_crossentropy(tf.constant([1.]), tf.constant([0.1]))


Mat*_*gro 6

是的,它是正确的,交叉熵不受任何特定范围的限制,它只是正数(> 0)。