class_docstr: Gaussian sampling function.
  
  .. note::
  
      In forward calculation, this function takes a mean and the logarithm of
      a variance as inputs, and draws a sample from a Gaussian distribution
      accordingly.
class_docstr_tok: ["Gaussian","sampling","function",".","..","note",":",":","In","forward","calculation",",","this","function","takes","a","mean","and","the","logarithm","of","a","variance","as","inputs",",","and","draws","a","sample","from","a","Gaussian","distribution","accordingly","."]
code: def forward_gpu(self, inputs):
      self.retain_inputs((1,))
  
      mean, ln_var = inputs
      if self.eps is None:
          if mean.dtype != numpy.float16:
              self.eps = cuda.cupy.random.standard_normal(
                  ln_var.shape, dtype=mean.dtype
              )
          else:
              # Draw samples in FP32 then cast them to FP16 because
              # cupy.random does not support FP16 currently.
              self.eps = cuda.cupy.random.standard_normal(
                  ln_var.shape, dtype=numpy.float32
              ).astype(numpy.float16)
  
      self.noise = cuda.cupy.empty_like(mean)
      self.noise = cuda.elementwise(
          "T v, T e",
          "T noise",
          "noise = exp(v / 2) * e",
          "gaussian_forward",
      )(ln_var, self.eps)
      return (mean + self.noise,)
  
file_path: chainer/chainer/functions/noise/gaussian.py
imports: import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import function_node
  from chainer import utils
  from chainer.utils import argument
  from chainer.utils import type_check
label_desc: Use image node_id 4 for calling the Gaussian obj's underlying member method code with example usage: obj.forward_gpu(inputs) and returns: unknown