当return_sequences=false时,keras双向LSTM是否等效于[向前通过+向后一步]



我知道Bidirectional()return_sequences=True:时是如何工作的

model.add(Bidirectional(LSTM(20, return_sequences=True)

但我感到困惑的是:

return_sequences=falseLSTM中时,在要组合的每个时间步长都没有输出,那么这一行是如何工作的?:

model.add(Bidirectional(LSTM(20, return_sequences=False)))

model.add(Bidirectional(LSTM(20)))

例如,在keras团队的这段代码中(注意,默认情况下LSTMreturn_sequences=False(

我的问题是:

return_sequences=FalseBidirectional()的行为是这样的:时,这样说正确吗

CCD_ 11+"的正向通过的输出单个时间步长";在反向

因此它实际上是CCD_ 12+单步CCD_

我说得对吗?

=============================================

更新:

我想它找到了答案,但我不确定。

return_sequences=False时,在每个时间步长没有中间输出

所以一个";完全向前传球">+";完全向后通过">应该合并。

即正向的最后输出+反向的最终输出

LSTM(x1...xn)+LSTM(xn...x1)

更新中的答案是正确的。

当return_sequences=True时,将为每个时间步长生成一个输出。因此,如果你的层中有5个LSTM单元,那么就会有5个输出,每个单元一个。

当return_sequences=False时,仅返回前向通路的最后输出(位于时间步长T-1(和后向通路的最终输出(位于时刻步长0(。

在这两种情况下,输出都以某种定义的方式合并,例如concat、sum等

相关内容

  • 没有找到相关文章

最新更新