class_docstr: Constructs a multivariate normal random variable, based on mean and covariance.
  Can be multivariate, or a batch of multivariate normals
  
  Passing a vector mean corresponds to a multivariate normal.
  Passing a matrix mean corresponds to a batch of multivariate normals.
  
  :param mean: `... x N` mean of mvn distribution.
  :param covariance_matrix: `... x N X N` covariance matrix of mvn distribution.
  :param validate_args: If True, validate `mean` anad `covariance_matrix` arguments. (Default: False.)
  
  :ivar torch.Size base_sample_shape: The shape of a base sample (without
      batching) that is used to generate a single sample.
  :ivar torch.Tensor covariance_matrix: The covariance matrix, represented as a dense :class:`torch.Tensor`
  :ivar ~linear_operator.LinearOperator lazy_covariance_matrix: The covariance matrix, represented
      as a :class:`~linear_operator.LinearOperator`.
  :ivar torch.Tensor mean: The mean.
  :ivar torch.Tensor stddev: The standard deviation.
  :ivar torch.Tensor variance: The variance.
docstr: Returns i.i.d. standard Normal samples to be used with
  :py:meth:`MultivariateNormal.rsample(base_samples=base_samples)
  <gpytorch.distributions.MultivariateNormal.rsample>`.
  
  :param sample_shape: The number of samples to generate. (Default: `torch.Size([])`.)
  :return: A `*sample_shape x *batch_shape x N` tensor of i.i.d. standard Normal samples.
docstr_tok: ["Returns","i.i.d",".","standard","Normal","samples","to","be","used","with",":","py",":","meth",":","`","MultivariateNormal.rsample","(","base_samples=base_samples",")","<","gpytorch.distributions.MultivariateNormal.rsample",">","`",".",":","param","sample_shape",":","The","number","of","samples","to","generate",".","(","Default",":","`","torch.Size","(","[","]",")","`",".",")",":","return",":","A","`","*","sample_shape","x","*","batch_shape","x","N","`","tensor","of","i.i.d",".","standard","Normal","samples","."]
code: def get_base_samples(
      self, sample_shape: torch.Size = torch.Size()
  ) -> Tensor:
      r"""
      Returns i.i.d. standard Normal samples to be used with
      :py:meth:`MultivariateNormal.rsample(base_samples=base_samples)
      <gpytorch.distributions.MultivariateNormal.rsample>`.
  
      :param sample_shape: The number of samples to generate. (Default: `torch.Size([])`.)
      :return: A `*sample_shape x *batch_shape x N` tensor of i.i.d. standard Normal samples.
      """
      with torch.no_grad():
          shape = self._extended_shape(sample_shape)
          base_samples = _standard_normal(
              shape, dtype=self.loc.dtype, device=self.loc.device
          )
      return base_samples
  
imports: from __future__ import annotations
  import math
  import warnings
  from numbers import Number
  from typing import Optional, Tuple, Union
  import torch
  from linear_operator import to_dense, to_linear_operator
  from linear_operator.operators import DiagLinearOperator, LinearOperator, RootLinearOperator
  from torch import Tensor
  from torch.distributions import MultivariateNormal
  from torch.distributions.kl import register_kl
  from torch.distributions.utils import _standard_normal, lazy_property
  from ..None import settings
  from ..utils.warnings import NumericalWarning
  from .distribution import Distribution
label_desc: Use image node_id 11 for calling the MultivariateNormal obj's underlying member method code with example usage: obj.get_base_samples(sample_shape) and returns: base_samples