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 中未使用