MultiHorizonMetric¶
- class pytorch_forecasting.metrics.MultiHorizonMetric(reduction: str = 'mean', **kwargs)[source]¶
Bases:
pytorch_forecasting.metrics.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, torch.Tensor], target: torch.Tensor) torch.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: torch.Tensor, lengths: torch.Tensor, reduction: Optional[str] = None) torch.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: torch.Tensor, lengths: torch.Tensor, reduction: Optional[str] = None) torch.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