为什么在ConvLSTM中设置return_sequence = False时会收到错误消息?

时间:2018-10-22 02:52:14

标签: python machine-learning keras

我尝试通过附加的三层ConvLSTM进行建模,但是当我在第一个ConvLSTM中进行设置时,return_sequence = False程序将无法运行。

查看型号摘要 Model summary

在第一个ConvLSTM层中设置return_sequence = True之后,模型运行,但是如果我设置return_sequence = False,则程序将无法运行

ConvLSTM最后一层的第二部分,当return_sequence = False时,输出尺寸从5变为4,而时间步长消失了,为什么会这样?

2 个答案:

答案 0 :(得分:1)

如果return_sequence为true,则表示LSTM层将返回输出的完整序列,而不仅仅是最终输出。因此,下一层的输入仍然是时间序列,这也意味着下一层必须是RNN才能处理时间序列。

如果return_sequence为false,则表示LSTM层将仅返回最终输出,不再是时间序列。因此尺寸将减小一。对于您的示例,它将从5更改为4。并且由于下一层的输入不再是时间序列,因此下一层一定不再是RNN。

答案 1 :(得分:0)

设置参数 .tabs { overflow-x: hidden !important; } .tabs .indicator { background-color: blue !important; } 时,此后仅返回一个向量,该向量不满足下一层的输入尺寸要求。这将导致程序无法运行。当您选择true时,将返回一个序列,以便您的时间步维不会消失。