Keras Sequential - ValueError: Ошибка при проверке цели: ожидается, что плотность_3 будет иметь форму (нет, 45), но получен массив с формой (2868700, 1) - PullRequest
0 голосов
/ 02 мая 2018

Я пытаюсь создать простую глубокую нейронную сеть с использованием API keras, но получаю следующую ошибку:

Traceback (most recent call last):
  File "C:/Users/Ali J/PycharmProjects/SPECOM/1dcnn_experiment.py", line 86, in <module>
    model.fit(trainX, trainY)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\models.py", line 960, in fit
    validation_steps=validation_steps)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 1574, in fit
    batch_size=batch_size)
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 1411, in _standardize_user_data
    exception_prefix='target')
  File "C:\ProgramData\Anaconda3\lib\site-packages\keras\engine\training.py", line 153, in _standardize_input_data
    str(array.shape))
ValueError: Error when checking target: expected dense_3 to have shape (None, 45) but got array with shape (2868700, 1)

это мой код Python:

model = Sequential()
model.add(Dense(512, activation='relu', input_shape=trainX.shape[1:]))
model.add(Dropout(0.25))
model.add(Dense(1024, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(len(set(trainY)), activation='softmax'))
model.compile(loss='categorical_crossentropy', optimizer=Adam(lr=1e-4), metrics=["accuracy"])
model.fit(trainX, trainY)

#trainX.shape = (2868700, 57)
#trainY.shape = (2868700,)

1 Ответ

0 голосов
/ 02 мая 2018

Вам необходимо преобразовать ваши цели (trainY) в категориальную форму, то есть в горячую форму.

Вы можете использовать эту функцию keras:

keras.utils.to_categorical(y, num_classes=None)

Преобразует вектор класса (целые числа) в двоичную матрицу классов.

например. для использования с категориальной_кросентропией.

Аргументы

  • y: вектор класса для преобразования в матрицу (целые числа от 0 до num_classes).
  • num_classes: общее количество классов.

Returns

Двоичное матричное представление ввода.

Ссылка на соответствующую часть документации Keras.

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