Прогнозирование - это матрица вместо вектора - PullRequest
0 голосов
/ 05 августа 2020

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

  in_seq = Input(shape=(seq_len, 1))
  x = time_embedding(in_seq)
  x = Concatenate(axis=-1)([in_seq, x])
  x = Attention()([x,x,x])
  out = Dense(1, activation='linear')(x)
  opt = tf.keras.optimizers.Adam(lr=0.01, decay=1e-6)

  model = Model(inputs=in_seq, outputs=out)
  model.compile(loss='mse', optimizer=opt)

когда я звоню:

model.fit(train_x, train_y, batch_size=128, epochs=1)

, она обучается и измеряет потери

1315/2409 [===============>..............] - ETA: 1s - loss: 0.0109

но, когда я делаю прогноз, форма такая же, как и набор проверок, который нужно прогнозировать, а не целевой набор.

prediction = model.predict(validation_x)
prediction.shape

(17130, 60, 1)

validation_y.shape

(17130,)

Если прогноз дает матрицу, почему он все еще может вычислить ошибка при обучении с целевым набором, являющимся вектором?

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