Type ConstrainedMinimizationProblem
Namespace tensorflow.contrib.constrained_optimization
Parent PythonObjectContainer
Interfaces IConstrainedMinimizationProblem
Abstract class representing a `ConstrainedMinimizationProblem`. A ConstrainedMinimizationProblem consists of an objective function to
minimize, and a set of constraint functions that are constrained to be
nonpositive. In addition to the constraint functions, there may (optionally) be proxy
constraint functions: a ConstrainedOptimizer will attempt to penalize these
proxy constraint functions so as to satisfy the (non-proxy) constraints. Proxy
constraints could be used if the constraints functions are difficult or
impossible to optimize (e.g. if they're piecewise constant), in which case the
proxy constraints should be some approximation of the original constraints
that is well-enough behaved to permit successful optimization.
Properties
Public properties
object constraints get;
Returns the vector of constraint functions. Letting g_i be the ith element of the constraints vector, the ith constraint
will be g_i <= 0.
object constraints_dyn get;
Returns the vector of constraint functions. Letting g_i be the ith element of the constraints vector, the ith constraint
will be g_i <= 0.
int num_constraints get;
Returns the number of constraints.
object num_constraints_dyn get;
Returns the number of constraints.
object objective get;
Returns the objective function.
object objective_dyn get;
Returns the objective function.
object pre_train_ops get;
Returns a list of `Operation`s to run before the train_op. When a `ConstrainedOptimizer` creates a train_op (in `minimize`
`minimize_unconstrained`, or `minimize_constrained`), it will include these
ops before the main training step.
object pre_train_ops_dyn get;
Returns a list of `Operation`s to run before the train_op. When a `ConstrainedOptimizer` creates a train_op (in `minimize`
`minimize_unconstrained`, or `minimize_constrained`), it will include these
ops before the main training step.
object proxy_constraints get;
Returns the optional vector of proxy constraint functions. The difference between `constraints` and `proxy_constraints` is that, when
proxy constraints are present, the `constraints` are merely EVALUATED during
optimization, whereas the `proxy_constraints` are DIFFERENTIATED. If there
are no proxy constraints, then the `constraints` are both evaluated and
differentiated. For example, if we want to impose constraints on step functions, then we
could use these functions for `constraints`. However, because a step
function has zero gradient almost everywhere, we can't differentiate these
functions, so we would take `proxy_constraints` to be some differentiable
approximation of `constraints`.
object proxy_constraints_dyn get;
Returns the optional vector of proxy constraint functions. The difference between `constraints` and `proxy_constraints` is that, when
proxy constraints are present, the `constraints` are merely EVALUATED during
optimization, whereas the `proxy_constraints` are DIFFERENTIATED. If there
are no proxy constraints, then the `constraints` are both evaluated and
differentiated. For example, if we want to impose constraints on step functions, then we
could use these functions for `constraints`. However, because a step
function has zero gradient almost everywhere, we can't differentiate these
functions, so we would take `proxy_constraints` to be some differentiable
approximation of `constraints`.