在堆叠RNN时,必须在Keras中将return_sequences
参数设置为True
。
例如在Keras,
lstm1 = LSTM(1, return_sequences=True)(inputs1)
lstm2 = LSTM(1)(lstm1)
为每个堆叠的RNN图层保留输入空间的维度有点直观,但是,我并不完全相信。
有人(数学)可以解释原因吗?
感谢。
答案 0 :(得分:3)
循环图层的输入形状为:
(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
不是当下。