class_docstr: Metropolis-Hastings [@metropolis1953equation; @hastings1970monte].
  
  #### Notes
  
  In conditional inference, we infer $z$ in $p(z, \beta
  \mid x)$ while fixing inference over $\beta$ using another
  distribution $q(\beta)$.
  To calculate the acceptance ratio, `MetropolisHastings` uses an
  estimate of the marginal density,
  
  $p(x, z) = \mathbb{E}_{q(\beta)} [ p(x, z, \beta) ]
            \approx p(x, z, \beta^*)$
  
  leveraging a single Monte Carlo sample, where $\beta^* \sim
  q(\beta)$. This is unbiased (and therefore asymptotically exact as a
  pseudo-marginal method) if $q(\beta) = p(\beta \mid x)$.
  
  `MetropolisHastings` assumes the proposal distribution has the same
  support as the prior. The `auto_transform` attribute in
  the method `initialize()` is not applicable.
  
  #### Examples
  
  ```python
  mu = Normal(loc=0.0, scale=1.0)
  x = Normal(loc=mu, scale=1.0, sample_shape=10)
  
  qmu = Empirical(tf.Variable(tf.zeros(500)))
  proposal_mu = Normal(loc=mu, scale=0.5)
  inference = ed.MetropolisHastings({mu: qmu}, {mu: proposal_mu},
                                    data={x: np.zeros(10, dtype=np.float32)})
  ```
code: def initialize(self, *args, **kwargs):
      kwargs["auto_transform"] = False
      return super(MetropolisHastings, self).initialize(*args, **kwargs)
  
file_path: edward/edward/inferences/metropolis_hastings.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import six
  import tensorflow
  from collections import OrderedDict
  from edward.inferences.monte_carlo import MonteCarlo
  from edward.models import RandomVariable
  from edward.util import check_latent_vars, copy
label_desc: Use image node_id 2 for calling the MetropolisHastings obj's underlying member method code with example usage: obj.initialize() and returns: super