Как стабилизировать потери при использовании кератов для классификации изображений - PullRequest
0 голосов
/ 23 октября 2019

Я использую керасы для выполнения классификации изображений, у меня есть 10 классов и ~ 900 изображений каждый, я использовал VGG 16 и построил поверх этой маленькой сети

model = Sequential()
model.add(Flatten(input_shape=train_data.shape[1:]))
model.add(Dense(256, activation='relu'))
model.add(Dropout(0.5))
model.add(Dense(num_classes, activation='softmax'))

, я тренируюсь с 50 epoch

model.compile(optimizer='rmsprop',
                  loss='categorical_crossentropy', metrics=['accuracy'])

Я получаю указанные ниже точность и потери

[INFO] accuracy: 94.72%
[INFO] Loss: 0.45841544931342115

, но пока не уверен, как стабилизировать потери, если я увеличу эпохи или будут другие параметры, которые мне нужно изменить?

accuracy and loss

1 Ответ

0 голосов
/ 23 октября 2019

Из-за того, что потери val колеблются с первых эпох, я думаю, что вы забыли заморозить основную модель VGG и просто обучили добавлению слоев Dense Stack. Действительно, лучше использовать 2D Global Ave Polling, а не выравнивать.

Если проблема не решается, попробуйте использовать более эффективные предварительно обученные архитектуры CNN, такие как MobileNet V2 или Xception

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