В настоящее время я работаю над моделью Variational Autoencoder, чтобы предсказать следующую последовательность кадров в наборе изображений. У меня есть данные: 5 входных изображений и 5 выходных изображений, каждая группа из 5 изображений представляет собой последовательность. Однако, просматривая в Интернете, я нашел модель, которая может помочь улучшить мои прогнозы. Я разработал последовательную модель, сложив слои, к сожалению, я не получил никаких результатов (даже с 1500 эпохами обучения). Затем я хочу изменить свою модель, как показано на фотографии.
Модель автоэнкодера
Если я создаю новую модель (как та, что на фотографии, я присоединено), в этом случае каждый кадр будет проходить параллельно, проходя его через сверточные слои, а затем слои LSTM, для окончательного соединения выходных состояний между каждым уровнем LSTM, что для этого случая будет 5, если Я не ошибаюсь.
Мой вопрос: как я могу ввести покадровые данные в модель? Мои данные обычно имеют следующую форму:
(num_sequences, num_frame_per_sequence = 5, W = 80, H = 80, Chanel = 1).
Я понимаю, что можно использовать:
Model.fit(inputs = [inp1, inp2, ...], outputs..., ...)
Но, как я уже говорил, мои данные представлены в виде 5-мерного вектор. Есть ли способ взять только последние три измерения? Затем в этом случае возьмите кадры в каждой последовательности. Я думаю, может быть, преобразовать мои данные в тензор, а затем сделать tf.unstack()
.