Является ли использование контрольной точки модели хорошей идеей? - PullRequest
0 голосов
/ 01 ноября 2019

У меня есть код CNN, который определяет, содержит ли изображение насилие, наркотики, ужасы или сексуальное содержание. В настоящее время я нахожусь в фазе обучения CNN и пробую различные конфигурации, чтобы найти лучшую точность с моим CNN. С этим тренингом я реализовал from keras.callbacks import ModelCheckpoint, чтобы использовать контрольные точки во время тренировки. Я использую обратные вызовы, подобные этому:

checkpoint = ModelCheckpoint(WEIGHTS_PATH, monitor='val_acc', verbose=1, save_best_only=True, mode='max')
model.fit_generator(training_set,
                    steps_per_epoch=3000,
                    epochs = 10,
                    validation_data = test_set,
                    validation_steps = 300,
                    callbacks = [checkpoint])

Таким образом, при каждой итерации эпохи эпохи с наибольшим значением val_acc будут сохраняться в файле .hdf5. Мой вопрос: это хорошая практика? или это хороший способ кодировать CNN? Я имею в виду, что даже если эпохи не закончены, эпоха, которая дала самый высокий val_acc, будет единственной сохраненной, и любая другая итерация с более низким val_acc игнорируется. Я в некотором роде новичок в CNN, поэтому я хочу узнать как можно больше, чтобы я смог добиться хорошего CNN.

1 Ответ

0 голосов
/ 01 ноября 2019

Целью точности проверки является оценка того, как ваша модель обобщается на невидимых данных. Поэтому, когда вы сохраняете контрольные точки с наилучшей точностью проверки, происходит то, что вы сохраняете вес (тот, который выучен в ходе обучения), который лучше всего предсказывает результаты для невидимых данных. Таким образом, сохраняя несколько контрольных точек, вы можете использовать эти контрольные точки при тестировании модели с тестовыми данными (которые могут быть взяты, например, из сценария использования в реальном времени), и выбрать модель, которая хорошо работает с вашими тестовыми данными

Надеждаэто помогает

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