Keras 为什么在堆叠RNN中返回序列?

Keras 为什么在堆叠RNN中返回序列?,keras,sequence,lstm,rnn,Keras,Sequence,Lstm,Rnn,堆叠RNN时,必须在Keras中将return_sequences参数设置为True 比如在Keras lstm1 = LSTM(1, return_sequences=True)(inputs1) lstm2 = LSTM(1)(lstm1) 为每个堆叠的RNN层保留输入空间的维度有些直观,但是,我并不完全相信 有人能(从数学上)解释原因吗 谢谢。重复层的输入形状为: (序列数、时间步长、输入功能) 对于重复出现的层,这是绝对必要的,因为只有在存在时间步长的情况下才能出现任何重复出现 现

堆叠RNN时,必须在Keras中将
return_sequences
参数设置为
True

比如在Keras

lstm1 = LSTM(1, return_sequences=True)(inputs1)
lstm2 = LSTM(1)(lstm1)
为每个堆叠的RNN层保留输入空间的维度有些直观,但是,我并不完全相信

有人能(从数学上)解释原因吗


谢谢。

重复层的输入形状为:

  • (序列数、时间步长、输入功能)
对于重复出现的层,这是绝对必要的,因为只有在存在时间步长的情况下才能出现任何重复出现

现在,比较每种情况下重复层的“输出”:

  • 使用
    return\u sequences=True
    -
    (序列数、时间步长、输出功能)
  • 使用
    return\u sequences=False
    -
    (序列数量、输出功能)
如果没有
return\u sequences=True
,则会消除时间步长,因此无法将其输入到循环层中,因为没有足够的维度,而最重要的维度是
time\u steps
不存在