MultivariateNormalDistributionLoss#

class pytorch_forecasting.metrics.distributions.MultivariateNormalDistributionLoss(name: str | None = None, quantiles: List[float] = [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98], reduction: str = 'mean', rank: int = 10, sigma_init: float = 1.0, sigma_minimum: float = 0.001)[source]#

Bases: MultivariateDistributionLoss

Multivariate low-rank normal distribution loss.

Use this loss to make out of a DeepAR model a DeepVAR network.

Initialize metric

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

  • quantiles (List[float], optional) – quantiles for probability range. Defaults to [0.02, 0.1, 0.25, 0.5, 0.75, 0.9, 0.98].

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

  • rank (int) – rank of low-rank approximation for covariance matrix. Defaults to 10.

  • sigma_init (float, optional) – default value for diagonal covariance. Defaults to 1.0.

  • sigma_minimum (float, optional) – minimum value for diagonal covariance. Defaults to 1e-3.

Methods

map_x_to_distribution(x)

Map the a tensor of parameters to a probability distribution.

rescale_parameters(parameters, target_scale, ...)

Rescale normalized parameters into the scale required for the output.

distribution_class#

alias of LowRankMultivariateNormal

map_x_to_distribution(x: Tensor) Normal[source]#

Map the a tensor of parameters to a probability distribution.

Parameters:

x (torch.Tensor) – parameters for probability distribution. Last dimension will index the parameters

Returns:

torch probability distribution as defined in the

class attribute distribution_class

Return type:

distributions.Distribution

rescale_parameters(parameters: Tensor, target_scale: Tensor, encoder: BaseEstimator) Tensor[source]#

Rescale normalized parameters into the scale required for the output.

Parameters:
  • parameters (torch.Tensor) – normalized parameters (indexed by last dimension)

  • target_scale (torch.Tensor) – scale of parameters (n_batch_samples x (center, scale))

  • encoder (BaseEstimator) – original encoder that normalized the target in the first place

Returns:

parameters in real/not normalized space

Return type:

torch.Tensor