【问题标题】:Why return sequences in stacked RNNs?为什么要在堆叠的 RNN 中返回序列?
【发布时间】:2017-12-06 12:02:02
【问题描述】:

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

例如在 Keras 中,

lstm1 = LSTM(1, return_sequences=True)(inputs1)
lstm2 = LSTM(1)(lstm1)

为每个堆叠的 RNN 层保留输入空间的维数有点直观,但是,我并不完全相信。

有人可以(数学)解释原因吗?

谢谢。

【问题讨论】:

    标签: keras sequence lstm rnn


    【解决方案1】:

    循环层的输入形状是:

    • (number_of_sequences, time_steps, input_features)。

    这对于循环层来说是绝对必要的,因为只有在有时间步长的情况下才会有任何循环。

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

    • 与return_sequences=True - (number_of_sequences, time_steps, output_features)
    • 与return_sequences=False - (number_of_sequences, output_features)

    没有return_sequences=True,你就消除了时间步长,因此,它不能被送入循环层,因为没有足够的维度,最重要的是,time_steps 不存在。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多