gluonts.torch.model.wavenet 包#

class gluonts.torch.model.wavenet.WaveNet(pred_length: int, bin_values: List[float], num_residual_channels: int, num_skip_channels: int, dilation_depth: int, num_stacks: int, num_feat_dynamic_real: int = 1, num_feat_static_real: int = 1, cardinality: List[int] = [1], embedding_dimension: int = 5, num_parallel_samples: int = 100, temperature: float = 1.0, use_log_scale_feature: bool = True)[source]#

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

WaveNet 模型。

参数
  • pred_length – 预测长度。

  • bin_values – 分箱值的列表。

  • num_residual_channels – 残差通道的数量。

  • num_skip_channels – 跳跃连接通道的数量。

  • dilation_depth – 膨胀卷积的深度。

  • num_stacks – 膨胀堆叠的数量。

  • num_feat_dynamic_real – 动态实值特征的数量,默认为 1

  • optional – 动态实值特征的数量,默认为 1

  • num_feat_static_real – 静态实值特征的数量,默认为 1

  • optional – 静态实值特征的数量,默认为 1

  • cardinality – 静态分类特征的基数,默认为 [1]

  • optional – 静态分类特征的基数,默认为 [1]

  • embedding_dimension – 分类特征嵌入的维度,默认为 5

  • optional – 分类特征嵌入的维度,默认为 5

  • num_parallel_samples – 推理期间生成的并行样本数量。此参数仅在推理模式下使用,默认为 100

  • optional – 推理期间生成的并行样本数量。此参数仅在推理模式下使用,默认为 100

  • temperature – 用于从输出 softmax 分布采样的温度,默认为 1.0

  • optional – 用于从输出 softmax 分布采样的温度,默认为 1.0

base_net(inputs: torch.Tensor, queues: Optional[List[torch.Tensor]] = None) Tuple[torch.Tensor, List[torch.Tensor]][source]#

通过 WaveNet 进行前向传播。

参数
  • inputs – 输入张量 形状:(batch_size, num_residual_channels, sequence_length)

  • queues – 包含过去计算的卷积队列。这可以加快预测速度,并且必须在预测模式下提供。详情请参见 [Paine et al., 2016],默认为 None

  • optional – 包含过去计算的卷积队列。这可以加快预测速度,并且必须在预测模式下提供。详情请参见 [Paine et al., 2016],默认为 None

  • al. ([Paine et) – arXiv 预印本 arXiv:1611.09482 (2016)。

  • algorithm." (2016] "Fast wavenet generation) – arXiv 预印本 arXiv:1611.09482 (2016)。

返回值

  • 一个张量,包含网络的未归一化输出,其

  • 形状为 (batch_size, pred_length, num_bins),以及一个包含

  • 每层的卷积队列列表。对应于

  • layer `l` has shape ((batch_size, num_residual_channels, 2^l).)

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, scale: torch.Tensor, prediction_length: Optional[int] = None, num_parallel_samples: Optional[int] = None, temperature: Optional[float] = None) torch.Tensor[source]#

从 WaveNet 模型生成预测。

参数
  • feat_static_cat – 静态分类特征:(batch_size, num_cat_features)

  • feat_static_real – 静态实值特征:(batch_size, num_feat_static_real)

  • past_target – 过去的目标:(batch_size, receptive_field)

  • past_observed_values – 过去目标的观测值指示器:(batch_size, receptive_field)

  • past_time_feat – 过去的时间特征:(batch_size, num_time_features, receptive_field)

  • future_time_feat – 未来时间特征:(batch_size, num_time_features, pred_length)

  • scale – 时间序列的缩放因子:(batch_size, 1)

  • prediction_length – 生成样本的时间长度。如果未提供,则使用 self.prediction_length

  • num_parallel_samples – 生成的样本数量。如果未提供,则使用 self.num_parallel_samples

  • temperature – 生成样本时使用的温度。如果未提供,则使用 self.temperature

返回类型

形状为 (batch_size, num_parallel_samples, pred_length) 的预测结果

get_full_features(feat_static_cat: torch.Tensor, feat_static_real: torch.Tensor, past_observed_values: torch.Tensor, past_time_feat: torch.Tensor, future_time_feat: torch.Tensor, future_observed_values: Optional[torch.Tensor], scale: torch.Tensor) torch.Tensor[source]#

通过重复静态特征并将其与时间特征和观测值指示器连接起来,准备网络输入。

参数
  • feat_static_cat – 静态分类特征:(batch_size, num_cat_features)

  • feat_static_real – 静态实值特征:(batch_size, num_feat_static_real)

  • past_observed_values – 过去目标的观测值指示器:(batch_size, receptive_field)

  • past_time_feat – 过去的时间特征:(batch_size, num_time_features, receptive_field)

  • future_time_feat – 未来时间特征:(batch_size, num_time_features, pred_length)

  • future_observed_values – 未来目标的观测值指示器:(batch_size, pred_length)。如果未提供(例如,在推理期间),则会设置为全一。

  • scale – 时间序列的缩放因子:(batch_size, 1)

返回值

  • 一个张量,包含所有准备好通过网络传递的特征。

  • 网络。

  • Shape ((batch_size, num_features, receptive_field + pred_length))

static get_receptive_field(dilation_depth: int, num_stacks: int) int[source]#
损失(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, future_target: torch.Tensor, future_observed_values: torch.Tensor, scale: torch.Tensor) torch.Tensor[source]#

