AutoPreconditionedGradientPolicy

class itergp.methods.policies.AutoPreconditionedGradientPolicy(precond_iter, precond_policy=<itergp.methods.policies.UnitVectorPolicy object>)

Bases: object

Policy which first constructs a preconditioner on the fly and then returns preconditioned gradient actions.

This policy constructs a diagonal-plus-low-rank preconditioner by first using a precond_policy for precond_size steps. Afterwards the policy returns preconditioned gradients as actions using the previously constructed preconditioner.

Parameters
  • precond_iter (int) – Number of iterations to use for preconditioner construction. Equivalently, the rank of the low-rank component of the preconditioner (inverse).

  • precond_policy (Tuple[linalg.solvers.policies.LinearSolverPolicy]) – Policy to use for the first precond_size iterations, which determines the constructed preconditioner. Defaults to a UnitVectorPolicy, which is equivalent to preconditioning with a partial Cholesky factorization.

Return type

None

Methods Summary

__call__(solver_state, rng)

Return an action for a given solver state.

Methods Documentation

__call__(solver_state, rng)[source]

Return an action for a given solver state.

Parameters
Returns

Next action to take.

Return type

action