gluonts.torch.model.deep_npts package#

class gluonts.torch.model.deep_npts.DeepNPTSEstimator(freq: str, prediction_length: int, context_length: int, num_hidden_nodes: typing.Optional[typing.List[int]] = None, batch_norm: bool = False, use_feat_static_cat: bool = False, num_feat_static_real: int = 0, num_feat_dynamic_real: int = 0, cardinality: typing.Optional[typing.List[int]] = None, embedding_dimension: typing.Optional[typing.List[int]] = None, input_scaling: typing.Optional[typing.Union[typing.Callable, str]] = None, dropout_rate: float = 0.0, network_type: gluonts.torch.model.deep_npts._network.DeepNPTSNetwork = <class 'gluonts.torch.model.deep_npts._network.DeepNPTSNetworkDiscrete'>, epochs: int = 100, lr: float = 1e-05, batch_size: int = 32, num_batches_per_epoch: int = 100, cache_data: bool = False, loss_scaling: typing.Optional[typing.Union[typing.Callable, str]] = None)[source]#

基类: gluonts.model.estimator.Estimator

构建一个 DeepNPTS 估计器。这是 NPTS 的一个可调扩展,其中采样概率是从数据中学习得到的。与 NPTS 不同,这是一个全局模型。

目前实现了两种模型变体:(i) DeepNPTSNetworkDiscrete:预测分布是类似于 NPTS 的离散分布,预测值从上下文窗口中的观测值中采样。(ii) DeepNPTSNetworkSmooth:预测分布是平滑的混合分布,其中混合成分是以上下文窗口中的观测值为中心的 Gaussian 分布。混合概率和 Gaussian 分布的宽度都是学习得到的。这里的预测可以包含在上下文窗口中未观测到的值。

