class_docstr: Reparameterizer for :class:`~torch.distributions.transforms.Transform`
  objects whose Jacobian determinant is one.
  
  :param transform: A transform whose Jacobian has determinant 1.
  :type transform: ~torch.distributions.transforms.Transform
  :param str suffix: A suffix to append to the transformed site.
  :param bool experimental_allow_batch: EXPERIMENTAL allow coupling across a
      batch dimension. The targeted batch dimension and all batch dimensions
      to the right will be converted to event dimensions. Defaults to False.
class_docstr_tok: ["Reparameterizer","for",":","class",":","`","~torch.distributions.transforms.Transform","`","objects","whose","Jacobian","determinant","is","one",".",":","param","transform",":","A","transform","whose","Jacobian","has","determinant","1.",":","type","transform",":","~torch.distributions.transforms.Transform",":","param","str","suffix",":","A","suffix","to","append","to","the","transformed","site",".",":","param","bool","experimental_allow_batch",":","EXPERIMENTAL","allow","coupling","across","a","batch","dimension",".","The","targeted","batch","dimension","and","all","batch","dimensions","to","the","right","will","be","converted","to","event","dimensions",".","Defaults","to","False","."]
code: def __init__(
      self,
      transform,
      suffix="transformed",
      *,
      experimental_allow_batch=False,
  ):
      self.transform = transform.with_cache()
      self.suffix = suffix
      self.experimental_allow_batch = experimental_allow_batch
  
file_path: pyro/pyro/infer/reparam/unit_jacobian.py
imports: from contextlib import ExitStack
  from torch.distributions import biject_to
  from torch.distributions.transforms import ComposeTransform
  import pyro
  import pyro.distributions
  from pyro.poutine.plate_messenger import block_plate
  from .reparam import Reparam
label_desc: Use image node_id 1 to create a new UnitJacobianReparam object from inherited base classes: Reparam with example: obj = UnitJacobianReparam(transform, suffix)