garage.tf.optimizers.lbfgs_optimizer

Limited-memory BFGS (L-BFGS) optimizer.

class LBFGSOptimizer(max_opt_itr=20, callback=None)

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.

update_opt(self, loss, target, inputs, extra_inputs=None, name='LBFGSOptimizer', **kwargs)

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.

loss(self, inputs, extra_inputs=None)

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(self, inputs, extra_inputs=None, name='optimize')

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.