LSTM с несколькими входными последовательностями и соответствующими несколькими выходными последовательностями - PullRequest
0 голосов
/ 21 февраля 2019

У меня есть проблема, связанная с изменением формы входных / выходных данных для LSTM.Хотя есть много постов, посвященных этим вопросам, я не смог найти правильное решение для этого.Приношу свои извинения, если ошибка совершенно очевидна - я новичок в области глубокого обучения.

Моя проблема заключается в следующем: я выполнил симуляцию, которая привела к нескольким последовательностям зависящих от времени данных, которые я хотел бы передать в LSTM-сеть.Данные (очень упрощенные) выглядят следующим образом:

X=[[[8, 0, 18, 10]
    [9, 0, 20, 7]
    [7, 0, 17, 12]]
   [[7, 0, 31, 8]
    [5, 0, 22, 9]
    [7, 0, 17, 12]]]

То есть у меня есть две последовательности с тремя временными шагами в каждой и 4 характеристиками за временной шаг.Следовательно, форма X (2,3,4).Соответственно, то, что я хотел бы предсказать, выглядит следующим образом

y=[[[10]
    [7]
   [12]]
   [[8]
    [9]
   [12]]]

и имеет форму (2,3,1).То есть точка данных [8,0,18,10] должна прогнозировать [10], за которой следует точка [9,0,20,7], которая должна прогнозировать 7 и так далее.Моя модель выглядит следующим образом:

model.add(LSTM(input_shape=(X.shape[1], X.shape[2]), return_sequences=True))
model.add(Dense(50, activation='tanh'))
model.add(Dense(1, activation='tanh'))

Хотя это работает без ошибок, мой результат довольно плохой.Скорее всего, я думаю, что это связано с корректным изменением выходного вектора.Кроме того, я не совсем уверен, должен ли return_sequence быть истинным или нет.Если установлено значение False, я получаю сообщение об ошибке «Ожидается, что плотность_2 имеет 2 измерения, но получен массив с формой (2,3,1)».Не совсем уверен в этом.Я также изучал моделирование Seq2Seq, так как я пытаюсь предсказать последовательность, основанную на последовательности, но я не смог найти обходной путь.Кто-нибудь может помочь?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...