MLEMIteration#

class deepinv.optim.optim_iterators.MLEMIteration(**kwargs)[source]#

Bases: OptimIterator

Iterator for the Maximum-Likelihood Expectation-Maximization (MLEM) algorithm for Poisson inverse problems.

Class for a single iteration of the MLEM algorithm Shepp and Vardi[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.MLEM optimizer.


References:

forward(X, cur_data_fidelity, cur_prior, cur_params, y, physics, *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 (torch.Tensor) – Current iterate \(x_k\).

  • 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.