Tuning the performances¶
Some parameters can be used to tune the performances when using iterative methods.
Preconditionning the iterative algorithms¶
A fundamental operation in iterative techniques is the projection-backprojection. Consider for example a simple Landweber iteration (SIRT) for solving the least-squares problem \(\frac{1}{2}\norm{P x - d}_2^2\) :
The operator \(P^T P\) is involved at each iteration. The convergence rate of any gradient-like algorithm (including FISTA) primarily depends on the norm of the operator \(P^T P\) (its largest eigenvalue).
It is well-known that in the projection operation, the components around the center of the Fourier polar grid (low frequencies) are over-represented with respect to those far from the center (high frequencies). The use of a “ramp” filter weights back the frequencies, which is at the root of the Filtered Back-Projection method.
Using this ramp filter in the iterative process, i.e performing \(C P^T y\) instead of \(P y\) where \(C\) is the ramp-filtering operation, boils down to using a preconditioner. The corresponding parameter (activated by default) is
DO_PRECONDITION = 1 # Default value is 1
This dramatically increases the convergence rate : a few hundreds of iterations are required, instead of thousands.
Note that if your projections are already filtered (for example as a part of the phase retrieval), this option has to be disabled.
Speeding-up the iterative rings correction¶
Remember that for enabling the rings correction when using an iterative technique, the parameters are :
ITER_RING_HEIGHT = 50000 # Put a huge value
ITER_RING_SIZE = 1 # Only relevant for DL
ITER_RING_BETA = 0.5 # Weight of the "sparsity" of the rings
NUMBER_OF_RINGS = 1 # When using partial rings correction (only for DL)
The rings correction slows down the reconstruction process. The following parameter can be tuned to speed-up the convergence :
RING_ALPHA = 1.0 # Less of equal to 1
The default value is 1. This is a preconditioner for the rings variables : the more RING_ALPHA differs from 1.0, the more preconditioning is done.