在Keras中,二进制交叉熵和带Logits的二进制交叉熵有什么区别?

5
在Keras后端,我们在K.binary_crossentropy中有一个标志with_logits。常规二进制交叉熵和带逻辑的二进制交叉熵有何区别?假设我正在使用seq2seq模型,我的输出序列类型为100111100011101
如果我在输入时给出类似的序列和时间步骤,那么应该使用什么来让递归LSTM或RNN从这些数据中学习?
1个回答

2
这取决于你是否在损失函数之前有一个Sigmoid层。
如果有Sigmoid层,它会将类别得分压缩成概率值,此时from_logits应设置为False。损失函数将把概率转换成logits(逻辑值),因为这是tf.nn.sigmoid_cross_entropy_with_logits所期望的输入格式。
如果输出已经是logit(原始分数),则传递from_logits=True,不会进行任何转换。
两种选项都可以,选择取决于您的网络架构。顺便说一下,如果术语 logit(逻辑值)听起来很吓人,请查看此问题,其中详细讨论了该术语。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接