Я пытаюсь использовать Keras для прогнозирования одномерного временного ряда.
Модель NN выглядит как
Model: "sequential"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
conv1d (Conv1D) (None, None, 25) 150
_________________________________________________________________
lstm (LSTM) (None, None, 1024) 4300800
_________________________________________________________________
dropout (Dropout) (None, None, 1024) 0
_________________________________________________________________
lstm_1 (LSTM) (None, None, 1024) 8392704
_________________________________________________________________
dropout_1 (Dropout) (None, None, 1024) 0
_________________________________________________________________
lstm_2 (LSTM) (None, None, 1024) 8392704
_________________________________________________________________
dropout_2 (Dropout) (None, None, 1024) 0
_________________________________________________________________
lstm_3 (LSTM) (None, None, 1024) 8392704
_________________________________________________________________
dropout_3 (Dropout) (None, None, 1024) 0
_________________________________________________________________
dense (Dense) (None, None, 1) 1025
=================================================================
Total params: 29,480,087
Trainable params: 29,480,087
Non-trainable params: 0
_________________________________________________________________
Мои данные отображаются с использованием предыдущих 3 значений ряд, чтобы предсказать следующее. Таким образом, мой тестовый набор данных выглядит так:
list(dataset.as_numpy_iterator())
[array([[[ 0. ],
[ 0.02346429],
[ 0.04559132]],
[[ 0. ],
[ 0.02161974],
[ 0.13014923]],
[[ 0. ],
[ 0.10623277],
[-0.02918068]],
[[ 0. ],
[-0.12240955],
[-0.21869095]]])]
Все хорошо, но когда я передаю это в model.predict(dataset)
, выводится результат
array([[[ 0.01316399],
[ 0.03728709],
[ 0.06164959]],
[[ 0.01316399],
[ 0.03512047],
[ 0.1292857 ]],
[[ 0.01316399],
[ 0.1172413 ],
[-0.01671433]],
[[ 0.01316399],
[-0.10654409],
[-0.16395506]]], dtype=float32)
и форма для этого примера это (4, 3, 1)
Я ожидал получить только один прогноз для каждого триплета входных объектов, учитывая, что последний слой моего NN является плотным с одной единицей. Почему у меня три вывода в прогнозе для каждого учебного примера?