TiDEModel#

class pytorch_forecasting.models.tide._tide.TiDEModel(output_chunk_length: int, input_chunk_length: int, num_encoder_layers: int = 2, num_decoder_layers: int = 2, decoder_output_dim: int = 16, hidden_size: int = 128, temporal_width_future: int = 4, temporal_hidden_size_future: int = 32, temporal_decoder_hidden: int = 32, use_layer_norm: bool = False, dropout: float = 0.1, output_size: int | List[int] = 1, static_categoricals: List[str] | None = None, static_reals: List[str] | None = None, time_varying_categoricals_encoder: List[str] | None = None, time_varying_categoricals_decoder: List[str] | None = None, categorical_groups: Dict[str, List[str]] | None = None, time_varying_reals_encoder: List[str] | None = None, time_varying_reals_decoder: List[str] | None = None, embedding_sizes: Dict[str, Tuple[int, int]] | None = None, embedding_paddings: List[str] | None = None, embedding_labels: List[str] | None = None, x_reals: List[str] | None = None, x_categoricals: List[str] | None = None, logging_metrics: ModuleList = None, **kwargs)[来源]#

基础: BaseModelWithCovariates

TiDE模型的实现。

TiDE 与 Transformers 有相似之处 (implemented in :class:TransformerModel),但旨在通过利用基于 MLP 的编码器-解码器 架构而不使用注意力机制,以减少计算需求并提供更好的性能。

该模型支持未来协变量(在预测时间之后已知的 output_chunk_length 点)和静态协变量。

编码器和解码器是使用残差块构建的。编码器和解码器中的残差块数量可以分别通过num_encoder_layersnum_decoder_layers进行指定。残差块中的层宽可以通过hidden_size进行调整,而 temporal 解码器中的层宽可以通过temporal_decoder_hidden进行控制。

Parameters:
  • input_chunk_length (int) – 用作模型输入的过去时间步数(每个块)。 这适用于目标序列和未来协变量 (如果模型支持的话)。

  • output_chunk_length (int) – 内部模型同时预测的时间步数(每个块)。 这还决定了从未来协变量中使用多少未来值作为输入(如果模型支持的话)。

  • num_encoder_layers (int, default=2) – 编码器中的残差块数量

  • num_decoder_layers (int, default=2) – 解码器中的残差块数量

  • decoder_output_dim (int, default=16) – 解码器输出的维度

  • hidden_size (int, default=128) – 编码器和解码器中隐层的大小。通常在不使用协变量的情况下范围从 32 到 128。

  • (int) (temporal_decoder_hidden) – 如果设置为0,将跳过特征投影并使用原始特征数据。默认为4。

  • (int) – 预测。默认值为32。

  • (int)

  • (布尔值) (use_layer_norm)

  • (float) (丢弃率)

  • output_size (联合[整数, 列表[整数]]: 在 deduce_default_output_parameters 中作为其必需项包含) – from_dataset 函数。默认为 1。

  • (列表[字符串]) (embedding_paddings)

  • (列表[字符串])

  • (列表[字符串])

  • (列表[字符串])

  • (列表[字符串])

  • (列表[字符串])

  • (列表[字符串])

  • (列表[字符串])

  • (字典[字符串 (categorical_groups) – 第一个整数表示分类类别的数量,第二个表示嵌入的大小

  • 元组[整数 (字典将类别变量映射到整数的元组,其中第一个整数表示类别的数量,第二个表示嵌入大小

  • int]]) (字典映射分类变量到元组整数) – 其中第一个整数表示分类类别的数量,第二个表示嵌入大小

  • (字典[字符串

  • 列表[字符串]] (一起分组的分类变量的字典)

  • (List[str]) – 填充零的嵌入向量

  • (字典[str – 可以同时接受多个值(例如:在十月节期间的假期)。它们应该被实现为嵌入袋

  • 列表[字符串]]) – 也可以同时接收多个值(例如,十月节期间的假期)。它们应该被实现为嵌入的集合

  • (nn.ModuleList[MultiHorizonMetric]) (logging_metrics) – 默认为 nn.ModuleList([SMAPE(), MAE(), RMSE(), MAPE(), MASE()])

  • **kwargs – 允许可选参数来配置 pytorch_lightning.Module、pytorch_lightning.Trainer 和 pytorch-forecasting 的 :class:BaseModelWithCovariates。

  • 注意 – 该模型支持未来协变量和静态协变量。

方法

forward(x)

网络的前向传递。

from_dataset(数据集, **kwargs)

方便的函数,用于从 :py:class`~pytorch_forecasting.data.timeseries.TimeSeriesDataSet` 创建网络。

forward(x: Dict[str, Tensor]) Dict[str, Tensor][来源]#

网络的前向传递。

Parameters:

x (字典[字符串, torch.Tensor]) – 来自数据加载器的输入,由 :py:class:~pytorch_forecasting.data.timeseries.TimeSeriesDataSet生成。

Returns:

模型的输出

Return type:

字典[str, torch.Tensor]

classmethod from_dataset(dataset: 时间序列数据集, **kwargs)[来源]#

一个方便的函数,用于从:py:class`~pytorch_forecasting.data.timeseries.TimeSeriesDataSet`创建网络。

Parameters:
  • 数据集 (TimeSeriesDataSet) – 唯一预测变量是目标的 数据集。

  • **kwargs – 额外的参数,将被传递给 __init__ 方法。

Returns:

TiDE

property decoder_covariate_size: int#

解码器协变量大小。

Returns:

解码器使用的时间依赖协变量的大小

Return type:

整数

property encoder_covariate_size: int#

编码器协变量大小。

Returns:

编码器使用的时间依赖协变量的大小

Return type:

整数

property static_size: int#

静态协变量的大小。

Returns:

静态协变量的大小

Return type:

整数