堆叠LSTM网络中每个LSTM层的输入是什么?

问题描述 投票:0回答:1

我在理解堆叠LSTM网络中层的输入输出流方面遇到了一些困难。假设我创建了一个堆叠的LSTM网络,如下所示:

# parameters
time_steps = 10
features = 2
input_shape = [time_steps, features]
batch_size = 32

# model
model = Sequential()
model.add(LSTM(64, input_shape=input_shape,  return_sequences=True))
model.add(LSTM(32,input_shape=input_shape))

其中我们的堆叠LSTM网络由2个LSTM层组成,分别具有64个和32个隐藏单元。在这种情况下,我们期望在每个时间步骤,第一个LSTM层-LSTM(64) - 将作为输入传递给第二个LSTM层-LSTM(32) - 一个大小为[batch_size, time-step, hidden_unit_length]的向量,它将代表隐藏状态当前时间步的第一个LSTM层。令我困惑的是:

  1. 第二个LSTM层-LSTM(32) - 作为X(t)(作为输入)接收第一层-LSTM(64)的隐藏状态 - 其大小为[batch_size, time-step, hidden_unit_length]并将其传递通过它自己的隐藏网络 - 在这种情况下由32个节点 - ?
  2. 如果第一个为真,为什么第一个-LSTM(64)的input_shape和第二个-LSTM(32)的input_shape是相同的,当第二个只处理第一层的隐藏状态时?在我们的情况下不应该[32, 10, 64]设置为here

我发现下面的LSTM可视化非常有用(找到input_shape),但它不会在stack-lstm网络上扩展:

任何帮助将受到高度赞赏。谢谢!

deep-learning lstm recurrent-neural-network stacked
1个回答
1
投票

只有第一层需要input_shape。后续层将前一层的输出作为其输入(因此忽略它们的model = Sequential() model.add(LSTM(64, return_sequences=True, input_shape=(5, 2))) model.add(LSTM(32)) 参数值)

下面的模型

enter image description here

代表以下架构

model.summary()

您可以从_________________________________________________________________ Layer (type) Output Shape Param # ================================================================= lstm_26 (LSTM) (None, 5, 64) 17152 _________________________________________________________________ lstm_27 (LSTM) (None, 32) 12416 ================================================================= 验证它

model.add(LSTM(32))

替换线

model.add(LSTM(32, input_shape=(1000000, 200000)))

model.summary()

仍然会给你相同的架构(使用input_shape验证)因为enter image description here被忽略,因为它将前一层的张量输出作为输入。

如果您需要一个序列来排序如下所示的体系结构

model = Sequential() model.add(LSTM(64, return_sequences=True, input_shape=(5, 2))) model.add(LSTM(32, return_sequences=True))

你应该使用代码:

_________________________________________________________________
Layer (type)                 Output Shape              Param #   
=================================================================
lstm_32 (LSTM)               (None, 5, 64)             17152     
_________________________________________________________________
lstm_33 (LSTM)               (None, 5, 32)             12416     
=================================================================

哪个应该返回一个模型

qazxswpoi
© www.soinside.com 2019 - 2024. All rights reserved.