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_end 和 on_validation_epoch_end 一样,它返回一个布尔值,指示训练是否应继续。此钩子总是在 on_train_epoch_end 和 on_validation_epoch_end 之后调用。无论这些钩子的返回值如何,它都会被调用。
- 参数
epoch_no – 当前 epoch (第一个 epoch 为 epoch_no = 0)。
epoch_loss – 如果提供了验证数据,则为上次 epoch 中记录的验证损失。否则为训练损失。
training_network – 正在训练的网络。
trainer – 正在运行训练的训练器。
best_epoch_info – 关于最佳 epoch 的聚合信息。包含 params_path、epoch_no 和 score 键。如果提供了验证数据,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#
- 类 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#
- 类 gluonts.mx.trainer.learning_rate_scheduler.Min(best: float = inf)[source]#
基类:
gluonts.mx.trainer.learning_rate_scheduler.Objective
- best: float = inf#
- 类 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]#
- 类 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#
- patience: int#