Я хочу предсказать классы изображений. Классы хранятся в Label-Array: array([0., 0., 1., ..., 2., 2., 0.], dtype=float32)
У меня 3 класса (0,1 и 2)
Моя модель выглядит так:
model = Sequential([
Conv2D(16, 3, padding='same', activation='relu',
input_shape=(64, 64 ,3)),
MaxPooling2D(),
Dropout(0.5),
Conv2D(32, 3, padding='same', activation='relu'),
MaxPooling2D(),
Conv2D(64, 3, padding='same', activation='relu'),
MaxPooling2D(),
Dropout(0.5),
Flatten(),
Dense(512, activation='relu'),
Dense(256),
Dense(3, activation = 'relu')
])
Когда я использую форму из 3 для последнего плотного слоя, потери и точность вообще не меняются во время тренировки. Когда я увеличиваю форму до 5 для последнего плотного слоя, тренировка работает нормально. Почему не работает с фигурой тройки? В конце концов, у меня три класса.
model.compile(optimizer='adam',
loss=tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True),
metrics=['sparse_categorical_accuracy'])
history = model.fit(train_images, train_labels,
epochs=num_epochs,
validation_data=(val_images, val_labels),
callbacks = [tensorboard])
Я также тестировал оптимизатор sgd с такими же результатами