code: def __init__(
      self,
      rank: int,
      sigma_init: float = 1.0,
      sigma_minimum: float = sigma_minimum,
      mu_ratio: float = 1.0,
      dropout_rate: float = 0.0,
      prefix: Optional[str] = None,
  ) -> None:
      super().__init__(prefix=prefix)
      self.param_dim_args = OrderedDict(
          {"mu": 1, "sigma": 1, "w": rank}
      )
      self.mu_ratio = mu_ratio
      self.sigma_init = sigma_init
      self.sigma_minimum = sigma_minimum
      self.W_ratio = 1.0
      self.rank = rank
  
      def make(name, param_dim):
          net = gluon.nn.HybridSequential()
          net.add(
              gluon.nn.Dense(
                  param_dim,
                  flatten=False,
                  prefix=f"distr_{name}_",
                  weight_initializer="Xavier",
              )
          )
          if dropout_rate > 0:
              net.add(gluon.nn.Dropout(dropout_rate))
          return net
  
      self.proj = [
          make(name, param_dim)
          for name, param_dim in self.param_dim_args.items()
      ]
      for dense in self.proj:
          self.register_child(dense)
  
file_path: gluonts/src/gluonts/mx/distribution/lowrank_gp.py
imports: from collections import OrderedDict
  from typing import Optional, Tuple
  from mxnet import gluon
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from .None import LowrankMultivariateGaussian
  from .distribution_output import ArgProj, DistributionOutput, AffineTransformedDistribution
  from .lowrank_multivariate_gaussian import inv_softplus, sigma_minimum
label_desc: Use image node_id 1 to create a new GPArgProj object from inherited base classes: gluon with example: obj = GPArgProj(rank, sigma_init, sigma_minimum, mu_ratio, dropout_rate, prefix)