Keras的EarlyStopping与ModelCheckpoint

from keras.callbacks import EarlyStopping

keras的callbacks中已经实现了EarlyStopping类,需要指定监测的指标,多少轮不提高,监测指标是越大越好还是越小越好,信息输出模式

early_stopping = EarlyStopping(monitor='roc_auc_val', patience=200, verbose=2, mode='max')

200次epoch AUC不提高则停止,这里的monitor,指标是前面的AUC metric类实现的,on_epoch_end的实例方法中有个参数logs={},logs['roc_auc_val'] = XXX,为logs添加了一对key-value

所以fit中callbacks参数list中[auc实例,early_stopping ] auc实例要写在前面


from keras.callbacks import ModelCheckpoint
因为earlystopping了,此时的模型还是训练停止时候的,并不是metric最好时候的,这个时候要使用一个ModelCheckpoint类,
checkpoint = ModelCheckpoint('cnn_2A.model',monitor='roc_auc_val',mode='max',save_best_only=True,verbose=1)
第一个参数存储地址
第二个参数监测的指标
第三个阐述指标的大小与好坏关系
第四个是监测指标一旦有改进就会进行存储,下一次会overwrite上一次,最后的model不会被overwritten

这个checkpoint实例也是加到callbacks list中,根据输出的logs,我发现是一旦有提升就会存储一次(增加磁盘IO?,可以把参数存入内存,不断替代,停止的时候再存储?)



留言

熱門文章