class_docstr: Reparametrizes each affected sample site into one or more auxiliary sample
  sites followed by a deterministic transformation [1].
  
  To specify reparameterizers, pass a ``config`` dict or callable to the
  constructor.  See the :mod:`pyro.infer.reparam` module for available
  reparameterizers.
  
  Note some reparameterizers can examine the ``*args,**kwargs`` inputs of
  functions they affect; these reparameterizers require using
  ``poutine.reparam`` as a decorator rather than as a context manager.
  
  [1] Maria I. Gorinova, Dave Moore, Matthew D. Hoffman (2019)
      "Automatic Reparameterisation of Probabilistic Programs"
      https://arxiv.org/pdf/1906.03028.pdf
  
  :param config: Configuration, either a dict mapping site name to
      :class:`~pyro.infer.reparam.reparam.Reparameterizer` , or a function
      mapping site to :class:`~pyro.infer.reparam.reparam.Reparam` or
      None. See :mod:`pyro.infer.reparam.strategies` for built-in
      configuration strategies.
  :type config: dict or callable
code: def __call__(self, fn: Callable[_P, _T]) -> Callable[_P, _T]:
      return ReparamHandler(self, fn)
  
file_path: pyro/pyro/poutine/reparam_messenger.py
imports: import warnings
  from typing import TYPE_CHECKING, Callable, Dict, Generic, List, Optional, TypeVar, Union
  import torch
  from typing_extensions import ParamSpec
  from pyro.poutine.messenger import Messenger
  from pyro.poutine.runtime import effectful
label_desc: Use image node_id 2 for calling the ReparamMessenger obj's underlying member method code with example usage: obj.__call__(fn) and returns: ReparamHandler