在Keras中连接LSTM的输出

时间:2018-07-27 00:18:58

标签: keras nlp deep-learning lstm recurrent-neural-network

我打算将所有时间步长的输出从LSTM馈送到完全连接的层。但是,以下代码失败。如何通过连接每个时间步输出将LSTM的3D输出减少为2D?

X = LSTM(units=128,return_sequences=True)(input_sequence)
X = Dropout(rate=0.5)(X)
X = LSTM(units=128,return_sequences=True)(X)
X = Dropout(rate=0.5)(X)
X = Concatenate()(X)
X = Dense(n_class)(X)
X = Activation('softmax')(X)

2 个答案:

答案 0 :(得分:1)

您可以使用Flatten层将LSTM层的3D输出展平为2D形状。

请注意,最好使用LSTM layerdropoutrecurrent_dropout自变量,而不是直接将Dropout层用于循环层。

答案 1 :(得分:0)

除了@todays答案: 似乎您只想使用return_sequences将其串联成一个密集层。如果您还没有尝试使用return_sequeunces = False进行尝试,那么我建议您这样做。 return_sequences的主要目的是堆栈LSTMS或进行seq2seq预测。就您而言,仅使用LSTM就足够了。