使用模型检查点是个好主意吗?

2024-05-19 01:50:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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])

因此,每次迭代epoch时,具有最高值acc的epoch都将保存到一个.hdf5文件中。我的问题是,这种做法好吗?或者这是给CNN编代码的好方法?我的意思是,即使没有完成历元,产生最高值的历元将是唯一保存的历元,而具有较低值的历元将被忽略。我是CNN的新人,所以我想知道尽可能多的事情,以便我能够成为一个好的CNN


Tags: 代码图像内容stepscnnvalidationaccset
1条回答
网友
1楼 · 发布于 2024-05-19 01:50:30

验证准确度的目的是估计模型如何在看不见的数据上推广。因此,当您以最佳的验证准确性保存检查点时,所发生的是您保存的权重(通过训练学习的权重)最能预测未知数据的结果。因此,通过保存多个检查点,您可以在使用测试数据测试模型时利用这些检查点(例如,可以从实时用例中获取),并选择与您的测试数据配合良好的模型

希望这有帮助

相关问题 更多 >

    热门问题