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 deepinv.optim.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.StackedPhysicsDataFidelity

Stacked data fidelity term \(\datafid{x}{y} = \sum_i d_i(A_i(x),y_i)\).

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.

deepinv.optim.ZeroFidelity

Zero data fidelity term \(\datafid{x}{y} = 0\).

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 reconstruction, defined as

deepinv.optim.LogPoissonLikelihoodDistance

Log-Poisson negative log-likelihood.

deepinv.optim.ZeroDistance

Zero distance \(\distance{z}{y} = 0\).

Iterators#

User Guide: refer to Iterators for more information.

deepinv.optim.FixedPoint

Fixed-point iterations module.

deepinv.optim.OptimIterator

Base class for optimization 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.least_squares

Solves \(\min_x \|Ax-y\|^2 + \frac{1}{\gamma}\|x-z\|^2\) using the specified solver.

deepinv.optim.utils.least_squares_implicit_backward

Least squares solver with O(1) memory backward propagation using implicit differentiation.

deepinv.optim.utils.lsqr

LSQR algorithm for solving linear systems.

deepinv.optim.utils.bicgstab

Biconjugate gradient stabilized algorithm.

deepinv.optim.utils.minres

Minimal Residual Method for solving symmetric equations.

deepinv.optim.utils.conjugate_gradient

Standard conjugate gradient algorithm.

deepinv.optim.utils.gradient_descent

Standard gradient descent algorithm`.

deepinv.optim.phase_retrieval.correct_global_phase

Corrects the global phase of the reconstructed image.

deepinv.optim.phase_retrieval.spectral_methods

Utility function for spectral methods.

deepinv.optim.utils.GaussianMixtureModel

Gaussian mixture model including parameter estimation.