Callback¶
- class paddle.callbacks. Callback [源代码] ¶
-
Callback
是一个基类,用于实现用户自定义的 callback。如果想使用除 EarlyStopping 外的自定义策略终止训练,可以通过在自定义的 callback 类中设置model.stop_training=True
来实现。
代码示例¶
import paddle
# build a simple model checkpoint callback
class ModelCheckpoint(paddle.callbacks.Callback):
def __init__(self, save_freq=1, save_dir=None):
self.save_freq = save_freq
self.save_dir = save_dir
def on_epoch_end(self, epoch, logs=None):
if self.model is not None and epoch % self.save_freq == 0:
path = '{}/{}'.format(self.save_dir, epoch)
print('save checkpoint at {}'.format(path))
self.model.save(path)
方法¶
set_params(params)¶
设置参数,类型是 dict,包含字段如下:
'batch_size':整数,批大小
‘epochs’:整数,总共 epochs
'steps':整数,一个 epoch 内的 step 数
'verbose':整数,0,1,2,表示输出信息的模式,0 是静默模式,1 是进度条模式,2 是每次打印一行。
‘metrics’:字符串数组,评估指标的名字,包含’loss‘,以及 paddle.metric.Metric 获取的名字。
set_model(model)¶
设置 paddle.Model 实例。
on_train_end(logs=None)¶
在训练的结束调用。
参数
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的 dict 包含的字段有'loss',评估指标 metric 的名字,以及'batch_size'。
on_eval_begin(logs=None)¶
在评估阶段的一开始调用。
参数
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的 dict 包含的字段有'steps'和'metrics'。'steps'是验证集的总共步长数,'metrics'是一个 list[str],包含'loss'和所设置的 paddle.metric.Metric 的名字。
on_eval_end(logs=None)¶
在评估阶段的结束调用。
参数
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的 dict 包含的字段有'loss',评估指标 metric 的名字,以及'batch_size'。
on_epoch_begin(epoch, logs=None)¶
在每个 epoch 的一开始调用。
参数
epoch (int): epoch 的索引。
logs (dict|None):日志信息是 None。
on_epoch_end(epoch, logs=None)¶
在每个 epoch 的结束调用。
参数
epoch (int): epoch 的索引。
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的 dict 包含的字段有'loss',评估指标 metric 的名字,以及'batch_size'。
on_train_batch_begin(step, logs=None)¶
在训练阶段每个 batch 的开始调用。
参数
step (int):训练步长或迭代次数。
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的是 None。
on_train_batch_end(step, logs=None)¶
在训练阶段每个 batch 的结束调用。
参数
step (int):训练步长或迭代次数。
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的 dict 包含的字段有'loss',评估指标 metric 的名字,以及当前'batch_size'。
on_eval_batch_begin(step, logs=None)¶
在评估阶段每个 batch 的开始调用。
参数
step (int):评估步长或迭代次数。
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的是 None。
on_eval_batch_end(step, logs=None)¶
在评估阶段每个 batch 的结束调用。
参数
step (int):训练步长或迭代次数。
logs (dict|None):日志信息是 dict 或 None。通过 paddle.Model 传递的 dict 包含的字段有'loss',评估指标 metric 的名字,以及当前'batch_size'。
on_predict_batch_begin(step, logs=None)¶
在推理阶段每个 batch 的开始调用。
参数
step (int):推理步长或迭代次数。
logs (dict|None):日志信息是 dict 或 None。
on_predict_batch_end(step, logs=None)¶
在推理阶段每个 batch 的结束调用。
参数
step (int):训练步长或迭代次数。
logs (dict|None):日志信息是 dict 或 None。