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.