gluonts.mx.trainer.callback 模块#

class gluonts.mx.trainer.callback.Callback[源代码]#

基类: object

抽象回调基类。

回调控制 GluonTS 训练器的训练。要编写自定义回调,可以继承 Callback 并覆盖一个或多个钩子方法。如果返回 False,布尔型返回值的钩子方法将停止训练。

on_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer, best_epoch_info: Dict[str, Any], ctx: mxnet.context.Context) bool[源代码]#

在每个 epoch 结束后调用的钩子。与 on_train_epoch_endon_validation_epoch_end 一样,它返回一个布尔值,表示训练是否应继续。此钩子总是在 on_train_epoch_endon_validation_epoch_end 之后调用。无论这些钩子的返回值如何,它都会被调用。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 如果提供了验证数据,则为上一个 epoch 中记录的验证损失。否则为训练损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

  • best_epoch_info – 关于最佳 epoch 的聚合信息。包含键 params_pathepoch_noscore。如果提供了验证数据,则 score 为最佳验证损失,否则为最佳训练损失。

  • ctx – 使用的 MXNet 上下文。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_network_initializing_end(training_network: mxnet.gluon.block.HybridBlock) None[源代码]#

在训练之前,训练网络初始化完成后调用的钩子。这是网络传入的第一个钩子。

参数

training_network – 正在训练的网络。

on_train_batch_end(training_network: mxnet.gluon.block.HybridBlock) bool[源代码]#

在每个训练 batch 结束后调用的钩子。

参数

training_network – 正在训练的网络。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_train_end(training_network: mxnet.gluon.block.HybridBlock, temporary_dir: str, ctx: Optional[mxnet.context.Context] = None) None[源代码]#

在训练结束后调用的钩子。这是最后调用的钩子。

参数
  • training_network – 已训练的网络。

  • temporary_dir – 在训练过程中记录模型参数的目录。

  • ctx – 使用的 MXNet 上下文。

on_train_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer) bool[源代码]#

在每个训练 epoch 结束后调用的钩子。此方法返回一个布尔值,表示训练是否应继续。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_train_epoch_start(training_network: mxnet.gluon.block.HybridBlock) None[源代码]#

在每个训练 epoch 开始之前调用的钩子。

参数

training_network – 正在训练的网络。

on_train_start(max_epochs: int) None[源代码]#

在训练开始之前调用的钩子。这是第一个调用的钩子。

参数

max_epochs – 训练运行的最大 epoch 数。如果其他回调钩子提前停止训练,实际的 epoch 数可能会更少。

on_validation_batch_end(training_network: mxnet.gluon.block.HybridBlock) bool[源代码]#

在每个验证 batch 结束后调用的钩子。如果在训练期间没有可用的验证数据,则永远不会调用此钩子。

参数

training_network – 正在训练的网络。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_validation_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer) bool[源代码]#

在每个验证 epoch 结束后调用的钩子。类似于 on_train_epoch_end,此方法返回一个布尔值,表示训练是否应继续。请注意,在单个 epoch 中,它总是在 on_train_epoch_end 之后调用。如果 on_train_epoch_end 返回 False,则不会调用此方法。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的验证损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_validation_epoch_start(training_network: mxnet.gluon.block.HybridBlock) None[源代码]#

在每个验证 epoch 开始之前调用的钩子。如果在训练期间没有可用的验证数据,则永远不会调用此钩子。

参数

training_network – 正在训练的网络。

class gluonts.mx.trainer.callback.CallbackList(callbacks: List[gluonts.mx.trainer.callback.Callback])[源代码]#

基类: gluonts.mx.trainer.callback.Callback

用于将回调列表链接到一个 Callback。布尔型钩子方法使用 AND 进行逻辑连接,这意味着如果至少有一个回调方法返回 False,则训练将停止。

callbacks#

一个 gluonts.mx.trainer.callback.Callback 列表。

on_epoch_end(*args: Any, **kwargs: Any) bool[源代码]#

在每个 epoch 结束后调用的钩子。与 on_train_epoch_endon_validation_epoch_end 一样,它返回一个布尔值,表示训练是否应继续。此钩子总是在 on_train_epoch_endon_validation_epoch_end 之后调用。无论这些钩子的返回值如何,它都会被调用。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 如果提供了验证数据,则为上一个 epoch 中记录的验证损失。否则为训练损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

  • best_epoch_info – 关于最佳 epoch 的聚合信息。包含键 params_pathepoch_noscore。如果提供了验证数据,则 score 为最佳验证损失,否则为最佳训练损失。

  • ctx – 使用的 MXNet 上下文。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_network_initializing_end(*args: Any, **kwargs: Any) None[源代码]#

在训练之前,训练网络初始化完成后调用的钩子。这是网络传入的第一个钩子。

参数

training_network – 正在训练的网络。

on_train_batch_end(*args: Any, **kwargs: Any) bool[源代码]#

在每个训练 batch 结束后调用的钩子。

参数

training_network – 正在训练的网络。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_train_end(*args: Any, **kwargs: Any) None[源代码]#

