class tf.contrib.opt.ExternalOptimizerInterface

Base class for interfaces with external optimization algorithms.

Subclass this and implement _minimize in order to wrap a new optimization algorithm.

ExternalOptimizerInterface should not be instantiated directly; instead use e.g. ScipyOptimizerInterface.


__init__(loss, var_list=None, equalities=None, inequalities=None, **optimizer_kwargs)

Initialize a new interface instance.


  • loss: A scalar Tensor to be minimized.
  • var_list: Optional list of Variable objects to update to minimize loss. Defaults to the list of variables collected in the graph under the key GraphKeys.TRAINABLE_VARIABLES.
  • equalities: Optional list of equality constraint scalar Tensors to be held equal to zero.
  • inequalities: Optional list of inequality constraint scalar Tensors to be kept nonnegative. **optimizer_kwargs: Other subclass-specific keyword arguments.

minimize(session=None, feed_dict=None, fetches=None, step_callback=None, loss_callback=None)

Minimize a scalar Tensor.

Variables subject to optimization are updated in-place at the end of optimization.

Note that this method does not just return a minimization Op, unlike Optimizer.minimize(); instead it actually performs minimization by executing commands to control a Session.


  • session: A Session instance.
  • feed_dict: A feed dict to be passed to calls to
  • fetches: A list of Tensors to fetch and supply to loss_callback as positional arguments.
  • step_callback: A function to be called at each optimization step; arguments are the current values of all optimization variables flattened into a single vector.
  • loss_callback: A function to be called every time the loss and gradients are computed, with evaluated fetches supplied as positional arguments.

Defined in tensorflow/contrib/opt/python/training/