class_docstr: Abstract base class for variational inference. Specific
  variational inference methods inherit from `VariationalInference`,
  sharing methods such as a default optimizer.
  
  To build an algorithm inheriting from `VariationalInference`, one
  must at the minimum implement `build_loss_and_gradients`: it
  determines the loss function and gradients to apply for a given
  optimizer.
class_docstr_tok: ["Abstract","base","class","for","variational","inference",".","Specific","variational","inference","methods","inherit","from","`","VariationalInference","`",",","sharing","methods","such","as","a","default","optimizer",".","To","build","an","algorithm","inheriting","from","`","VariationalInference","`",",","one","must","at","the","minimum","implement","`","build_loss_and_gradients","`",":","it","determines","the","loss","function","and","gradients","to","apply","for","a","given","optimizer","."]
docstr: Run one iteration of optimization.
  
  Args:
    feed_dict: dict.
      Feed dictionary for a TensorFlow session run. It is used to feed
      placeholders that are not fed during initialization.
  
  Returns:
    dict.
    Dictionary of algorithm-specific information. In this case, the
    loss function value after one iteration.
docstr_tok: ["Run","one","iteration","of","optimization",".","Args",":","feed_dict",":","dict",".","Feed","dictionary","for","a","TensorFlow","session","run",".","It","is","used","to","feed","placeholders","that","are","not","fed","during","initialization",".","Returns",":","dict",".","Dictionary","of","algorithm-specific","information",".","In","this","case",",","the","loss","function","value","after","one","iteration","."]
code: def update(self, feed_dict=None):
      """Run one iteration of optimization.
  
      Args:
        feed_dict: dict.
          Feed dictionary for a TensorFlow session run. It is used to feed
          placeholders that are not fed during initialization.
  
      Returns:
        dict.
        Dictionary of algorithm-specific information. In this case, the
        loss function value after one iteration.
      """
      if feed_dict is None:
          feed_dict = {}
  
      for key, value in six.iteritems(self.data):
          if (
              isinstance(key, tf.Tensor)
              and "Placeholder" in key.op.type
          ):
              feed_dict[key] = value
  
      sess = get_session()
      _, t, loss = sess.run(
          [self.train, self.increment_t, self.loss], feed_dict
      )
  
      if self.debug:
          sess.run(self.op_check, feed_dict)
  
      if self.logging and self.n_print != 0:
          if t == 1 or t % self.n_print == 0:
              summary = sess.run(self.summarize, feed_dict)
              self.train_writer.add_summary(summary, t)
  
      return {"t": t, "loss": loss}
  
file_path: edward/edward/inferences/variational_inference.py
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import abc
  import numpy
  import six
  import tensorflow
  from edward.inferences.inference import Inference
  from edward.models import RandomVariable
  from edward.util import get_session, get_variables
label_desc: Use image node_id 3 for calling the VariationalInference obj's underlying member method code with example usage: obj.update(feed_dict) and returns: dict