Я запускаю сверточную нейронную сеть (this one) на кучу моих собственных данных изображения с формой (количество каналов, высота, ширина) = (3, 30, 30)). У меня есть 76960 учебных образцов, 19240 тестовых образцов и 39 классов. Последние несколько блоков кода являются:Точность валидации сверточной нейронной сети Keras не меняется
# Train the model using Stochastic grad descent + momentum
sgd = SGD(lr=0.01, decay=1e-6, momentum=0.9, nesterov=True)
cnn.compile(loss='categorical_crossentropy',
optimizer=sgd,
metrics=['accuracy'])
batch_size = 128
nb_epoch = 50
cnn.fit(x_train, y_train,
batch_size = batch_size,
nb_epoch = nb_epoch,
validation_data=(x_test, y_test),
shuffle=True)
потеря Обучения и изменение точности на протяжении эпох, но точность проверки только изменений по сравнению с 1-го по 2-й эпохе (от 0.3387 до 0.3357), а затем он остается на 0.3357 все путь.
Я попытался различного размером партии (32, 128 или 256), learning rate (от 1e-6 до 0,1, при умножении на 10 вдоль пути) и пытался с или без data normalization (основного среднего сдвига и деления по sd). Ни одна из них не сработала.
Вы тестируете другие классификаторы? если да, то какая лучшая точность вы получаете по разному классификатору? – Masoud
Как сбалансированы ваши классы? Любой класс, у которого больше образцов, чем у других? –
1. Да, я пробовал другие классификаторы. 2. Нет, 2 из классов сильно перепредставлены, занимая около 34% и 35% от общей численности населения. Однако обратите внимание, что мой вопрос на самом деле не «как получить метод X, чтобы точно классифицировать мои данные». Я не уверен, что ярлыки, которые мне дали, даже правильны, поэтому неспособность классифицировать все равно может быть точным результатом, который отражает реальность. Меня просто беспокоит техническая ошибка. – AndreyIto