class_docstr: Base class for "easy guides", which are more flexible than
  :class:`~pyro.infer.AutoGuide` s, but are easier to write than raw Pyro guides.
  
  Derived classes should define a :meth:`guide` method. This :meth:`guide`
  method can combine ordinary guide statements (e.g. ``pyro.sample`` and
  ``pyro.param``) with the following special statements:
  
  - ``group = self.group(...)`` selects multiple ``pyro.sample`` sites in the
    model. See :class:`Group` for subsequent methods.
  - ``with self.plate(...): ...`` should be used instead of ``pyro.plate``.
  - ``self.map_estimate(...)`` uses a ``Delta`` guide for a single site.
  
  Derived classes may also override the :meth:`init` method to provide custom
  initialization for models sites.
  
  :param callable model: A Pyro model.
docstr: Runs the guide. This is typically used by inference algorithms.
  
  .. note:: This method is used internally by :class:`~torch.nn.Module`.
      Users should instead use :meth:`~torch.nn.Module.__call__`.
docstr_tok: ["Runs","the","guide",".","This","is","typically","used","by","inference","algorithms",".","..","note",":",":","This","method","is","used","internally","by",":","class",":","`","~torch.nn.Module","`",".","Users","should","instead","use",":","meth",":","`","~torch.nn.Module.__call__","`","."]
code: def forward(self, *args, **kwargs):
      """
      Runs the guide. This is typically used by inference algorithms.
  
      .. note:: This method is used internally by :class:`~torch.nn.Module`.
          Users should instead use :meth:`~torch.nn.Module.__call__`.
      """
      if self.prototype_trace is None:
          self._setup_prototype(*args, **kwargs)
      result = self.guide(*args, **kwargs)
      self.plates.clear()
      return result
  
imports: import re
  import weakref
  from abc import ABCMeta, abstractmethod
  from contextlib import ExitStack
  import torch
  from torch.distributions import biject_to
  import pyro
  import pyro.distributions
  import pyro.poutine
  import pyro.poutine.runtime
  from pyro.distributions.util import broadcast_shape, sum_rightmost
  from pyro.infer.autoguide.guides import prototype_hide_fn
  from pyro.infer.autoguide.initialization import InitMessenger
  from pyro.nn.module import PyroModule, PyroParam
label_desc: Use image node_id 6 for calling the EasyGuide obj's underlying member method code with example usage: obj.forward() and returns: result