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))
- 损失(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 对象。
- 返回类型
- 预测器
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