gluonts.torch.model.i_transformer.module 模块#
- class gluonts.torch.model.i_transformer.module.ITransformerModel(prediction_length: int, context_length: int, d_model: int, nhead: int, dim_feedforward: int, dropout: float, activation: str, norm_first: bool, num_encoder_layers: int, scaling: Optional[str], distr_output=gluonts.torch.distributions.studentT.StudentTOutput(beta=0.0), nonnegative_pred_samples: bool = False)[source]#
实现 iTransformer 模型用于多元预测的模块,如 https://arxiv.org/abs/2310.06625 中所述,并扩展为概率模型。
基类:
torch.nn.modules.module.Module
- 参数
prediction_length – 要预测的时间点数量。
context_length – 模型预测时间之前的时间步数量。
d_model – Transformer 潜在维度。
nhead – 注意力头的数量,必须能被 d_model 整除。
dim_feedforward – Transformer 前馈网络模型的维度。
dropout – Transformer 的 Dropout 比率。
activation – Transformer 的激活函数。
norm_first – 是否在 Transformer 之前对输入进行归一化。
num_encoder_layers – Transformer 编码器层的数量。
scaling – 是否使用 mean (均值)、std (标准差) 或 None (不进行缩放) 来缩放输入。
distr_output – 用于评估观测值和采样预测的分布。默认值:
StudentTOutput()
。nonnegative_pred_samples – 最终预测样本是否应为非负?如果是,则应用激活函数以确保非负。请注意,这仅应用于最终样本,在训练期间不应用。
- describe_inputs(batch_size=1) gluonts.model.inputs.InputSpec #
- forward(past_target: torch.Tensor, past_observed_values: torch.Tensor) Tuple[Tuple[torch.Tensor, ...], torch.Tensor, torch.Tensor] #
定义每次调用时执行的计算。
应由所有子类重写。
注意
尽管前向传播的实现需要在该函数中定义,但之后应调用
Module
实例而不是直接调用此函数,因为前者负责运行已注册的钩子,而后者则会静默忽略它们。
- loss(past_target: torch.Tensor, past_observed_values: torch.Tensor, future_target: torch.Tensor, future_observed_values: torch.Tensor) torch.Tensor #
- training: bool#