class_docstr: Fallback to the front-end implementation of random.multivariate_normal.
class_docstr_tok: ["Fallback","to","the","front-end","implementation","of","random.multivariate_normal","."]
code: def forward(self, is_train, req, in_data, out_data, aux):
      loc = in_data[0]
      cov = in_data[1]
      if cov.dtype == np.float16:
          scale = _mx_np.linalg.cholesky(cov.astype(np.float32)).astype(
              np.float16
          )
      else:
          scale = _mx_np.linalg.cholesky(cov)
      # set context
      noise = _mx_np.random.normal(
          size=out_data[0].shape, dtype=loc.dtype, device=loc.device
      )
      out = loc + _mx_np.einsum("...jk,...k->...j", scale, noise)
      self.assign(out_data[0], req[0], out)
  
imports: from distutils.version import StrictVersion
  import functools
  import ast
  import numpy
  from .None import operator
  from .None import numpy
  from .util import np_array, use_np
  from .numpy.utils import _STR_2_DTYPE_
  from .ndarray.numpy import _internal
  from .symbol.numpy import _internal
label_desc: Use image node_id 2 for calling the MultivariateNormal obj's underlying member method code with example usage: obj.forward(is_train, req, in_data, out_data, aux) without return types