感谢patyork在Github上回答了这个问题:
第二个LSTM层未获得预期的3D输入(形状为(batch_size,时间步长,特征)。这是因为第一个LSTM层具有(按默认值计算)return_sequences
= False,这意味着它仅输出在时间t-1处设置的最后一个要素,其形状为(batch_size,32)或2个不包含时间的尺寸。
因此,要提供一个代码示例,说明如何使用堆叠式LSTM实现多对一(return_sequences =
False)序列分类,只需确保在中间层使用return_sequences = True就是这样:
model = Sequential()model.add(LSTM(32, input_dim=64, input_length=10, return_sequences=True))model.add(LSTM(24, return_sequences=True))model.add(LSTM(16, return_sequences=True))model.add(LSTM(1, return_sequences=False))model.compile(optimizer = 'RMSprop', loss = 'categorical_crossentropy')
(没有错误)



