MLEMIteration#
- class deepinv.optim.optim_iterators.MLEMIteration(eps=1e-6, cost_fn=None, **kwargs)[source]#
Bases:
OptimIteratorIterator for the Maximum-Likelihood Expectation-Maximization (MLEM) algorithm for Poisson inverse problems.
Class for a single iteration of the MLEM algorithm [1], which is a classic baseline reconstruction method for inverse problems with Poisson noise statistics. More details on the algorithm can be found in the documentation of the
deepinv.optim.optimizers.MLEMoptimizer.
- References:
- forward(X, cur_data_fidelity, cur_prior, cur_params, y, physics, sensitivity, *args, **kwargs)[source]#
Single Maximum-Likelihood Expectation-Maximization (MLEM) iteration.
This corresponds to an update on both the Poisson negative log-likelihood and prior terms if a prior is provided, and only on Poisson negative log-likelihood otherwise.
- Parameters:
X (dict) – Dictionary containing the current iterate and the estimated cost.
cur_data_fidelity (deepinv.optim.DataFidelity) – Instance of the DataFidelity class defining the current data_fidelity.
cur_prior (deepinv.optim.Prior) – Instance of the Prior class defining the current prior.
cur_params (dict) – Dictionary containing the current parameters of the algorithm.
y (torch.Tensor) – Input data.
physics (deepinv.physics.Physics) – Instance of the physics modeling the data-fidelity term.
sensitivity (torch.Tensor) – Precomputed sensitivity map \(A^T \mathbf{1}\).