在训练结束后调用的钩子。这是最后调用的钩子。

参数
  • training_network – 已训练的网络。

  • temporary_dir – 在训练过程中记录模型参数的目录。

  • ctx – 使用的 MXNet 上下文。

on_train_epoch_end(*args: Any, **kwargs: Any) bool[源代码]#

在每个训练 epoch 结束后调用的钩子。此方法返回一个布尔值,表示训练是否应继续。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_train_epoch_start(*args: Any, **kwargs: Any) None[源代码]#

在每个训练 epoch 开始之前调用的钩子。

参数

training_network – 正在训练的网络。

on_train_start(*args: Any, **kwargs: Any) None[源代码]#

在训练开始之前调用的钩子。这是第一个调用的钩子。

参数

max_epochs – 训练运行的最大 epoch 数。如果其他回调钩子提前停止训练,实际的 epoch 数可能会更少。

on_validation_batch_end(*args: Any, **kwargs: Any) bool[源代码]#

在每个验证 batch 结束后调用的钩子。如果在训练期间没有可用的验证数据,则永远不会调用此钩子。

参数

training_network – 正在训练的网络。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_validation_epoch_end(*args: Any, **kwargs: Any) bool[源代码]#

在每个验证 epoch 结束后调用的钩子。类似于 on_train_epoch_end,此方法返回一个布尔值,表示训练是否应继续。请注意,在单个 epoch 中,它总是在 on_train_epoch_end 之后调用。如果 on_train_epoch_end 返回 False,则不会调用此方法。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的验证损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_validation_epoch_start(*args: Any, **kwargs: Any) None[源代码]#

在每个验证 epoch 开始之前调用的钩子。如果在训练期间没有可用的验证数据,则永远不会调用此钩子。

参数

training_network – 正在训练的网络。

class gluonts.mx.trainer.callback.TerminateOnNaN[源代码]#

基类: gluonts.mx.trainer.callback.Callback

on_train_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer) bool[源代码]#

在每个训练 epoch 结束后调用的钩子。此方法返回一个布尔值,表示训练是否应继续。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

class gluonts.mx.trainer.callback.TrainingHistory[源代码]#

基类: gluonts.mx.trainer.callback.Callback

on_train_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer) bool[源代码]#

在每个训练 epoch 结束后调用的钩子。此方法返回一个布尔值,表示训练是否应继续。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_validation_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer) bool[源代码]#

在每个验证 epoch 结束后调用的钩子。类似于 on_train_epoch_end,此方法返回一个布尔值,表示训练是否应继续。请注意,在单个 epoch 中,它总是在 on_train_epoch_end 之后调用。如果 on_train_epoch_end 返回 False,则不会调用此方法。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 在上一个 epoch 中记录的验证损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

class gluonts.mx.trainer.callback.TrainingTimeLimit(*, time_limit: float, stop_within_epoch: bool = False)[源代码]#

基类: pydantic.v1.main.BaseModel, gluonts.mx.trainer.callback.Callback

限制训练所花费的时间。

这对于确保给定模型的训练不超过预算非常有用,例如在进行 AutoML 时。

如果 stop_within_epoch 设置为 True,训练可以在每个 batch 后停止,否则在 epoch 结束后停止。

on_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer, best_epoch_info: Dict[str, Any], ctx: mxnet.context.Context) bool[源代码]#

在每个 epoch 结束后调用的钩子。与 on_train_epoch_endon_validation_epoch_end 一样,它返回一个布尔值,表示训练是否应继续。此钩子总是在 on_train_epoch_endon_validation_epoch_end 之后调用。无论这些钩子的返回值如何,它都会被调用。

参数
  • epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。

  • epoch_loss – 如果提供了验证数据,则为上一个 epoch 中记录的验证损失。否则为训练损失。

  • training_network – 正在训练的网络。

  • trainer – 正在运行训练的训练器。

  • best_epoch_info – 关于最佳 epoch 的聚合信息。包含键 params_pathepoch_noscore。如果提供了验证数据,则 score 为最佳验证损失,否则为最佳训练损失。

  • ctx – 使用的 MXNet 上下文。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_train_batch_end(training_network: mxnet.gluon.block.HybridBlock) bool[源代码]#

在每个训练 batch 结束后调用的钩子。

参数

training_network – 正在训练的网络。

返回

一个布尔值,表示训练是否应继续。默认为 True

返回类型

bool

on_train_start(max_epochs: int) None[源代码]#

在训练开始之前调用的钩子。这是第一个调用的钩子。

参数

max_epochs – 训练运行的最大 epoch 数。如果其他回调钩子提前停止训练,实际的 epoch 数可能会更少。

stop_within_epoch: bool#
time_limit: float#
class gluonts.mx.trainer.callback.WarmStart(predictor)[源代码]#

基类: gluonts.mx.trainer.callback.Callback

on_network_initializing_end(training_network: mxnet.gluon.block.HybridBlock) None[源代码]#

在训练之前,训练网络初始化完成后调用的钩子。这是网络传入的第一个钩子。

参数

training_network – 正在训练的网络。