Я пытаюсь настроить действительно простую модель keras в тензорном потоке. У меня есть переменные X_train
и Y_train
numpy .ndarray размером (846, 30, 373)
и (846, 1, 1)
соответственно. Модель выглядит следующим образом:
visible = tf.keras.layers.Input(shape=np.shape(X_train)[1:3])
hidden = tf.keras.layers.LSTM(units=32)(visible)
dense = tf.keras.layers.Dense(units=1)(hidden)
model_logic = tf.keras.models.Model(inputs=visible, outputs=dense)
model_logic.compile(optimizer=tf.keras.optimizers.RMSprop(learning_rate=learning_rate), loss='mae')
model_logic.fit(X_train, Y_train, epochs=10)
Последняя строка выдает следующее InvalidArgumentError
:
InvalidArgumentError: data[0].shape = [3] does not start with indices[0].shape = [2]
[[{{node RMSprop/gradients_5/loss_7/dense_8_loss/Mean_grad/DynamicStitch}}]] [Op:__inference_keras_scratch_graph_16435]
Я полагаю, что я путаю и пропускаю входы (X_train
и Y_train
) с формой, которую Керас не ожидает, но я не могу понять, почему это так. Что я делаю неправильно?
Редактировать: model_logic.summary()
печатает следующее:
Layer (type) Output Shape Param #
=================================================================
input_9 (InputLayer) [(None, 30, 373)] 0
_________________________________________________________________
lstm_6 (LSTM) (None, 32) 51968
_________________________________________________________________
dense_6 (Dense) (None, 1) 33
=================================================================
Total params: 52,001
Trainable params: 52,001
Non-trainable params: 0
_________________________________________________________________
, где фигуры кажутся в порядке с теми из моих X_train
и Y_train
. Или должна ли выходная форма InputLayer быть (None, 30, 373)
вместо [(None, 30, 373)]
? И если да, то откуда взялись дополнительные []
?