code: def __init__(
      self,
      dim: int,
      rank: int,
      sigma_init: float = 1.0,
      sigma_minimum: float = sigma_minimum,
  ) -> None:
      super().__init__(self)
      self.distr_cls = LowrankMultivariateGaussian
      self.dim = dim
      self.rank = rank
      if rank == 0:
          self.args_dim = {"mu": dim, "D": dim}
      else:
          self.args_dim = {"mu": dim, "D": dim, "W": dim * rank}
      self.mu_bias = 0.0
      self.sigma_init = sigma_init
      self.sigma_minimum = sigma_minimum
  
imports: import math
  from typing import Optional, Tuple
  import numpy
  from mxnet import gluon
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from .distribution import Distribution, _sample_multiple, getF
  from .distribution_output import ArgProj, DistributionOutput, AffineTransformedDistribution
label_desc: Use image node_id 1 to create a new LowrankMultivariateGaussianOutput object from inherited base classes: DistributionOutput with example: obj = LowrankMultivariateGaussianOutput(dim, rank, sigma_init, sigma_minimum)