У меня есть многослойный автоэнкодер LSTM, чей вход представляет собой 20-шаговый временной ряд с 4 атрибутами.
model = Sequential()
model.add(CuDNNLSTM(128, input_shape=(20, 4), return_sequences=True)) # encode 1
model.add(CuDNNLSTM(256, return_sequences=True)) # encode 2
model.add(CuDNNLSTM(512, return_sequences=True)) # encode 3 -- our final vector
model.add(CuDNNLSTM(256, return_sequences=True)) # decode 1
model.add(CuDNNLSTM(128, return_sequences=True)) # decode 2
model.add(TimeDistributed(Dense(4)))
model.compile(optimizer='adam', loss='mse')
Когда я устанавливаю выходной слой для кодирования слоя # 3, форма вывода равна (1,20,512).
Как получить вектор формы (1,512) из этого слоя для использования в качестве усвоенного представления входного временного ряда?
Прав ли я, говоря, чтоshape (1,20,512), потому что слой производит один выходной вектор для каждого временного шага, и в этом случае я должен использовать последний выходной вектор?