python – 二进制crossentropy和二进制crossentropy与keras中的logits有什么区别?

在keras后端,我们在
K.binary_crossentropy中有一个标志with_logits.普通二进制交叉熵和二进制交叉熵与logits有什么区别?假设我使用的是seq2seq模型,输出序列的类型为100111100011101.

我应该使用什么来递归LSTM或RNN来学习这些数据,前提是我在输入中给出了类似的序列以及时间步长?

最佳答案 这取决于你是否在损失函数之前有一个sigmoid层.

如果存在sigmoid层,它会将类得分压缩为概率,在这种情况下from_logits应为False. loss函数会将概率转换为logits,因为这就是tf.nn.sigmoid_cross_entropy_with_logits所期望的.

如果输出已经是logit(即原始分数),则传递from_logits = True,不会进行转换.

这两种选择都是可能的,选择取决于您的网络架构.顺便说一句,如果术语logit看起来很可怕,请看一下this question,详细讨论它.

点赞