code: def __init__(
      self, weights=None, iterations=8, normalization="none", bound=None
  ):
      super().__init__(cache_size=1)
      assert iterations > 0
      self.weights = weights
      self.iterations = iterations
      self.normalization = normalization
      self.bound = bound
  
      # Currently, weight and spectral normalization are unimplemented. This doesn't effect the validity of the
      # bijection, although applying these norms should improve the numerical conditioning of the approximation.
      if normalization == "weight" or normalization == "spectral":
          raise NotImplementedError(
              "Normalization is currently not implemented."
          )
      elif normalization != "none":
          raise ValueError(
              "Unknown normalization method: {}".format(normalization)
          )
  
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 to create a new ConditionedMatrixExponential object from inherited base classes: Transform with example: obj = ConditionedMatrixExponential(weights, iterations, normalization, bound)