optim.FISTA#
- class bartorch.optim.FISTA#
Bases:
ISTFast iterative soft thresholding, looping
FISTABlock.- Parameters:
regularizers (Regularizer or ImplicitPrior, default=None) – Exactly one term, whose transform is the identity: the iteration applies its proximal operator to the image.
maxiter (int, default=30)
step (float, default=0.95) – Step size.
eigen (bool, default=False) – Scale the step by the largest eigenvalue of the normal operator, estimated with 30 power iterations.
hogwild (bool, default=False) – BART’s
hogwildsetting.pqr (tuple of float, default=None) – Acceleration parameters
(p, q, r);Nonekeeps BART’s.cclambda (float, default=0.0) – Weight of an identity added to the normal operator.
precond (LinearOperator, default=None) – Left preconditioner,
lsqr2_create’sprecond_op: chained onto the normal operator and onto the adjoint, so the iteration seesM(A^H A + lambda) x = M A^H y. Must be positive definite – BART composes it without symmetrizing. BART’s own reconstructions pass none.
Examples
>>> fista = optim.FISTA(priors.Wavelet((-1, -2), 0.01), maxiter=50) >>> x = fista(kspace, A) >>> x = fista(kspace, A, x0=x) # warm start
A term over a transform is refused, since the iteration is not given the transform:
>>> optim.FISTA(priors.TotalVariation((-1, -2), 0.01))(kspace, A) Traceback (most recent call last): ... ValueError: FISTA applies the proximal operator to the image, ...
Also has the methods and properties of IST.