tf.contrib.constrained_optimization.ConstrainedOptimizer

Class ConstrainedOptimizer

Defined in tensorflow/contrib/constrained_optimization/python/constrained_optimizer.py.

Base class representing a constrained optimizer.

A ConstrainedOptimizer wraps a tf.train.Optimizer (or more than one), and applies it to a ConstrainedMinimizationProblem. Unlike a tf.train.Optimizer, which takes a tensor to minimize as a parameter to its minimize() method, a constrained optimizer instead takes a ConstrainedMinimizationProblem.

Properties

optimizer

Returns the tf.train.Optimizer used for optimization.

Methods

__init__

__init__(optimizer)

Constructs a new ConstrainedOptimizer.

Args:

  • optimizer: tf.train.Optimizer, used to optimize the ConstraintedMinimizationProblem.

Returns:

A new ConstrainedOptimizer.

minimize

minimize(
    minimization_problem,
    unconstrained_steps=None,
    global_step=None,
    var_list=None,
    gate_gradients=train_optimizer.Optimizer.GATE_OP,
    aggregation_method=None,
    colocate_gradients_with_ops=False,
    name=None,
    grad_loss=None
)

Returns an Op for minimizing the constrained problem.

This method combines the functionality of minimize_unconstrained and minimize_constrained. If global_step < unconstrained_steps, it will perform an unconstrained update, and if global_step >= unconstrained_steps, it will perform a constrained update.

The reason for this functionality is that it may be best to initialize the constrained optimizer with an approximate optimum of the unconstrained problem.

Args:

  • minimization_problem: ConstrainedMinimizationProblem, the problem to optimize.
  • unconstrained_steps: int, number of steps for which we should perform unconstrained updates, before transitioning to constrained updates.
  • global_step: as in tf.train.Optimizer's minimize method.
  • var_list: as in tf.train.Optimizer's minimize method.
  • gate_gradients: as in tf.train.Optimizer's minimize method.
  • aggregation_method: as in tf.train.Optimizer's minimize method.
  • colocate_gradients_with_ops: as in tf.train.Optimizer's minimize method.
  • name: as in tf.train.Optimizer's minimize method.
  • grad_loss: as in tf.train.Optimizer's minimize method.

Returns:

TensorFlow Op.

Raises:

  • ValueError: If unconstrained_steps is provided, but global_step is not.

minimize_constrained

minimize_constrained(
    minimization_problem,
    global_step=None,
    var_list=None,
    gate_gradients=train_optimizer.Optimizer.GATE_OP,
    aggregation_method=None,
    colocate_gradients_with_ops=False,
    name=None,
    grad_loss=None
)

Returns an Op for minimizing the constrained problem.

Unlike minimize_unconstrained, this function attempts to find a solution that minimizes the objective portion of the minimization problem while satisfying the constraints portion.

Args:

Returns:

TensorFlow Op.

minimize_unconstrained

minimize_unconstrained(
    minimization_problem,
    global_step=None,
    var_list=None,
    gate_gradients=train_optimizer.Optimizer.GATE_OP,
    aggregation_method=None,
    colocate_gradients_with_ops=False,
    name=None,
    grad_loss=None
)

Returns an Op for minimizing the unconstrained problem.

Unlike minimize_constrained, this function ignores the constraints (and proxy_constraints) portion of the minimization problem entirely, and only minimizes objective.

Args:

Returns:

TensorFlow Op.