keras笔记——几个Callbacks回调函数,ModelCheckpoint,LearningRateScheduler,ReduceLROnPlateau

参考

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数
扫描二维码关注公众号,回复: 4895866 查看本文章

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:学习率的下限

猜你喜欢

转载自blog.csdn.net/WWWWWWGJ/article/details/84961602