Python 为什么在ConvLSTM中设置return\u sequence=False时会出现错误?

Python 为什么在ConvLSTM中设置return\u sequence=False时会出现错误?,python,machine-learning,keras,Python,Machine Learning,Keras,我已经尝试通过附加三层ConvLSTM来建模,但是当我在第一个ConvLSTM中设置return\u sequence=False时,程序将不会运行 请参见模型摘要 在第一个ConvLSTM层中设置return\u sequence=True后,模型运行,但如果设置return\u sequence=False,程序将不会运行 ConvLSTM最后一层的第二部分当return\u sequence=False时,输出维度从5变为4,timestep维度消失,为什么会发生这种情况?当设置参数re

我已经尝试通过附加三层ConvLSTM来建模,但是当我在第一个ConvLSTM中设置return\u sequence=False时,程序将不会运行

请参见模型摘要

在第一个ConvLSTM层中设置return\u sequence=True后,模型运行,但如果设置return\u sequence=False,程序将不会运行


ConvLSTM最后一层的第二部分当return\u sequence=False时,输出维度从5变为4,timestep维度消失,为什么会发生这种情况?

当设置参数
return\u sequence=False
时,之后只返回一个向量,不满足下一层的输入尺寸要求。这会导致程序无法运行。当您选择true时,将返回一个序列,以便您的timestep维度不会消失。

如果return\u sequence为true,则意味着LSTM层将返回输出的完整序列,而不仅仅是最终输出。所以下一层的输入仍然是时间序列,这也意味着下一层必须是RNN来处理时间序列


如果return_sequence为false,则意味着LSTM层将只返回最终输出,而不再是时间序列。因此,维数将减少一。例如,它将从5更改为4。因为下一层的输入不再是时间序列,所以下一层不能再是RNN

这意味着要使用Convlstm,即Convlstm的第一层,我们必须设置return_sequence=True才能运行实验。例如,我想通过设置return_sequence=False和stateful=True来堆叠两个Convlstm层来创建一个模型,该模型将不会运行