gluonts.mx.trainer.learning_rate_scheduler 模块#

gluonts.mx.trainer.learning_rate_scheduler.LearningRateReduction(objective: typing_extensions.Literal[min, max], patience: int, base_lr: float = 0.01, decay_factor: float = 0.5, min_lr: float = 0.0)[source]#

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

此回调(Callback)根据要优化的验证指标(最大化或最小化)的值来降低学习率。通过调用调度器上的 step 方法提供此类指标的值。必须提供 patience 参数,并且如果在 patience 次指标观测之前没有改进,调度器将降低学习率。

示例

patience = 0:无论指标值如何,学习率将在每次调用 step 时降低

patience = 1:一旦使用没有比遇到的最佳值更好的指标值调用 step,学习率就会降低

patience = 10:如果在连续 10 次调用 step 中没有记录到指标改进,则学习率降低

参数
  • objective – 字符串,可以是 “min”“max”

  • patience – 在降低学习率之前观察的耐心次数,非负整数。

  • base_lr – 要使用的初始学习率。

  • decay_factor – 降低学习率的因子(0 到 1 之间)。

  • min_lr – 学习率的下限,学习率永远不会低于 min_lr

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[source]#

每个 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

gluonts.mx.trainer.learning_rate_scheduler.Max(best: float = - inf)[source]#

基类:gluonts.mx.trainer.learning_rate_scheduler.Objective

best: float = -inf#
should_update(metric: float) bool[source]#
gluonts.mx.trainer.learning_rate_scheduler.MetricAttentiveScheduler(patience: gluonts.mx.trainer.learning_rate_scheduler.Patience, learning_rate: float = 0.01, decay_factor: float = 0.5, min_learning_rate: float = 0.0, max_num_decays: Optional[int] = None)[source]#

基类:object

此调度器根据要优化的验证指标(最大化或最小化)的值来降低学习率。通过调用调度器上的 step 方法提供此类指标的值。必须提供 patience 参数,并且如果在 patience 次指标观测之前没有改进,调度器将降低学习率。

示例

patience = 0:无论指标值如何,学习率将在每次调用 step 时降低

patience = 1:一旦使用没有比遇到的最佳值更好的指标值调用 step,学习率就会降低

patience = 10:如果在连续 10 次调用 step 中没有记录到指标改进,则学习率降低

参数
  • objective – 字符串,可以是 “min”“max”

  • patience (gluonts.mx.trainer.learning_rate_scheduler.Patience) – 在降低学习率之前观察的耐心次数,非负整数。

  • base_lr – 要使用的初始学习率。

  • decay_factor (float) – 降低学习率的因子(0 到 1 之间)。

  • min_learning_rate (float) – 学习率的下限,学习率永远不会低于 min_learning_rate

decay_factor: float = 0.5#
learning_rate: float = 0.01#
max_num_decays: Optional[int] = None#
min_learning_rate: float = 0.0#
patience: gluonts.mx.trainer.learning_rate_scheduler.Patience#
step(metric_value: float) bool[source]#

通知调度器正在优化的指标的新值。此方法应定期调用(例如,在每个 epoch 结束时,计算验证分数后)。

参数

metric_value – 正在优化的指标的值。

返回类型

布尔值,指示是否继续训练

gluonts.mx.trainer.learning_rate_scheduler.Min(best: float = inf)[source]#

基类:gluonts.mx.trainer.learning_rate_scheduler.Objective

best: float = inf#
should_update(metric: float) bool[source]#
gluonts.mx.trainer.learning_rate_scheduler.Objective(best: float)[source]#

基类:object

best: float#
静态方法 from_str(s: typing_extensions.Literal[min, max]) gluonts.mx.trainer.learning_rate_scheduler.Objective[source]#
should_update(metric: float) bool[source]#
update(metric: float) bool[source]#
gluonts.mx.trainer.learning_rate_scheduler.Patience(patience: int, objective: gluonts.mx.trainer.learning_rate_scheduler.Objective)[source]#

基类:object

简单的耐心追踪器。

给定一个 Objective,它将检查指标是否已改进并更新其耐心计数。一个更好的值会将耐心计数重置为零。

此外,在耐心超过后,需要显式调用 reset(),否则在尝试调用 step 时会引发 RuntimError

Patience 通过 num_resets 跟踪 reset 的调用次数。

current_patience: int = 0#
exceeded: bool = False#
num_resets: int = 0#
objective: gluonts.mx.trainer.learning_rate_scheduler.Objective#
patience: int#
reset() None[source]#
step(metric_value: float) bool[source]#