class_docstr: OneHotCategorical Distribution.
  
  Args:
      p(:class:`~chainer.Variable` or :ref:`ndarray`): Parameter of
          distribution.
code: def sample_n(self, n):
      xp = chainer.backend.get_array_module(self.p)
      obo_p = self.p.data.reshape((-1,) + self.event_shape)
      eye = xp.eye(self.event_shape[0], dtype=self.p.dtype)
      eps = [
          _random_choice(xp, one_p.shape[0], size=(n,), p=one_p)
          for one_p in obo_p
      ]
      eps = _stack(xp, eps, axis=1).reshape((n,) + self.batch_shape)
      eps = eye[eps]
      noise = chainer.Variable(eps)
      return noise
  
imports: import chainer
  from chainer.backends import cuda
  from chainer import distribution
  from chainer.functions.math import exponential
  import chainer.functions.math.sum
  from chainer.utils import cache
label_desc: Use image node_id 10 for calling the OneHotCategorical obj's underlying member method code with example usage: obj.sample_n(n) and returns: noise