Nonlinear Tikhonov-regularized Fresnel reconstruction algorithm with (projected) gradient decent
Add nonlinear Tikhonov-regularized Fresnel reconstruction algorithm with (projected) gradient decent.
This MR includes 3 major contributions:
- a projected gradient decent (PGD) algorithm with line search and adaptive stepsizes, i.e. alternating Barlizai-Borwein.
- differentiable (by PyTorch autograd) functionals for Fresnel regime
- solver for the nonlinear Tikhonov-regularized Fresnel inverse problem (using the functionals).
This implementation can be used for multi-distance phase retrieval and/or in an astigmatistic setting. Furthermore it supports acceleration by GPU (CUDA) devices, if available.
A user (high-level) interface to this (aligning with CTF API):
from hotopy.phase import Tikhonov
tikhonov = Tikhonov(shape, fresnel_nums)
tikhonov(holograms)