【问题标题】:Why in ConvLSTM when setting return_sequence = False you get an error?为什么在 ConvLSTM 中设置 return_sequence = False 时会出错?
【发布时间】:2018-10-22 02:52:14
【问题描述】:

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

查看模型摘要 Model summary

模型在我在第一个 ConvLSTM 层设置 return_sequence = True 后运行,但如果我设置 return_sequence = False 程序将不会运行

ConvLSTM最后一层第二部分return_sequence=False时,输出维度从5变为4,timestep维度消失,为什么会这样?

【问题讨论】:

    标签: python machine-learning keras


    【解决方案1】:

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

    如果 return_sequence 为 false,则表示 LSTM 层只会返回最终输出,不再是时间序列。所以维度会减一。对于您的示例,它将从 5 更改为 4。并且由于下一层的输入不再是时间序列,因此下一层不能再是 RNN。

    【讨论】:

      【解决方案2】:

      设置参数return_sequence = False时,之后只返回一个向量,不满足下一层的输入维度要求。这会导致程序无法运行。当您选择 true 时,将返回一个序列,这样您的时间步长维度就不会消失。

      【讨论】:

      • 表示要使用Convlstm,第一层Convlstm必须设置return_sequence = True才能运行实验。例如,我想通过设置 return_sequence=False 和 stateful=True 堆叠两个 Convlstm 层来创建一个模型,该模型不会运行
      猜你喜欢
      • 1970-01-01
      • 2014-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-10
      • 2013-10-17
      • 2016-02-06
      • 2010-09-14
      相关资源
      最近更新 更多