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: Convert a `... x N` MVN distribution into a batch of independent Normal distributions.
  Essentially, this throws away all covariance information
  and treats all dimensions as batch dimensions.
  
  :returns: A (data-independent) Normal distribution with batch shape `*batch_shape x N`.
docstr_tok: ["Convert","a","`","...","x","N","`","MVN","distribution","into","a","batch","of","independent","Normal","distributions",".","Essentially",",","this","throws","away","all","covariance","information","and","treats","all","dimensions","as","batch","dimensions",".",":","returns",":","A","(","data-independent",")","Normal","distribution","with","batch","shape","`","*","batch_shape","x","N","`","."]
code: def to_data_independent_dist(self) -> torch.distributions.Normal:
      """
      Convert a `... x N` MVN distribution into a batch of independent Normal distributions.
      Essentially, this throws away all covariance information
      and treats all dimensions as batch dimensions.
  
      :returns: A (data-independent) Normal distribution with batch shape `*batch_shape x N`.
      """
      # Create batch distribution where all data are independent, but the tasks are dependent
      try:
          # If pyro is installed, use that set of base distributions
          import pyro.distributions as base_distributions
      except ImportError:
          # Otherwise, use PyTorch
          import torch.distributions as base_distributions
      return base_distributions.Normal(self.mean, self.stddev)
  
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 17 for calling the MultivariateNormal obj's underlying member method code with example usage: obj.to_data_independent_dist() and returns: base_distributions