我打算将时间步的所有输出从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)
您可以使用Flatten
图层将LSTM图层的3D输出展平为2D形状。
作为旁注,最好使用dropout
的recurrent_dropout
和LSTM layer参数,而不是直接使用Dropout
层和复发层。
除了@todays回答:似乎你想使用return_sequences将它连接成一个密集的层。如果您还没有尝试使用return_sequeunces = False,我建议您这样做。 return_sequences的主要目的是堆叠LSTMS或进行seq2seq预测。在您的情况下,只需使用LSTM即可。