Keras学习笔记9——keras.callbacks

来源

回调函数使用

回调函数是一个函数的合集,会在训练的阶段中所使用。你可以使用回调函数来查看训练模型的内在状态和统计。你可以传递一个列表的回调函数(作为 callbacks 关键字参数)到 Sequential 或 Model 类型的 .fit() 方法。在训练时,相应的回调函数的方法就会被在各自的阶段被调用。

Callback

用来组建新的回调函数的抽象基类。

keras.callbacks.Callback()

属性

  • params: 字典。训练参数, (例如,verbosity, batch size, number of epochs…)。
  • model: keras.models.Model 的实例。 指代被训练模型。

被回调函数作为参数的 logs 字典,它会含有于当前批量或训练轮相关数据的键。
目前,Sequential 模型类的 .fit() 方法会在传入到回调函数的 logs 里面包含以下的数据:

  • on_epoch_end: 包括 acc 和 loss 的日志, 也可以选择性的包括 val_loss(如果在 fit 中启用验证),和 val_acc(如果启用验证和监测精确值)。
  • on_batch_begin: 包括 size 的日志,在当前批量内的样本数量。
  • on_batch_end: 包括 loss 的日志,也可以选择性的包括 acc(如果启用监测精确值)。

BaseLogger

会积累训练轮平均评估的回调函数。

keras.callbacks.BaseLogger(stateful_metrics=None)

这个回调函数被自动应用到每一个 Keras 模型上面。

参数
stateful_metrics: 可重复使用不应在一个 epoch 上平均的指标的字符串名称。 此列表中的度量标准将按原样记录在 on_epoch_end 中。 所有其他指标将在 on_epoch_end 中取平均值。

TerminateOnNaN

当遇到 NaN 损失会停止训练的回调函数。

keras.callbacks.TerminateOnNaN()

ProgbarLogger

会把评估以标准输出打印的回调函数。

keras.callbacks.ProgbarLogger(count_mode='samples', stateful_metrics=None)

参数

  • count_mode: “steps” 或者 “samples”。 进度条是否应该计数看见的样本或步骤(批量)。
  • stateful_metrics: 可重复使用不应在一个 epoch 上平均的指标的字符串名称。 此列表中的度量标准将按原样记录在 on_epoch_end 中。 所有其他指标将在 on_epoch_end 中取平均值。

History

把所有事件都记录到 History 对象的回调函数。

keras.callbacks.History()

这个回调函数被自动启用到每一个 Keras 模型。History 对象会被模型的 fit 方法返回。

ModelCheckpoint

在每个训练期之后保存模型。

keras.callbacks.ModelCheckpoint(filepath, monitor='val_loss', verbose=0, save_best_only=False, save_weights_only=False, mode='auto', period=1)

filepath 可以包括命名格式选项,可以由 epoch 的值和 logs 的键(由 on_epoch_end 参数传递)来填充。
例如:如果 filepath 是 weights.{epoch:02d}-{val_loss:.2f}.hdf5, 那么模型被保存的的文件名就会有训练轮数和验证损失。

参数

  • filepath: 字符串,保存模型的路径。
  • monitor: 被监测的数据。
  • verbose: 详细信息模式,0 或者 1 。
  • save_best_only: 如果 save_best_only=True, 被监测数据的最佳模型就不会被覆盖。
  • mode: {auto, min, max} 的其中之一。 如果 save_best_only=True,那么是否覆盖保存文件的决定就取决于被监测数据的最大或者最小值。 对于 val_acc,模式就会是 max,而对于 val_loss,模式就需要是 min,等等。 在 auto 模式中,方向会自动从被监测的数据的名字中判断出来。
  • save_weights_only: 如果 True,那么只有模型的权重会被保存 (model.save_weights(filepath)), 否则的话,整个模型会被保存 (model.save(filepath))。
  • period: 每个检查点之间的间隔(训练轮数)。

EarlyStopping

当被监测的数量不再提升,则停止

  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值