code: def matrix_exponential(
      input_dim, iterations=8, normalization="none", bound=None
  ):
      """
      A helper function to create a
      :class:`~pyro.distributions.transforms.MatrixExponential` object for consistency
      with other helpers.
  
      :param input_dim: Dimension of input variable
      :type input_dim: int
      :param iterations: the number of terms to use in the truncated power series that
          approximates matrix exponentiation.
      :type iterations: int
      :param normalization: One of `['none', 'weight', 'spectral']` normalization that
          selects what type of normalization to apply to the weight matrix. `weight`
          corresponds to weight normalization (Salimans and Kingma, 2016) and
          `spectral` to spectral normalization (Miyato et al, 2018).
      :type normalization: string
      :param bound: a bound on either the weight or spectral norm, when either of
          those two types of regularization are chosen by the `normalization`
          argument. A lower value for this results in fewer required terms of the
          truncated power series to closely approximate the exact value of the matrix
          exponential.
      :type bound: float
  
      """
  
      return MatrixExponential(
          input_dim,
          iterations=iterations,
          normalization=normalization,
          bound=bound,
      )
  
imports: import math
  from functools import partial
  import torch
  import torch.nn
  from torch.distributions import Transform, constraints
  from pyro.nn import DenseNN
  from ..conditional import ConditionalTransformModule
  from ..torch_transform import TransformModule
  from ..util import copy_docs_from
label_desc: Use image node_id 1 for calling a global function with example usage: matrix_exponential(input_dim, iterations, normalization, bound) and returns: MatrixExponential