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

时间:2018-04-17 15:47:22

标签: python tensorflow keras

图书馆:Keras,后端:Tensorflow

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

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

2 个答案:

答案 0 :(得分:2)

Keras binary_crossentropy首先将预测的概率转换为logits。然后它使用tf.nn.sigmoid_cross_entropy_with_logits计算交叉熵并返回给你的平均值。从数学上讲,如果你的标签是1而你的预测概率很低(如0.1),则交叉熵可能大于1,如losses.binary_crossentropy(tf.constant([1.]), tf.constant([0.1]))

答案 1 :(得分:2)

是的,正确的,交叉熵不受任何特定范围的约束,只是正(> 0)。