Tensorflow InvalidArgumentError при вызове model.fit - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь настроить действительно простую модель 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)]? И если да, то откуда взялись дополнительные []?

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