Как спрогнозировать шаги для нескольких целей в кератах - PullRequest
0 голосов
/ 05 апреля 2020

Я пытаюсь предсказать многоэтапный подход для нескольких целей, используя LSTM. Мне удалось предсказать многоэтапный процесс для одной цели, используя приведенный ниже фрагмент, имеющий функции 4 временного шага и 4 для прогнозирования шагов 3 в будущем для одной цели.

multi_step_model = tf.keras.models.Sequential()
multi_step_model.add(tf.keras.layers.LSTM(9,
                                          return_sequences=True,
                                          input_shape= (4,4) ))
multi_step_model.add(tf.keras.layers.Dropout(0.2))
multi_step_model.add(tf.keras.layers.LSTM(6,   return_sequences=True,activation='relu'))
multi_step_model.add(tf.keras.layers.Dropout(0.2))
multi_step_model.add(tf.keras.layers.LSTM(6,  return_sequences=True, activation='relu'))
multi_step_model.add(tf.keras.layers.Dropout(0.2))
multi_step_model.add(tf.keras.layers.LSTM(6, activation='relu'))
multi_step_model.add(tf.keras.layers.Dense(3))

multi_step_model.compile(optimizer=tf.keras.optimizers.RMSprop(), loss='mse')

сейчас я пытаюсь предсказать 3 шагов в будущем для 2 целей. Я попытался multi_step_model.add(tf.keras.layers.Dense(6)) и изменил форму после этого, но я продолжаю получать ошибку ValueError: Dimensions must be equal, but are 6 and 2 for 'loss/dense_5_loss/SquaredDifference' (op: 'SquaredDifference') with input shapes: [?,6], [?,3,2].

это пример ввода

  tf.Tensor(
    [[0.16452622 0.16847719 0.         0.        ]
     [0.08228646 0.1512937  0.         0.        ]
     [0.         0.13667786 0.         0.        ]
     [0.53878485 0.23721114 0.         0.        ]], shape=(4, 4), dtype=float64)

и вывода

tf.Tensor(
[[0.56759912 0.        ]
 [0.59277075 0.15346632]
 [0.57964788 0.12541971]], shape=(3, 2), dtype=float64)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...