The pyunlocbox.acceleration module implements acceleration schemes for use with the pyunlocbox.solvers. Pass a given acceleration object as an argument to your chosen solver during its initialization so that the solver can use it.


The accel base class defines a common interface to all acceleration schemes:

accel.pre(self, functions, x0)

Pre-processing specific to the acceleration scheme.

accel.update_step(self, solver, objective, niter)

Update the step size for the next iteration.

accel.update_sol(self, solver, objective, niter)

Update the solution point for the next iteration.

Post-processing specific to the acceleration scheme.

Acceleration schemes

Then, derived classes implement various common acceleration schemes.


Dummy acceleration scheme which does nothing.


Backtracking based on a local quadratic approximation of the smooth part of the objective.


Acceleration scheme for forward-backward solvers.


Acceleration scheme with backtracking for forward-backward solvers.

regularized_nonlinear([k, lambda_, …])

Regularized nonlinear acceleration (RNA) for gradient descent.