概述
在训练时候,我们希望在训练中有所输出和判断,而不是一直到训练结束才能实现交互,那么回调函数就是你最好的选择。本篇博文针对回调函数的功能,种类以及代码使用进行讲解
功能与种类
回调函数的用法例如下所示
- 模型检查点(model checkpointing):在训练过程中的不同时间点保存模型的当前权重。
- 提前终止(early stopping):如果验证损失不再改善,则中断训练(当然,同时保存在训练过程中得到的最佳模型)。
- 在训练过程中动态调节某些参数值:比如优化器的学习率。
- 在训练过程中记录训练指标和验证指标,或将模型学到的表示可视化(这些表示也在不断更新):如Keras 进度条就是一个回调函数
keras.callbacks 模块包含许多内置的回调函数,下面列出了其中一些
keras.callbacks.ModelCheckpoint
keras.callbacks.EarlyStopping
keras.callbacks.LearningRateScheduler
keras.callbacks.ReduceLROnPlateau
keras.callbacks.CSVLogger
ModelCheckpoint 与EarlyStopping 回调函数
import keras
callbacks_list = [
keras.callbacks.EarlyStopping(#如果不再改善,就中断训练
monitor='acc',
patience=1,#如果精度在多于一轮的时间(即两轮)内不再改善,中断训练
),
keras.callbacks.ModelCheckpoint(
filepath='my_model.h5',
monitor