【问题标题】:What is the difference between binary crossentropy and binary crossentropy with logits in keras?keras中的二元交叉熵和带有logits的二元交叉熵有什么区别?
【发布时间】:2018-03-12 13:41:02
【问题描述】:

在 keras 后端,我们在 K.binary_crossentropy 中有一个标志 with_logits。正常二元交叉熵和带 logits 的二元交叉熵有什么区别?假设我使用的是 seq2seq 模型,并且我的输出序列是 100111100011101 类型。

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

【问题讨论】:

    标签: python machine-learning keras lstm rnn


    【解决方案1】:

    这取决于你在损失函数之前是否有一个 sigmoid 层。

    如果有sigmoid层,它会将类分数压缩成概率,在这种情况下from_logits应该是False。损失函数会将概率转换为 logits,因为这是 tf.nn.sigmoid_cross_entropy_with_logits 所期望的。

    如果输出已经是logit(即原始分数),则通过from_logits=True,则不会进行任何转换。

    这两种选择都是可能的,具体选择取决于您的网络架构。顺便说一句,如果 logit 这个词看起来很吓人,请查看this question,其中详细讨论了它。

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 2018-11-03
      • 1970-01-01
      • 2020-01-03
      • 2018-11-28
      • 1970-01-01
      • 2021-10-07
      • 2021-11-25
      • 1970-01-01
      相关资源
      最近更新 更多