deepinv.optim#

This module provides optimization utils for constructing reconstruction models based on optimization algorithms. Please refer to the user guide for more details.

Base Class#

User Guide: refer to Optimization for more information.

deepinv.optim.optim_builder

Helper function for building an instance of the BaseOptim() class.

deepinv.optim.BaseOptim

Class for optimization algorithms, consists in iterating a fixed-point operator.

Potentials#

User Guide: refer to Potentials for more information.

deepinv.optim.Potential

Base class for a potential \(h : \xset \to \mathbb{R}\) to be used in an optimization problem.

Data Fidelity#

User Guide: refer to Data Fidelity for more information.

deepinv.optim.DataFidelity

Base class for the data fidelity term \(\distance{A(x)}{y}\) where \(A\) is the forward operator, \(x\in\xset\) is a variable and \(y\in\yset\) is the data, and where \(d\) is a distance function, from the class deepinv.optim.Distance().

deepinv.optim.L1

\(\ell_1\) data fidelity term.

deepinv.optim.L2

Implementation of the data-fidelity as the normalized \(\ell_2\) norm

deepinv.optim.IndicatorL2

Data-fidelity as the indicator of \(\ell_2\) ball with radius \(r\).

deepinv.optim.PoissonLikelihood

Poisson negative log-likelihood.

deepinv.optim.LogPoissonLikelihood

Log-Poisson negative log-likelihood.

deepinv.optim.AmplitudeLoss

Amplitude loss as the data fidelity term for deepinv.physics.PhaseRetrieval() reconstrunction.

Priors#

User Guide: refer to Priors for more information.

deepinv.optim.Prior

Prior term \(\reg{x}\).

deepinv.optim.PnP

Plug-and-play prior \(\operatorname{prox}_{\gamma \regname}(x) = \operatorname{D}_{\sigma}(x)\).

deepinv.optim.RED

Regularization-by-Denoising (RED) prior \(\nabla \reg{x} = x - \operatorname{D}_{\sigma}(x)\).

deepinv.optim.ScorePrior

Score via MMSE denoiser \(\nabla \reg{x}=\left(x-\operatorname{D}_{\sigma}(x)\right)/\sigma^2\).

deepinv.optim.Tikhonov

Tikhonov regularizer \(\reg{x} = \frac{1}{2}\| x \|_2^2\).

deepinv.optim.L1Prior

\(\ell_1\) prior \(\reg{x} = \| x \|_1\).

deepinv.optim.WaveletPrior

Wavelet prior \(\reg{x} = \|\Psi x\|_{p}\).

deepinv.optim.TVPrior

Total variation (TV) prior \(\reg{x} = \| D x \|_{1,2}\).

deepinv.optim.PatchPrior

Patch prior \(g(x) = \sum_i h(P_i x)\) for some prior \(h(x)\) on the space of patches.

deepinv.optim.PatchNR

Patch prior via normalizing flows.

deepinv.optim.L12Prior

\(\ell_{1,2}\) prior \(\reg{x} = \sum_i\| x_i \|_2\).

Predefined models#

User Guide: refer to Predefined Iterative Algorithms for more information.

deepinv.optim.DPIR

Deep Plug-and-Play (DPIR) algorithm for image restoration.

deepinv.optim.EPLL

Expected Patch Log Likelihood reconstruction method.

Bregman#

User Guide: refer to Bregman for more information.

deepinv.optim.Bregman

Module for the Bregman framework with convex Bregman potential \(\phi\).

deepinv.optim.BregmanL2

Module for the L2 norm as Bregman potential \(\phi(x) = \frac{1}{2} \|x\|_2^2\).

deepinv.optim.BurgEntropy

Module for the using Burg's entropy as Bregman potential \(\phi(x) = - \sum_i \log x_i\).

deepinv.optim.NegEntropy

Module for the using negative entropy as Bregman potential \(\phi(x) = \sum_i x_i \log x_i\).

deepinv.optim.Bregman_ICNN

Module for the using a deep ICNN as Bregman potential.

Distance#

User Guide: refer to Potentials for more information.

deepinv.optim.Distance

Distance \(\distance{x}{y}\).

deepinv.optim.L2Distance

Implementation of \(\distancename\) as the normalized \(\ell_2\) norm

deepinv.optim.IndicatorL2Distance

Indicator of \(\ell_2\) ball with radius \(r\).

deepinv.optim.PoissonLikelihoodDistance

(Negative) Log-likelihood of the Poisson distribution.

deepinv.optim.L1Distance

\(\ell_1\) distance

deepinv.optim.AmplitudeLossDistance

Amplitude loss for deepinv.physics.PhaseRetrieval() reconstrunction, defined as

deepinv.optim.LogPoissonLikelihoodDistance

Log-Poisson negative log-likelihood.

Iterators#

User Guide: refer to Iterators for more information.

deepinv.optim.FixedPoint

Fixed-point iterations module.

deepinv.optim.OptimIterator

Base class for all Optim() iterators.

deepinv.optim.optim_iterators.fStep

Module for the single iteration steps on the data-fidelity term \(f\).

deepinv.optim.optim_iterators.gStep

Module for the single iteration steps on the prior term \(\lambda \regname\).

deepinv.optim.optim_iterators.GDIteration

Iterator for Gradient Descent.

deepinv.optim.optim_iterators.PGDIteration

Iterator for proximal gradient descent.

deepinv.optim.optim_iterators.FISTAIteration

Iterator for fast iterative soft-thresholding (FISTA).

deepinv.optim.optim_iterators.CPIteration

Iterator for Chambolle-Pock.

deepinv.optim.optim_iterators.ADMMIteration

Iterator for alternating direction method of multipliers.

deepinv.optim.optim_iterators.DRSIteration

Iterator for Douglas-Rachford Splitting.

deepinv.optim.optim_iterators.HQSIteration

Single iteration of half-quadratic splitting.

deepinv.optim.optim_iterators.MDIteration

Iterator for Mirror Descent.

deepinv.optim.optim_iterators.SMIteration

Iterator for Spectral Methods for deepinv.physics.PhaseRetrieval().

Utils#

User Guide: refer to Utils for more information.

deepinv.optim.utils.conjugate_gradient

Standard conjugate gradient algorithm.

deepinv.optim.utils.gradient_descent

Standard gradient descent algorithm`.

deepinv.optim.utils.GaussianMixtureModel

Gaussian mixture model including parameter estimation.