参考
http://keras-cn.readthedocs.io/en/latest/other/callbacks/
Keras.callbacks.ModelCheckpoint (filepath,monitor=’val_loss’,verbose=0,save_best_only=False, save_weights_only=False, mode=’auto’, period=1)
该回调函数将在每个epoch后保存模型到filepath,filepath可以是格式化的字符串,里面的占位符将会被epoch值和传入on_epoch_end的logs关键字所填入。
例如:filepath若为weights.{epoch:02d-{val_loss : . 2f}}.hdf5,则会生成对应epoch和验证集loss的多个文件。
参数
- filename:字符串,保存模型的路径
- monitor:需要监视的值
- verbose:信息展开模式,0或1
- save_best_only:当设置为True时,将只保存在验证集上性能最好的模型
- mode:‘auto’,’min’,’max’之一,在save_best_only=True时决定性能最佳模型的评判准则,例如,当监测值为val_acc时,模式应为max,当检测值为val_loss时,模式应为min。在auto模式下,评价准则由被检测值的名字自动推断。
- save_weights_only:若设置为True,则只保存模型权重,否则将保存整个模型(包括模型结构,配置信息等)
- period:CheckPoint之间的间隔的epoch数
keras.callbacks.LearningRateScheduler(schedule):
该回调函数是学习率调度器。
参数
- schedule:函数,该函数以epoch号为参数(从0算起的整数),返回一个新学习率(浮点数)
keras.callbacks.ReduceLROnPlateau(monitor=’val_loss’, factor=0.1, patience=1.0, verbose=0, mode=’auto’, epsilon=0.0001, cooldown=0, min_lr=0)
当评价指标不再提升时,减少学习率。当学习停滞时,减少2倍或10倍的学习率常常能获得较好的效果。该回调函数检测指标的情况,如果在patience个epoch中看不到模型性能提升,则减少学习率
参数
- monitor:被监测的量
- factor:每次减少学习率的因子,学习率将以lr=lr*factor的形式减少
- patience:当patience个epoch过去而模型性能不提升时,学习率减少的动作会被触发
- mode:‘auto’,‘min’,‘max’之一,在min模式下,如果检测值不再降低,则触发学习率减少。在max模式下,当检测值不再上升则触发学习率减少。
- epsilon:阈值,用来确定是否进入检测值的“平原区“
- cooldown:学习率减少后,会经过cooldown个epoch才重新进行正常操作
- min_lr:学习率的下限