class_docstr: Multivariate low-rank normal distribution loss.
  
  Use this loss to make out of a DeepAR model a DeepVAR network.
class_docstr_tok: ["Multivariate","low-rank","normal","distribution","loss",".","Use","this","loss","to","make","out","of","a","DeepAR","model","a","DeepVAR","network","."]
docstr: Initialize metric
  
  Args:
      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.
docstr_tok: ["Initialize","metric","Args",":","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","."]
code: def __init__(
      self,
      name: str = 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 = 1e-3,
  ):
      """
      Initialize metric
  
      Args:
          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.
      """
      super().__init__(
          name=name, quantiles=quantiles, reduction=reduction
      )
      self.rank = rank
      self.sigma_minimum = sigma_minimum
      self.sigma_init = sigma_init
      self.distribution_arguments = list(range(2 + rank))
  
      # determine bias
      self._diag_bias: float = (
          softplus_inv(torch.tensor(self.sigma_init) ** 2).item()
          if self.sigma_init > 0.0
          else 0.0
      )
      # determine normalizer to bring unscaled diagonal close to 1.0
      self._cov_factor_scale: float = np.sqrt(self.rank)
  
imports: from typing import Any, Callable, Dict, List, Optional, Tuple, Union
  import numpy
  from sklearn.base import BaseEstimator
  import torch
  from torch import distributions, nn
  import torch.nn.functional
  from pytorch_forecasting.data.encoders import TorchNormalizer, softplus_inv
  from pytorch_forecasting.metrics.base_metrics import DistributionLoss, MultivariateDistributionLoss
label_desc: Use image node_id 1 to create a new MultivariateNormalDistributionLoss object from inherited base classes: MultivariateDistributionLoss with example: obj = MultivariateNormalDistributionLoss(name, quantiles, reduction, rank, sigma_init, sigma_minimum)