class_docstr: Poisson Distribution.
  
  The probability mass function of the distribution is expressed as
  
  .. math::
      P(x; \lambda) = \frac{\lambda ^x e^{-\lambda}}{x!}
  
  Args:
      lam(:class:`~chainer.Variable` or :ref:`ndarray`): Parameter of
          distribution. :math:`\lambda`
code: def sample_n(self, n):
      xp = chainer.backend.get_array_module(self.lam)
      if xp is cuda.cupy:
          eps = xp.random.poisson(
              self.lam.data,
              size=(n,) + self.batch_shape,
              dtype=xp.float32,
          )
      else:
          eps = xp.random.poisson(
              self.lam.data, size=(n,) + self.batch_shape
          ).astype(xp.float32)
      noise = chainer.Variable(eps)
      return noise
  
imports: import chainer
  from chainer.backends import cuda
  from chainer import distribution
  from chainer.functions.math import exponential
  from chainer.functions.math import lgamma
  from chainer import utils
  from chainer.utils import cache
label_desc: Use image node_id 10 for calling the Poisson obj's underlying member method code with example usage: obj.sample_n(n) and returns: noise