您的第二个LSTM层还返回序列,默认情况下,Dense层将内核应用于每个时间步并生成一个序列:
# (bs, 45, 2)model.add( LSTM( 512, input_shape=(45, 2), return_sequences=True))# (bs, 45, 512)model.add( LSTM( 512, return_sequences=True))# (bs, 45, 512)model.add( (Dense(1)))# (bs, 45, 1)
因此,您的输出就是shape
(bs, 45,1)。要解决该问题,您需要
return_sequences=False在第二个LSTM层中进行设置,以压缩序列:
# (bs, 45, 2)model.add( LSTM( 512, input_shape=(45, 2), return_sequences=True))# (bs, 45, 512)model.add( LSTM( 512, return_sequences=False)) # SET HERE# (bs, 512)model.add( (Dense(1)))# (bs, 1)
然后,您将获得所需的输出。注意
bs是批次大小。



