class_docstr: Variational inference with the KL divergence
  
  $\text{KL}( q(z; \lambda) \| p(z \mid x) ).$
  
  This class minimizes the objective using the score function gradient
  and an analytic entropy term.
  
  The objective function also adds to itself a summation over all
  tensors in the `REGULARIZATION_LOSSES` collection.
class_docstr_tok: ["Variational","inference","with","the","KL","divergence","$","\\text","{","KL","}","(","q","(","z",";","\\lambda",")","\\|","p","(","z","\\mid","x",")",")",".","$","This","class","minimizes","the","objective","using","the","score","function","gradient","and","an","analytic","entropy","term",".","The","objective","function","also","adds","to","itself","a","summation","over","all","tensors","in","the","`","REGULARIZATION_LOSSES","`","collection","."]
docstr: Create an inference algorithm.
  
  Args:
    latent_vars: list of RandomVariable or
                 dict of RandomVariable to RandomVariable.
      Collection of random variables to perform inference on. If
      list, each random variable will be implictly optimized using a
      `Normal` random variable that is defined internally with a
      free parameter per location and scale and is initialized using
      standard normal draws. The random variables to approximate
      must be continuous.
code: def __init__(self, latent_vars=None, data=None):
      """Create an inference algorithm.
  
      Args:
        latent_vars: list of RandomVariable or
                     dict of RandomVariable to RandomVariable.
          Collection of random variables to perform inference on. If
          list, each random variable will be implictly optimized using a
          `Normal` random variable that is defined internally with a
          free parameter per location and scale and is initialized using
          standard normal draws. The random variables to approximate
          must be continuous.
      """
      if isinstance(latent_vars, list):
          with tf.variable_scope(None, default_name="posterior"):
              latent_vars_dict = {}
              continuous = (
                  "01",
                  "nonnegative",
                  "simplex",
                  "real",
                  "multivariate_real",
              )
              for z in latent_vars:
                  if (
                      not hasattr(z, "support")
                      or z.support not in continuous
                  ):
                      raise AttributeError(
                          "Random variable {} is not continuous or a random "
                          "variable with supported continuous support.".format(
                              z
                          )
                      )
                  batch_event_shape = z.batch_shape.concatenate(
                      z.event_shape
                  )
                  loc = tf.Variable(tf.random_normal(batch_event_shape))
                  scale = tf.nn.softplus(
                      tf.Variable(tf.random_normal(batch_event_shape))
                  )
                  latent_vars_dict[z] = Normal(loc=loc, scale=scale)
              latent_vars = latent_vars_dict
              del latent_vars_dict
  
      super(ScoreEntropyKLqp, self).__init__(latent_vars, data)
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import six
  import tensorflow
  from edward.inferences.variational_inference import VariationalInference
  from edward.models import RandomVariable
  from edward.util import copy, get_descendants
label_desc: Use image node_id 1 to create a new ScoreEntropyKLqp object from inherited base classes: VariationalInference with example: obj = ScoreEntropyKLqp(latent_vars, data)