图书馆:Keras,后端:Tensorflow
我正在训练单个类/二进制分类问题,其中我的最后一层有一个节点,激活了sigmoid类型。我正在用二元交叉熵损失编译我的模型。当我运行代码来训练我的模型时,我注意到损失是一个大于1的值。这是对的,还是我在某个地方出错了?我检查了标签。他们都是0和1。
二元交叉熵损失是否可能大于1?
答案 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)。