堆叠式LSTM网络是如何工作的



我很难理解堆叠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中,我们有以前的隐藏状态和当前输入作为输入。如果第一层LSTM的输入(input_shape(没有进入第二层LSTM,那么第二层的输入是什么?只有隐藏的状态?哪个隐藏状态?

您正在创建的是一个层网络。因此,是的,从第一层到第二层的输入,依此类推。您可以控制从层到层的输入。在lstm的情况下,您可以使用return_sequences或return state。

这是一篇解释的文章

https://www.dlology.com/blog/how-to-use-return_state-or-return_sequences-in-keras/

最新更新