У меня есть код 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.