code: def distribution(
      self,
      distr_args,
      loc: Optional[Tensor] = None,
      scale: Optional[Tensor] = None,
  ) -> Poisson:
      rate = distr_args
      if scale is None:
          return Poisson(rate)
      else:
          F = getF(rate)
          rate = F.broadcast_mul(rate, scale)
          return Poisson(rate, F)
  
imports: from typing import Dict, List, Optional, Tuple
  import numpy
  from gluonts.core.component import validated
  from gluonts.mx import Tensor
  from .deterministic import DeterministicOutput
  from .distribution import Distribution, _sample_multiple, getF, softplus
  from .distribution_output import DistributionOutput
  from .mixture import MixtureDistributionOutput
label_desc: Use image node_id 2 for calling the PoissonOutput obj's underlying member method code with example usage: obj.distribution(distr_args, loc, scale) and returns: Poisson, Poisson