Код: Выделить всё
model = tf.keras.models.Sequential()
model.add(tf.keras.layers.LSTM(32, return_sequences=True, stateful=False, input_shape = (20,85,1)))
model.add(tf.keras.layers.LSTM(20))
model.add(tf.keras.layers.Dense(nb_classes, activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer='adam', metrics=["accuracy"])
model.summary()
print("Train...")
model.fit(X_train, y_train, batch_size=batch_size, nb_epoch=50, validation_data=(X_test, y_test))
Код: Выделить всё
ValueError: Shapes (None, 1) and (None, 3) are incompatible
Код: Выделить всё
Model: "sequential_13"
_________________________________________________________________
Layer (type) Output Shape Param #
=================================================================
lstm_21 (LSTM) (None, 20, 32) 15104
_________________________________________________________________
lstm_22 (LSTM) (None, 20) 4240
_________________________________________________________________
dense_8 (Dense) (None, 3) 63
=================================================================
Total params: 19,407
Trainable params: 19,407
Non-trainable params: 0
_________________________________________________________________
Train...
Обновление 1.0:
Я уверен, что проблема как-то связана с последним слоем Dense, где я передаю nb_classes как 3, поскольку я классифицирую 3 категории в y.
Поэтому я изменил nb_classes плотного слоя равным 1, который запустил модель и выдал мне этот результат, который, я уверен, неверен.
Код: Выделить всё
Train...
9/9 [==============================] - 2s 177ms/step - loss: 0.0000e+00 - accuracy: 0.1520 - val_loss: 0.0000e+00 - val_accuracy: 0.3418
Я сразу закодировал буквы Y и решил проблему с формой. Но теперь приведенный выше вывод с сохраняется. Любая помощь с этим? Или мне следует опубликовать для этого новый вопрос? Спасибо за помощь.
Как мне действовать или что мне следует изменить?
Подробнее здесь: https://stackoverflow.com/questions/615 ... compatible