Я следую примеру Keras Mnist для начинающих.Я попытался изменить метки, чтобы они соответствовали моим собственным данным, которые имеют 3 различные текстовые классификации.Я использую "to_categorical" для достижения этой цели.Форма выглядит правильно для меня, но «подгонка» вызывает ошибку:
train_labels = keras.utils.to_categorical(train_labels, num_classes=3)
print(train_images.shape)
print(train_labels.shape)
model = keras.Sequential([
keras.layers.Flatten(input_shape=(28, 28)),
keras.layers.Dense(128, activation=tf.nn.relu),
keras.layers.Dense(3, activation=tf.nn.softmax)
])
model.compile(optimizer='adam',
loss='sparse_categorical_crossentropy',
metrics=['accuracy'])
model.fit(train_images, train_labels, epochs=5)
(7074, 28, 28)
(7074, 3)
Блочная цитата Трассировка блочной цитаты (последний вызов был последним): Файл "C: /Users/lawrence/PycharmProjects/tester2019/KeraTest.py", строка 131, в файле model.fit (train_images, train_labels, epochs = 5) Файл "C: \Users \ lawrence \ PycharmProjects \ tester2019 \ venv \ lib \ site-packages \ tenorflow \ python \ keras \ engine \ training.py ", строка 1536, в файле fit validation_split = validation_split) Файл" C: \ Users \ lawrence \ PycharmProjects \ tester2019 "\ venv \ lib \ site-packages \ tenorflow \ python \ keras \ engine \ training.py ", строка 992, в _standardize_user_data class_weight, batch_size) Файл" C: \ Users \ lawrence \ PycharmProjects \ tester2019 \ venv \ lib \ site- "packages \ensorflow \ python \ keras \ engine \ training.py ", строка 1154, в _standardize_weights exception_prefix = 'target') Файл" C: \ Users \ lawrence \ PycharmProjects \ tester2019 \ venv \ lib \ site-packages \ tenorsflow \ python\ keras \ engine \ training_utils.py ", строка 332, в standardize_input_data 'но получил массив с формой' + str (data_shape)) ValueError: Ошибка при проверке цели: ожидается, что плотность_1 имеет форму (1,), но получил массив с формой (3,)