gluonts.mx.trainer.model_iteration_averaging 模块#
- class gluonts.mx.trainer.model_iteration_averaging.Alpha_Suffix(epochs: int, alpha: float = 0.75, eta: float = 0)[source]#
基类:
gluonts.mx.trainer.model_iteration_averaging.IterationAveragingStrategy
实现 Alpha Suffix 模型平均。
此方法基于论文“Making Gradient Descent Optimalfor Strongly Convex Stochastic Optimization” (https://arxiv.org/pdf/1109.5647.pdf)。
- alpha_suffix: float#
- class gluonts.mx.trainer.model_iteration_averaging.IterationAveragingStrategy(eta: float = 0)[source]#
基类:
object
模型平均基于论文“Stochastic Gradient Descent for Non- smooth Optimization: Convergence Results and Optimal Averaging Schemes”, (http://proceedings.mlr.press/v28/shamir13.pdf),该方法实现了由 eta 参数化的多项式衰减平均。
当 eta = 0 时,相当于对所有迭代进行简单平均,权重相同。
- apply(model: mxnet.gluon.block.HybridBlock) Optional[Dict] [source]#
- 参数
model – 当前迭代的模型。
- 返回类型
平均后的模型,如果平均尚未开始则为 None。
- average_counter: int#
- averaged_model: Optional[Dict[str, mxnet.ndarray.ndarray.NDArray]]#
- averaging_started: bool#
- cached_model: Optional[Dict[str, mxnet.ndarray.ndarray.NDArray]]#
- class gluonts.mx.trainer.model_iteration_averaging.ModelIterationAveraging(avg_strategy: gluonts.mx.trainer.model_iteration_averaging.IterationAveragingStrategy)[source]#
基类:
gluonts.mx.trainer.callback.Callback
实现基于迭代的模型平均策略的回调。
- 参数
avg_strategy – IterationAveragingStrategy,gluonts.mx.trainer.model_iteration_averaging 中的 NTA 或 Alpha_Suffix 之一
- 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。
- 返回类型
布尔值
- on_train_batch_end(training_network: mxnet.gluon.block.HybridBlock) bool [source]#
每个训练 batch 后调用的钩子。
- 参数
training_network – 正在训练的网络。
- 返回
一个布尔值,指示训练是否应该继续。默认为 True。
- 返回类型
布尔值
- on_train_end(training_network: mxnet.gluon.block.HybridBlock, temporary_dir: str, ctx: Optional[mxnet.context.Context] = None) None [source]#
训练完成后调用的钩子。这是最后一个被调用的钩子。
- 参数
training_network – 训练好的网络。
temporary_dir – 训练过程中记录模型参数的目录。
ctx – 使用的 MXNet 上下文。
- on_validation_epoch_end(epoch_no: int, epoch_loss: float, training_network: mxnet.gluon.block.HybridBlock, trainer: mxnet.gluon.trainer.Trainer) bool [source]#
每个验证 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。
- 返回类型
布尔值
- class gluonts.mx.trainer.model_iteration_averaging.NTA(epochs: int, n: int = 5, maximize: bool = False, last_n_trigger: bool = False, eta: float = 0, fallback_alpha: float = 0.05)[source]#
基类:
gluonts.mx.trainer.model_iteration_averaging.IterationAveragingStrategy
基类:
gluonts.mx.trainer.model_iteration_averaging.IterationAveragingStrategy
实现非单调触发 AvSGD (NTA)。
- 此方法基于论文“Regularizing and Optimizing LSTM Language Models”,(https://openreview.net/pdf?id=SyyGPP0TZ),并且在 Salesforce GitHub (https://github.com/salesforce/awd-lstm-lm/blob/master/main.py) 中提供了实现。请注意,它与 arxiv(和 gluonnlp)版本不匹配,后者在下方称为 NTA_V2。
- epoch – 开始平均的 epoch,在 NTA 中未使用