MultiHorizonMetric#

class pytorch_forecasting.metrics.base_metrics.MultiHorizonMetric(reduction: str = 'mean', **kwargs)[source]#

Bases: Metric

Abstract class for defining metric for a multihorizon forecast

Initialize metric

Parameters
  • name (str) – metric name. Defaults to class name.

  • quantiles (List[float], optional) – quantiles for probability range. Defaults to None.

  • reduction (str, optional) – Reduction, “none”, “mean” or “sqrt-mean”. Defaults to “mean”.

Methods

compute()

Abstract method that calcualtes metric

loss(y_pred, target)

Calculate loss without reduction.

mask_losses(losses, lengths[, reduction])

Mask losses.

reduce_loss(losses, lengths[, reduction])

Reduce loss.

update(y_pred, target)

Update method of metric that handles masking of values.

compute()[source]#

Abstract method that calcualtes metric

Should be overriden in derived classes

Parameters
  • y_pred – network output

  • y_actual – actual values

Returns

metric value on which backpropagation can be applied

Return type

torch.Tensor

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

Calculate loss without reduction. Override in derived classes

Parameters
  • y_pred – network output

  • y_actual – actual values

Returns

loss/metric as a single number for backpropagation

Return type

torch.Tensor

mask_losses(losses: Tensor, lengths: Tensor, reduction: Optional[str] = None) Tensor[source]#

Mask losses.

Parameters
  • losses (torch.Tensor) – total loss. first dimenion are samples, second timesteps

  • lengths (torch.Tensor) – total length

  • reduction (str, optional) – type of reduction. Defaults to self.reduction.

Returns

masked losses

Return type

torch.Tensor

reduce_loss(losses: Tensor, lengths: Tensor, reduction: Optional[str] = None) Tensor[source]#

Reduce loss.

Parameters
  • losses (torch.Tensor) – total loss. first dimenion are samples, second timesteps

  • lengths (torch.Tensor) – total length

  • reduction (str, optional) – type of reduction. Defaults to self.reduction.

Returns

reduced loss

Return type

torch.Tensor

update(y_pred, target)[source]#

Update method of metric that handles masking of values.

Do not override this method but loss() instead

Parameters
  • y_pred (Dict[str, torch.Tensor]) – network output

  • target (Union[torch.Tensor, rnn.PackedSequence]) – actual values

Returns

loss as a single number for backpropagation

Return type

torch.Tensor