yolov3代码涉及到的Keras.callbacks类

官网解释

Keras.callbacks

回调函数是一组在训练的特定阶段被调用的函数集,你可以使用回调函数来观察训练过程中网络内部的状态和统计信息。通过传递回调函数列表到模型的.fit()中,即可在给定的训练阶段调用该函数集中的函数。

ModelCheckpoint:

该回调函数将在每个epoch后保存模型到filepath

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', 
verbose=0, save_best_only=False, 
save_weights_only=False, mode='auto', period=1)
  • filepath:字符串,保存模型的路径和名称。
  • monitor='val_loss':需要监视的值。默认是验证集损失。
  • verbose=0:信息展示模式,0或1。
  • save_best_only=False:当设置为True时,将只保存在验证集上性能最好的模型。
  • save_weights_only=False:若设置为True,则只保存模型权重,否则将保存整个模型(包括模型结构,配置信息等)。
  • mode:‘auto’,‘min’,‘max’之一,在save_best_only=True时决定性能最佳模型的评判准则,例如,当监测值为val_acc时,模式应为max,当检测值为val_loss时,模式应为min。在auto模式下,评价准则由被监测值的名字自动推断。
  • period=1:CheckPoint之间的间隔的epoch数。(epoch指整个数据集(所有batch全部更新完1次)被训练的轮次)。

ReduceLROnPlateau:

当学习停滞时,减少2倍或10倍的学习率常常能获得较好的效果。该回调函数检测指标的情况,如果在patience个epoch中看不到模型性能提升,则减少学习率。学习率对模型训练的影响解释

keras.callbacks.ReduceLROnPlateau(monitor='val_loss', 
factor=0.1, patience=10, verbose=0, mode='auto', 
epsilon=0.0001, cooldown=0, min_lr=0)
  • monitor:被监测的量。默认是val_loss
  • factor:每次减少学习率(lr)的因子,学习率将以lr = lr*factor的形式被减少
  • patience:当patience个epoch过去而模型性能不提升时,学习率减少的动作会被触发
  • mode:‘auto’,‘min’,‘max’之一,如果观测值是val_loss,那么当它不再减少(对应min)时改变lr
  • epsilon:阈值,用来确定是否进入检测值的“平原区”。
  • cooldown:学习率减少后,会经过cooldown个epoch才重新进行正常操作
  • min_lr:学习率的下限

EarlyStopping:

当监测值monitor不再改善时,该回调函数将中止训练

keras.callbacks.EarlyStopping(monitor='val_loss', patience=0, 
verbose=0, mode='auto')
  • monitor:需要监视的量
  • patience:当early stop被激活(如发现loss相比上一个epoch训练没有下降),则经过patience个epoch后停止训练。
  • verbose:信息展示模式
  • mode:‘auto’,‘min’,‘max’之一,在min模式下,如果检测值停止下降则中止训练。在max模式下,当检测值不再上升则停止训练。

yolov3代码->train.py涉及到的:

ModelCheckpoint:

checkpoint = ModelCheckpoint(log_dir + 'ep{epoch:03d}-

loss{loss:.3f}-val_loss{val_loss:.3f}.h5',

        monitor='val_loss', save_weights_only=True, 

save_best_only=True, period=3)

参数解释:

  • filepath=log_dir + 'ep{epoch:03d}-loss{loss:.3f}-val_loss{val_loss:.3f}.h5'。保存的权值名字。
  • monitor='val_loss', 检测val_loss的值。
  • save_weights_only=True, 只保留模型权值
  • save_best_only=True, 只保留性能最好的模型
  • period=3。每3个epoch进行一次CheckPoint。

ReduceLROnPlateau:

    reduce_lr = ReduceLROnPlateau(monitor='val_loss', 

factor=0.1, patience=3, verbose=1)

参数解释:

  • monitor='val_loss', 监测val_loss。如果在patience个epoch中val_loss没有下降,那么改变lr。
  • factor=0.1, lr=lr*0.1
  • patience=3, 持续三个epoch。
  • verbose=1。

EarlyStopping:

early_stopping = EarlyStopping(monitor='val_loss', 

min_delta=0, patience=10, verbose=1)

参数解释:

  • monitor='val_loss', 监测值
  • min_delta=0,
  • patience=10, 如发现loss相比上一个epoch训练没有下降,则经过10个epoch后停止训练。说明模型存在过拟合问题。
  • verbose=1
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • [TOC]工欲善其事,必先利其器,要跑好模型,先要熟悉工具,这里总结下Keras里面常用的API和一些问题的处理方...
    ItchyHiker阅读 3,867评论 0 6
  • 本系列文章面向深度学习研发者,希望通过Image Caption Generation,一个有意思的具体任务,深入...
    imGeek阅读 2,050评论 0 8
  • 30秒上手 https://keras.io/#getting-started-30-seconds-to-ker...
    文均阅读 2,076评论 0 0
  • 盛秋时节,红叶飘零。自古言秋,多为伤感。余今言秋,胜似春朝。红叶似火,绿水长青。登雨母山,临雨母湖,看祖国万里河山...
    读语阅读 481评论 0 0
  • 最近几个月发生的事情都冲击着我的三观。 工作上,我怀疑自己适不适合当财务。业务部门和财务的撕逼,财务内部的各种撕逼...
    ORANGE_JUN阅读 213评论 0 0

友情链接更多精彩内容