为什么要一个接一个地使用两个 LSTM 层?

数据挖掘 喀拉斯 lstm
2021-09-30 04:59:55

Kerasreturn_sequences=True网站上的示例中,第 189 行seq2seq_translate.py有一个接一个的 LSTM 层(第一个带有编码器。我的代码如下所示:

encoder = LSTM(latent_dim, return_sequences=True)(encoder_inputs)
encoder_outputs, state_h, state_c = LSTM(latent_dim, return_state=True)(encoder)

我的问题是为什么逐字版本使用两个 LSTM 层?为什么使用 return_sequences?

1个回答

关于您的第一个问题:这是因为逐字 NLP 模型比逐字母模型更复杂,因此需要更复杂的网络(更多隐藏单元)进行适当建模。

关于您的第二个问题:当您想使用双阶段 LSTM 时,必须将第一个 LSTM 的隐藏序列用作第二个 LSTM 的输入,并使用 return_sequences 选项来执行此操作。