class_docstr: Base class for :class:`~pyro.poutine.guide.GuideMessenger` autoguides.
  
  :param callable model: A Pyro model.
  :param tuple amortized_plates: A tuple of names of plates over which guide
      parameters should be shared. This is useful for subsampling, where a
      guide parameter can be shared across all plates.
class_docstr_tok: ["Base","class","for",":","class",":","`","~pyro.poutine.guide.GuideMessenger","`","autoguides",".",":","param","callable","model",":","A","Pyro","model",".",":","param","tuple","amortized_plates",":","A","tuple","of","names","of","plates","over","which","guide","parameters","should","be","shared",".","This","is","useful","for","subsampling",",","where","a","guide","parameter","can","be","shared","across","all","plates","."]
code: def __init__(
      self, model: Callable, *, amortized_plates: Tuple[str, ...] = ()
  ):
      self.amortized_plates = amortized_plates
      super().__init__(model)
  
imports: from typing import Callable, Optional, Tuple, Union
  import torch
  from torch.distributions import biject_to, constraints
  import pyro.distributions
  from pyro.distributions.distribution import Distribution
  from pyro.nn.module import PyroModule, PyroParam, pyro_method
  from pyro.ops.tensor_utils import periodic_repeat
  from pyro.poutine.guide import GuideMessenger
  from pyro.poutine.runtime import get_plates
  from .initialization import init_to_feasible, init_to_mean
  from .utils import deep_getattr, deep_setattr, helpful_support_errors
label_desc: Use image node_id 1 to create a new AutoMessenger object from inherited base classes: GuideMessenger, PyroModule with example: obj = AutoMessenger(model)