ValueError: фигуры (Нет, 1) и (Нет, 3) несовместимы.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 ValueError: фигуры (Нет, 1) и (Нет, 3) несовместимы.

Сообщение Anonymous »

У меня есть трехмерный набор данных аудиофайлов, где X.shape равен (329,20,85). Я хочу, чтобы работала простая базовая модель, поэтому, пожалуйста, не придирайтесь и решайте только текущую проблему. Вот код:

Код: Выделить всё

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.summary()

Код: Выделить всё

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...
Для этого я проследил за этим сообщением и обновил Tensorflow до последней версии, но проблема не устранена. Этот пост совершенно не имеет отношения к теме и крайне ненадежен. Этот пост, хотя и немного релевантный, некоторое время остается без ответа.
Обновление 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


Обновление 2.0:
Я сразу закодировал буквы Y и решил проблему с формой. Но теперь приведенный выше вывод с сохраняется. Любая помощь с этим? Или мне следует опубликовать для этого новый вопрос? Спасибо за помощь.
Как мне действовать или что мне следует изменить?

Подробнее здесь: https://stackoverflow.com/questions/615 ... compatible
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»