分布损失#
- class pytorch_forecasting.metrics.base_metrics.DistributionLoss(name: str = None, quantiles: List[float] | None = None, reduction='mean')[来源]#
-
DistributionLoss 基类。
该类应继承所有分布损失,即如果网络预测概率分布的参数,可以使用DistributionLoss对这些参数进行评分并计算给定真实值的损失。
在子类中定义两个类属性:
- distribution_class#
torch 概率分布
- Type:
分布.Distribution
- distribution_arguments#
分布的参数名称列表
- Type:
列表[str]
此外,实现方法
map_x_to_distribution()
和rescale_parameters()
。初始化指标
- Parameters:
name (str) – 指标名称。默认为类名称。
分位数 (列表[浮点数], 可选) – 概率范围的分位数。 默认为 [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98]。
reduction (str, 可选) – 减少方式,“none”,“mean”或“sqrt-mean”。默认为“mean”。
方法
loss
(预测值, 实际值)计算负似然
将参数的张量映射到概率分布。
sample
(y_pred, n_samples)从分布中抽样。
to_prediction
(y_pred[, n_samples])将网络预测转换为点预测。
to_quantiles
(y_pred[, quantiles, n_samples])将网络预测转换为分位数预测。
- loss(y_pred: Tensor, y_actual: Tensor) Tensor [来源]#
计算负似然
- Parameters:
y_pred – 网络输出
y_actual – 实际值
- Returns:
可以应用反向传播的度量值
- Return type:
torch.Tensor
- map_x_to_distribution(x: Tensor) Distribution [来源]#
将参数的张量映射到概率分布。
- Parameters:
x (torch.Tensor) – 概率分布的参数。最后一个维度将索引这些参数
- Returns:
- 在此定义的torch概率分布
类属性
distribution_class
- Return type:
分布.Distribution
- sample(y_pred, n_samples: int) Tensor [来源]#
从分布中抽样。
- Parameters:
y_pred – 网络的预测输出 (形状 batch_size x n_timesteps x n_paramters)
n_samples (int) – 要抽取的样本数量
- Returns:
具有样本的张量(形状 为 batch_size x n_timesteps x n_samples)
- Return type:
torch.Tensor