garage.tf.optimizers.lbfgs_optimizer module

Limited-memory BFGS (L-BFGS) optimizer.

class LbfgsOptimizer(max_opt_itr=20, callback=None)[source]

Bases: object

Limited-memory BFGS (L-BFGS) optimizer.

Performs unconstrained optimization via L-BFGS.

Parameters:
  • max_opt_itr (int) – Maximum iteration for update.
  • callback (callable) – Function to call during optimization.
loss(inputs, extra_inputs=None)[source]

The loss.

Parameters:
  • inputs (list[numpy.ndarray]) – List of input values.
  • extra_inputs (list[numpy.ndarray]) – List of extra input values.
Returns:

Loss.

Return type:

float

Raises:

Exception – If loss function is None, i.e. not defined.

optimize(inputs, extra_inputs=None, name='optimize')[source]

Perform optimization.

Parameters:
  • inputs (list[numpy.ndarray]) – List of input values.
  • extra_inputs (list[numpy.ndarray]) – List of extra input values.
  • name (str) – Name scope.
Raises:

Exception – If loss function is None, i.e. not defined.

update_opt(loss, target, inputs, extra_inputs=None, name='LbfgsOptimizer', **kwargs)[source]

Construct operation graph for the optimizer.

Parameters:
  • loss (tf.Tensor) – Loss objective to minimize.
  • target (object) – Target object to optimize. The object should implemenet get_params() and get_param_values.
  • inputs (list[tf.Tensor]) – List of input placeholders.
  • extra_inputs (list[tf.Tensor]) – List of extra input placeholders.
  • name (str) – Name scope.
  • kwargs (dict) – Extra unused keyword arguments. Some optimizers have extra input, e.g. KL constraint.