__init__

Args:

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 held nonnegative.

var_to_bounds: Optional dict where each key is an optimization
Variable and each corresponding value is a length-2 tuple of
(low, high) bounds. Although enforcing this kind of simple constraint
could be accomplished with the inequalities arg, not all optimization
algorithms support general inequality constraints, e.g. L-BFGS-B. Both
low and high can either be numbers or anything convertible to a
NumPy array that can be broadcast to the shape of var (using
np.broadcast_to). To indicate that there is no bound, use None (or
+/- np.infty). For example, if var is a 2x3 matrix, then any of
the following corresponding bounds could be supplied:

(0, np.infty): Each element of var held positive.

(-np.infty, [1, 2]): First column less than 1, second column less
than 2.

(-np.infty, [[1], [2], [3]]): First row less than 1, second row less
than 2, etc.