循环网络#

class pytorch_forecasting.models.rnn._rnn.RecurrentNetwork(cell_type: str = 'LSTM', hidden_size: int = 10, rnn_layers: int = 2, dropout: float = 0.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: Dict[str, ndarray] | None = None, x_reals: List[str] | None = None, x_categoricals: List[str] | None = None, output_size: int | List[int] = 1, target: str | List[str] = None, target_lags: Dict[str, List[int]] | None = None, loss: 多视角指标 = None, logging_metrics: ModuleList = None, **kwargs)[来源]#

基础: AutoRegressiveBaseModelWithCovariates

递归网络。

简单的 LSTM 或 GRU 层后接输出层

Parameters:
  • cell_type (str, optional) – 循环单元类型 [“LSTM”, “GRU”]。默认为 “LSTM”。

  • hidden_size (int, 可选) – 隐藏递归大小 - 最重要的超参数之一,与 rnn_layers一起使用。默认为10。

  • rnn_layers (int, optional) – RNN 层数 - 重要的超参数。默认为 2。

  • dropout (float, 可选) – RNN层中的丢弃。默认为0.1。

  • static_categoricals – 静态分类变量的位置整数

  • static_reals – 静态连续变量的位置的整数

  • time_varying_categoricals_encoder – 编码器的分类变量的位置的整数

  • time_varying_categoricals_decoder – 解码器中分类变量的位置的整数

  • time_varying_reals_encoder – 编码器的连续变量位置的整数

  • time_varying_reals_decoder – 解码器中连续变量的位置的整数

  • categorical_groups – 字典,其中值是分类变量的列表,这些变量共同形成一个新的分类变量,该变量是字典中的键

  • x_reals – 传递给前向函数的张量中连续变量的顺序

  • x_categoricals – 传递给前向函数的张量中的分类变量的顺序

  • embedding_sizes – 字典,将(字符串)索引映射到分类类的数量和嵌入大小的元组

  • embedding_paddings – 嵌入的索引列表,负责将零的嵌入转化为零向量

  • embedding_labels – 字典,将(字符串)索引映射到分类标签的列表

  • output_size (Union[int, List[int]], optional) – 输出的数量(例如,QuantileLoss 的分位数数量和一个目标或输出大小列表)。

  • target (str, 可选) – 目标变量或目标变量列表。默认为 None。

  • target_lags (Dict[str, Dict[str, int]]) – 目标名称到时间步列表的字典,表示变量应滞后的时间步。 滞后可以用来向模型指示季节性。如果你知道数据的季节性, 至少添加具有相应滞后的目标变量以改善性能。 默认情况下没有滞后,即一个空字典。

  • 损失 (MultiHorizonMetric, 可选) – 损失:用于比较预测值和目标值的损失函数。

  • logging_metrics (nn.ModuleList, 可选) – 训练期间记录的指标。默认为 nn.ModuleList([SMAPE(), MAE(), RMSE(), MAPE(), MASE()]).

方法

construct_input_vector(x_cat, x_cont[, ...])

将输入向量创建到RNN网络中

decode(输入向量, 目标缩放, ...[, ...])

将RNN的隐藏状态解码为预测。

decode_all(x, hidden_state[, lengths])

encode(x)

将序列编码为隐状态

forward(x[, n_samples])

前馈网络

from_dataset(数据集[, ...])

从数据集中创建模型。

construct_input_vector(x_cat: Tensor, x_cont: Tensor, one_off_target: Tensor = None) Tensor[来源]#

将输入向量创建到RNN网络中

Parameters:

one_off_target – 要插入到目标的第一个位置的张量。如果为 None(默认值),则移除第一个时间步长。

decode(input_vector: Tensor, target_scale: Tensor, decoder_lengths: Tensor, hidden_state: Tuple[Tensor, Tensor] | Tensor, n_samples: int = None) Tuple[Tensor, bool][来源]#

将RNN的隐藏状态解码为预测。如果给定n_samples,解码时不是使用实际值,而是通过迭代从过去的预测中采样新的目标。

encode(x: Dict[str, Tensor]) Tuple[Tensor, Tensor] | Tensor[来源]#

将序列编码为隐藏状态

forward(x: Dict[str, Tensor], n_samples: int = None) Dict[str, Tensor][来源]#

前馈网络

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

从数据集中创建模型。

Parameters:
  • dataset – 时间序列数据集

  • allowed_encoder_known_variable_names – 允许在编码器中使用的已知变量列表,默认为所有

  • **kwargs – 额外的参数,例如模型的超参数(见 __init__()

Returns:

递归网络