在Keras后端,with_logits
中有一个标志K.binary_crossentropy
。普通二进制交叉熵和带有logits的二进制交叉熵有什么区别?假设我使用的是seq2seq模型,我的输出序列是100111100011101
类型。
如果在输入和时间步中给出类似的序列,递归lstm或rnn应该使用什么来从这些数据中学习?
最佳答案
这取决于在失功之前是否有乙状结肠层。
如果有一个乙状结肠层,它将把班级分数压缩成概率,在这种情况下from_logits
应该是False
。loss函数将把概率转换成logits,因为这是tf.nn.sigmoid_cross_entropy_with_logits
所期望的。
如果输出已经是logit(即原始分数),passfrom_logits=True
,则不会进行转换。
这两个选项都是可能的,而且选择取决于您的网络体系结构。顺便说一下,如果logit这个词看起来很吓人,那么看看this question这个词,它会详细讨论这个问题。