Sub*_*jee 5 python machine-learning lstm keras rnn
在keras后端,我们还有一个标志with_logits在K.binary_crossentropy。正常的二进制互熵和带对数的二进制互熵有什么区别?假设我正在使用seq2seq模型,并且我的输出序列是type 100111100011101。
with_logits
K.binary_crossentropy
100111100011101
如果我在输入中给出了类似的顺序以及时间步长,那么递归的LSTM或RNN应该从该数据中学到什么呢?
Max*_*xim 2
这取决于损失函数之前是否有 sigmoid 层。
如果有 sigmoid 层,它会将类别分数压缩为概率,在本例中from_logits应该是False。损失函数会将概率转换为logits,因为这就是tf.nn.sigmoid_cross_entropy_with_logits预期的结果。
from_logits
False
tf.nn.sigmoid_cross_entropy_with_logits
如果输出已经是一个logit(即原始分数),则通过from_logits=True,不会进行任何转换。
from_logits=True
这两种选择都是可能的,选择取决于您的网络架构。顺便说一句,如果logit这个术语看起来很可怕,请看一下这个问题,其中详细讨论了它。
归档时间:
8 年,1 月 前
查看次数:
474 次
最近记录:
8 年 前