堆叠 LSTM 网络如何工作?
Posted
技术标签:
【中文标题】堆叠 LSTM 网络如何工作?【英文标题】:How does stacked LSTM network works? 【发布时间】:2021-01-09 00:23:47 【问题描述】:我在理解堆叠 LSTM 网络中的细胞流时遇到了一些困难。我有这个网络:
def make_model(x_train):
# Create a new linear regression model.
model = Sequential()
model.add(Bidirectional(LSTM(units=30, return_sequences=True, input_shape = (x_train.shape[1],1) ) ))
model.add(Dropout(0.2))
model.add(LSTM(units= 30 , return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units= 30 , return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(units= 30))
model.add(Dropout(0.2))
model.add(Dense(units = n_future,activation='linear'))
model.compile(optimizer='adam', loss='mean_squared_error',metrics=['acc'])
return model
1)第一层LSTM的输入是否进入第二层LSTM?
2)我已经读过,在 LSTM 中,我们将先前的隐藏状态和当前输入作为输入。如果来自第 1 个 LSTM 层(input_shape)的输入没有进入第 2 个 LSTM 层,那么第 2 个 LSTM 层的输入是什么?只有隐藏状态?哪个隐藏状态?
【问题讨论】:
【参考方案1】:您正在创建的是一个层网络。所以是的,从第一个输入到第二个,依此类推。您可以控制来自层的输入,在 lstm 的情况下,您可以使用 return_sequences 或 return state。
这是一篇解释这一点的文章
https://www.dlology.com/blog/how-to-use-return_state-or-return_sequences-in-keras/
【讨论】:
如何获得所有 LSTM 层的权重?我使用了这个:***.com/questions/42861460/…,但它只适用于索引 0。我想要所有 4 个 LSTM 和密集层的权重。以上是关于堆叠 LSTM 网络如何工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 keras 堆叠 LSTM 模型正确塑造多类分类的输入
如何使用 Tensorflow2.0 alpha 堆叠卷积层和 LSTM?
论文导读- E-LSTM-D: A Deep Learning Framework for Dynamic Network Link Prediction(动态网络链接预测)