loss(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, future_target: torch.Tensor, future_observed_values: torch.Tensor, scale: torch.Tensor) torch.Tensor[source]#

参数
  • feat_static_cat – 静态分类特征:(batch_size, num_cat_features)

  • feat_static_real – 静态实值特征:(batch_size, num_feat_static_real)

  • past_target – 过去的目标:(batch_size, receptive_field)

  • past_observed_values – 过去目标的观测值指示器:(batch_size, receptive_field)

  • past_time_feat – 过去的时间特征:(batch_size, num_time_features, receptive_field)

  • future_time_feat – 未来时间特征:(batch_size, num_time_features, pred_length)

  • 计算 wavenet 模型的训练损失。

  • future_observed_values – 未来目标的观测值指示器:(batch_size, pred_length)。如果未提供(例如,在推理期间),则会设置为全一。

  • scale – 时间序列的缩放因子:(batch_size, 1)

返回类型

future_target – 计算损失的目标:(batch_size, pred_length)

形状为 (batch_size, pred_length) 的损失张量

target_feature_embedding(target: torch.Tensor, features: torch.Tensor) torch.Tensor[source]#

参数
  • 提供目标和特征的联合嵌入。

  • target – 完整目标,形状为 (batch_size, sequence_length)

返回值

  • features – 完整特征,形状为 (batch_size, num_features, sequence_length)

  • 一个张量,包含目标和特征的联合嵌入。

Shape ((batch_size, n_residue, sequence_length))
training: bool#

class gluonts.torch.model.wavenet.WaveNetEstimator(freq: str, prediction_length: int, num_bins: int = 1024, num_residual_channels: int = 24, num_skip_channels: int = 32, dilation_depth: Optional[int] = None, num_stacks: int = 1, temperature: float = 1.0, num_feat_dynamic_real: int = 0, num_feat_static_cat: int = 0, num_feat_static_real: int = 0, cardinality: List[int] = [1], seasonality: Optional[int] = None, embedding_dimension: int = 5, use_log_scale_feature: bool = True, time_features: Optional[List[Callable[[pandas.core.indexes.period.PeriodIndex], numpy.ndarray]]] = None, lr: float = 0.001, weight_decay: float = 1e-08, train_sampler: Optional[gluonts.transform.sampler.InstanceSampler] = None, validation_sampler: Optional[gluonts.transform.sampler.InstanceSampler] = None, batch_size: int = 32, num_batches_per_epoch: int = 50, num_parallel_samples: int = 100, negative_data: bool = False, trainer_kwargs: Optional[Dict[str, Any]] = None)[source]#

基类: gluonts.torch.model.estimator.PyTorchLightningEstimator

create_lightning_module() lightning.pytorch.core.module.LightningModule[source]#

返回值

创建并返回用于训练(即计算损失)的网络。

返回类型

根据输入数据计算损失的网络。

pl.LightningModule

create_predictor(transformation: gluonts.transform._base.Transformation, module: gluonts.torch.model.wavenet.lightning_module.WaveNetLightningModule) gluonts.torch.model.predictor.PyTorchPredictor[source]#

参数
  • 创建并返回一个预测器对象。

  • transformation – 应用于数据在进入模型之前的转换。

返回值

module – 一个训练好的 pl.LightningModule 对象。

返回类型

一个包装 nn.Module 用于推理的预测器。

预测器

create_training_data_loader(data: gluonts.dataset.Dataset, module: gluonts.torch.model.wavenet.lightning_module.WaveNetLightningModule, shuffle_buffer_length: Optional[int] = None, **kwargs) Iterable[source]#

参数
  • 创建一个用于训练的数据加载器。

  • data – 用于创建数据加载器的数据集。

返回值

module – 将接收数据加载器批次的 pl.LightningModule 对象。

返回类型

数据加载器,即数据批次的迭代器。

Iterable

create_transformation() gluonts.transform._base.Transformation[source]#

返回值

创建并返回训练和推理所需的转换。

返回类型

在训练和推理时,将逐条应用于数据集的转换。

Transformation

create_validation_data_loader(data: gluonts.dataset.Dataset, module: gluonts.torch.model.wavenet.lightning_module.WaveNetLightningModule, **kwargs) Iterable[source]#

参数
  • 创建一个用于训练的数据加载器。

  • data – 用于创建数据加载器的数据集。

返回值

module – 将接收数据加载器批次的 pl.LightningModule 对象。

返回类型

数据加载器,即数据批次的迭代器。

创建一个用于验证的数据加载器。
lead_time: int#
prediction_length: int#

class gluonts.torch.model.wavenet.WaveNetLightningModule(model_kwargs: dict, lr: float = 0.001, weight_decay: float = 1e-08)[source]#

基类: lightning.pytorch.core.module.LightningModule

参数
  • WaveNet 的 LightningModule 包装器。

  • model_kwargs – 传递给 WaveNet 的关键字参数。

  • lr – 学习率,默认为 1e-3

  • optional – 学习率,默认为 1e-3

  • weight_decay – 权重衰减,默认为 1e-8

optional – 权重衰减,默认为 1e-8

configure_optimizers()[source]#

返回要使用的优化器。

forward(*args, **kwargs)[source]#

参数
  • torch.nn.Module.forward() 相同。

  • *args – 您决定传递给 forward 方法的任何参数。

返回值

**kwargs – 关键字参数也可能。

您的模型的输出

training_step(batch, batch_idx: int)[source]#

执行训练步骤。

validation_step(batch, batch_idx: int)[source]#