Я новичок в тензорном потоке и пытаюсь построить многомерную (две функции для каждого временного шага) многошаговой (прогноз 12 временных шагов в будущем) прогнозной модели.
Я создал набор данных тензорного потока чтобы передать его моей модели: Когда я печатаю форму моего набора данных, я нахожу следующее:
<PrefetchDataset shapes: ((None, None, 2), (None, None)), types: (tf.float32, tf.float32)>
Вот что я понимаю:
(None, None, 2) = Input tensor "features" : (batchSize, Timesteps input, Features by time step)
(None, None) =Output Tensor "label" (batchSize, future forecsated time steps )
Я слежу за Создание моей модели следующим образом:
keras.backend.clear_session()
tf.random.set_seed(42)
np.random.seed(42)
model = keras.models.Sequential([
keras.layers.SimpleRNN(50),
keras.layers.SimpleRNN(100),
keras.layers.Dense(12),
])
optimizer = keras.optimizers.SGD(lr=1.5e-6, momentum=0.9)
model.compile(loss="mae",
optimizer=optimizer,
metrics=["mae"])
Когда я подгоняю модель
model.fit(train_set, epochs=5,
validation_data=valid_set)
У меня появляется следующая ошибка:
ValueError: Input 0 of layer simple_rnn_1 is incompatible with the layer: expected ndim=3, found ndim=2. Full shape received: [None, 50]
Я понимаю, что слой SimpleRNN ожидает 3-х мерный тензор. Но я думаю, что мой вклад имеет это измерение. Большое спасибо за помощь. Если вам нужно, чтобы я поделился с вами тем, как я создаю свой набор данных, я бы с удовольствием это сделал.