class_docstr: Stochastic gradient Hamiltonian Monte Carlo [@chen2014stochastic].
  
  #### Notes
  
  In conditional inference, we infer $z$ in $p(z, \beta
  \mid x)$ while fixing inference over $\beta$ using another
  distribution $q(\beta)$.
  `SGHMC` substitutes the model's log marginal density
  
  $\log p(x, z) = \log \mathbb{E}_{q(\beta)} [ p(x, z, \beta) ]
                \approx \log 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)$.
  
  #### 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)))
  inference = ed.SGHMC({mu: qmu}, {x: np.zeros(10, dtype=np.float32)})
  ```
docstr: Initialize inference algorithm.
  
  Args:
    step_size: float.
      Constant scale factor of learning rate.
    friction: float.
      Constant scale on the friction term in the Hamiltonian system.
docstr_tok: ["Initialize","inference","algorithm",".","Args",":","step_size",":","float",".","Constant","scale","factor","of","learning","rate",".","friction",":","float",".","Constant","scale","on","the","friction","term","in","the","Hamiltonian","system","."]
code: def initialize(self, step_size=0.25, friction=0.1, *args, **kwargs):
      """Initialize inference algorithm.
  
      Args:
        step_size: float.
          Constant scale factor of learning rate.
        friction: float.
          Constant scale on the friction term in the Hamiltonian system.
      """
      self.step_size = step_size
      self.friction = friction
      self.v = {
          z: tf.Variable(tf.zeros(qz.params.shape[1:], dtype=qz.dtype))
          for z, qz in six.iteritems(self.latent_vars)
      }
      return super(SGHMC, self).initialize(*args, **kwargs)
  
file_path: edward/edward/inferences/sghmc.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import six
  import tensorflow
  from edward.inferences.monte_carlo import MonteCarlo
  from edward.models import RandomVariable, Empirical
  from edward.util import copy
label_desc: Use image node_id 2 for calling the SGHMC obj's underlying member method code with example usage: obj.initialize(step_size, friction) and returns: super