泊松损失#

class pytorch_forecasting.metrics.point.PoissonLoss(reduction: str = 'mean', **kwargs)[来源]#

基类: MultiHorizonMetric

计数数据的泊松损失。

损失将在网络输出之前取指数,随后作为预测返回。因此,目标归一化器应该没有“逆”变换,例如,对于TimeSeriesDataSet初始化,可以使用:

from pytorch_forecasting import TimeSeriesDataSet, EncoderNormalizer

dataset = TimeSeriesDataSet(
    target_normalizer=EncoderNormalizer(transformation=dict(forward=torch.log1p))
)

请注意,在这个例子中,数据在归一化之前进行了log1p变换,但没有重新变换。PoissonLoss在网络输出去归一化后应用了这种“exp”重新变换。结果是模型预测。

初始化指标

Parameters:
  • name (str) – 指标名称。默认为类名称。

  • 分位数 (列表[浮点数], 可选) – 概率范围的分位数。默认为 None。

  • reduction (str, 可选) – 减少方式,“none”,“mean”或“sqrt-mean”。默认为“mean”。

方法

loss(y_pred, target)

计算未减少的损失。

to_prediction(out)

将网络预测转换为点预测。

to_quantiles(out[, quantiles])

将网络预测转换为分位数预测。

loss(y_pred: Dict[str, Tensor], target: Tensor) Tensor[来源]#

计算不进行减小的损失。在派生类中覆盖

Parameters:
  • y_pred – 网络输出

  • y_actual – 实际值

Returns:

作为反向传播的单个数字的损失/指标

Return type:

torch.Tensor

to_prediction(out: Dict[str, Tensor])[来源]#

将网络预测转换为点预测。

Parameters:

y_pred – 网络的预测输出

Returns:

点预测

Return type:

torch.Tensor

to_quantiles(out: Dict[str, Tensor], quantiles=None)[来源]#

将网络预测转换为分位数预测。

Parameters:
  • y_pred – 网络的预测输出

  • 分位数 (列表[浮点数], 可选) – 概率范围的分位数。默认为类初始化中定义的分位数。

Returns:

预测分位数

Return type:

torch.Tensor