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.
__init__
__init__(optimizer)
Constructs a new ConstrainedOptimizer.
Args:
optimizer: tf.train.Optimizer, used to optimize the ConstraintedMinimizationProblem.
Returns:
A new ConstrainedOptimizer.
Properties
optimizer
Returns the tf.train.Optimizer used for optimization.
Methods
tf.contrib.constrained_optimization.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 Operation 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 intf.train.Optimizer'sminimizemethod.var_list: as intf.train.Optimizer'sminimizemethod.gate_gradients: as intf.train.Optimizer'sminimizemethod.aggregation_method: as intf.train.Optimizer'sminimizemethod.colocate_gradients_with_ops: as intf.train.Optimizer'sminimizemethod.name: as intf.train.Optimizer'sminimizemethod.grad_loss: as intf.train.Optimizer'sminimizemethod.
Returns:
Operation, the train_op.
Raises:
ValueError: If unconstrained_steps is provided, but global_step is not.
tf.contrib.constrained_optimization.ConstrainedOptimizer.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 Operation 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:
minimization_problem: ConstrainedMinimizationProblem, the problem to optimize.global_step: as intf.train.Optimizer'sminimizemethod.var_list: as intf.train.Optimizer'sminimizemethod.gate_gradients: as intf.train.Optimizer'sminimizemethod.aggregation_method: as intf.train.Optimizer'sminimizemethod.colocate_gradients_with_ops: as intf.train.Optimizer'sminimizemethod.name: as intf.train.Optimizer'sminimizemethod.grad_loss: as intf.train.Optimizer'sminimizemethod.
Returns:
Operation, the train_op.
tf.contrib.constrained_optimization.ConstrainedOptimizer.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 Operation 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:
minimization_problem: ConstrainedMinimizationProblem, the problem to optimize.global_step: as intf.train.Optimizer'sminimizemethod.var_list: as intf.train.Optimizer'sminimizemethod.gate_gradients: as intf.train.Optimizer'sminimizemethod.aggregation_method: as intf.train.Optimizer'sminimizemethod.colocate_gradients_with_ops: as intf.train.Optimizer'sminimizemethod.name: as intf.train.Optimizer'sminimizemethod.grad_loss: as intf.train.Optimizer'sminimizemethod.
Returns:
Operation, the train_op.