参数
  • freq – 用于训练和预测的数据频率

  • prediction_length (int) – 预测范围的长度

  • context_length – 在计算预测之前,RNN 展开的步数(默认值:None,此时 context_length = prediction_length)

  • num_hidden_nodes – 一个列表,包含每个隐藏层中的节点数

  • batch_norm – 标志,指示是否应在每一层应用批量归一化

  • use_feat_static_cat – 是否使用数据中的 feat_static_cat 字段(默认值:False)

  • num_feat_static_real – 数据集中的静态实数特征数量

  • num_feat_dynamic_real – 数据集中的动态特征数量。这些特征会被添加到根据频率自动创建的时间序列特征中

  • cardinality – 每个类别特征的值的数量。如果 use_feat_static_cat == True,则必须设置此参数(默认值:None)

  • embedding_dimension – 类别特征嵌入的维度(默认值:[min(50, (cat+1)//2) for cat in cardinality])

  • input_scaling – 应用于目标值的缩放方法。可用选项:“min_max_scaling” 和 “standard_normal_scaling”(默认值:不缩放)

  • dropout_rate – Dropout 正则化参数(默认值:不使用 dropout)

  • network_type – 使用的网络类型:可以是离散版本 DeepNPTSNetworkDiscrete 或平滑版本 DeepNPTSNetworkSmooth(默认值:DeepNPTSNetworkDiscrete)

get_predictor(net: torch.nn.modules.module.Module, device=‘cpu’) gluonts.torch.model.predictor.PyTorchPredictor[source]#
input_transform() gluonts.transform._base.Transformation[source]#
instance_splitter(instance_sampler, is_train: bool = True) gluonts.transform.split.InstanceSplitter[source]#
lead_time: int#
loss_scaling: Optional[Callable]#
prediction_length: int#
train(training_data: gluonts.dataset.Dataset, validation_data: Optional[gluonts.dataset.Dataset] = None, cache_data: bool = False) gluonts.torch.model.predictor.PyTorchPredictor[source]#

在给定数据上训练估计器。

参数
  • training_data – 用于训练模型的数据集。

  • validation_data – 训练期间用于验证模型的数据集。

返回值

包含已训练模型的预测器。

返回类型

预测器

train_model(training_data: gluonts.dataset.Dataset, cache_data: bool = False) gluonts.torch.model.deep_npts._network.DeepNPTSNetwork[source]#
training_data_loader(training_dataset, batch_size: int, num_batches_per_epoch: int) Iterable[Dict[str, Any]][source]#
class gluonts.torch.model.deep_npts.DeepNPTSMultiStepNetwork(net: gluonts.torch.model.deep_npts._network.DeepNPTSNetwork, prediction_length: int, num_parallel_samples: int = 100)[source]#

基类: torch.nn.modules.module.Module

实现多步预测,给定一个已训练的 DeepNPTSNetwork 模型,该模型输出一步预测分布。

forward(feat_static_cat: torch.Tensor, feat_static_real: torch.Tensor, past_target: torch.Tensor, past_observed_values: torch.Tensor, past_time_feat: torch.Tensor, future_time_feat: torch.Tensor)[source]#

从预测分布中生成样本。

参数
  • feat_static_cat – 形状 (-1, num_features)。

  • feat_static_real – 形状 (-1, num_features)。

  • past_target – 形状 (-1, context_length)。

  • past_observed_values – 形状 (-1, context_length)。

  • past_time_feat – 形状 (-1, context_length, self.num_time_features)。

  • future_time_feat – 形状 (-1, prediction_length, self.num_time_features)。

返回值

包含预测分布样本的 Tensor。形状为 (-1, self.num_parallel_samples, self.prediction_length)。

返回类型

torch.Tensor

training: bool#
class gluonts.torch.model.deep_npts.DeepNPTSNetwork(context_length: int, num_hidden_nodes: List[int], cardinality: List[int], embedding_dimension: List[int], num_time_features: int, batch_norm: bool = False, input_scaling: Optional[Union[Callable, str]] = None, dropout_rate: float = 0.0)[source]#

基类: torch.nn.modules.module.Module

基类,实现了一个简单的前馈神经网络,该网络接收静态特征和动态特征,并产生 num_hidden_nodes 个独立输出。这些输出随后被派生类用于构建单个时间步的预测分布。

请注意,动态特征仅被视为独立特征,不考虑其时间特性。

forward(feat_static_cat: torch.Tensor, feat_static_real: torch.Tensor, past_target: torch.Tensor, past_observed_values: torch.Tensor, past_time_feat: torch.Tensor)[source]#
参数
  • feat_static_cat – 形状 (-1, num_features)。

  • feat_static_real – 形状 (-1, num_features)。

  • past_target – 形状 (-1, context_length)。

  • past_observed_values – 形状 (-1, context_length)。

  • past_time_feat – 形状 (-1, context_length, self.num_time_features)。

training: bool#
class gluonts.torch.model.deep_npts.DeepNPTSNetworkDiscrete(*args, use_softmax: bool = False, **kwargs)[source]#

基类: gluonts.torch.model.deep_npts._network.DeepNPTSNetwork

扩展 DeepNTPSNetwork,实现了输出层,该输出层将基础网络的输出转换为长度为 context_length 的概率。这些概率与上下文窗口中的过去值一起构成一步预测分布。具体来说,预测始终是上下文窗口中观测到的值之一,具有相应的预测概率。

参数
  • *args – 传递给 DeepNPTSNetwork 的参数。

  • use_softmax – 标志,指示是将基础网络的输出转换为概率时使用 softmax 还是归一化。

  • kwargs – 传递给 DeepNPTSNetwork 的关键字参数。

forward(feat_static_cat: torch.Tensor, feat_static_real: torch.Tensor, past_target: torch.Tensor, past_observed_values: torch.Tensor, past_time_feat: torch.Tensor) gluonts.torch.distributions.discrete_distribution.DiscreteDistribution[source]#
参数
  • feat_static_cat – 形状 (-1, num_features)。

  • feat_static_real – 形状 (-1, num_features)。

  • past_target – 形状 (-1, context_length)。

  • past_observed_values – 形状 (-1, context_length)。

  • past_time_feat – 形状 (-1, context_length, self.num_time_features)。

training: bool#
class gluonts.torch.model.deep_npts.DeepNPTSNetworkSmooth(*args, **kwargs)[source]#

基类: gluonts.torch.model.deep_npts._network.DeepNPTSNetwork

扩展 DeepNTPSNetwork,实现了输出层,该输出层将基础网络的输出转换为平滑的混合分布。混合成分是以上下文窗口中的观测值为中心的 Gaussian 分布。网络的输出预测混合概率和 Gaussian 分布的宽度。

此混合分布代表一步预测分布。请注意,预测可以包含在上下文窗口中未观测到的值。

forward(feat_static_cat: torch.Tensor, feat_static_real: torch.Tensor, past_target: torch.Tensor, past_observed_values: torch.Tensor, past_time_feat: torch.Tensor) torch.distributions.mixture_same_family.MixtureSameFamily[source]#
参数
  • feat_static_cat – 形状 (-1, num_features)。

  • feat_static_real – 形状 (-1, num_features)。

  • past_target – 形状 (-1, context_length)。

  • past_observed_values – 形状 (-1, context_length)。

  • past_time_feat – 形状 (-1, context_length, self.num_time_features)。

training: bool#