FNEJacobianSpectralNorm#
- class deepinv.loss.FNEJacobianSpectralNorm(max_iter=10, tol=0.001, verbose=False, eval_mode=False)[source]#
Bases:
Loss
Computes the Firm-Nonexpansiveness Jacobian spectral norm.
Given a function \(f:\mathbb{R}^n\to\mathbb{R}^n\), this module computes the spectral norm of the Jacobian of \(2f-\operatorname{Id}\) (where \(\operatorname{Id}\) denotes the identity) in \(x\), i.e.
\[\|\frac{d(2f-\operatorname{Id})}{du}(x)\|_2,\]as proposed in https://arxiv.org/abs/2012.13247v2. This spectral norm is computed with the
deepinv.loss.JacobianSpectralNorm()
module.- Parameters:
max_iter (int) – maximum numer of iteration of the power method.
tol (float) – tolerance for the convergence of the power method.
eval_mode (bool) – set to False if one does not want to backpropagate through the spectral norm (default), set to True otherwise.
verbose (bool) – whether to print computation details or not.
- forward(y_in, x_in, model, *args_model, interpolation=False, **kwargs_model)[source]#
Computes the Firm-Nonexpansiveness (FNE) Jacobian spectral norm of a model.
- Parameters:
y_in (torch.Tensor) – input of the model (by default).
x_in (torch.Tensor) – an additional point of the model (by default).
model (torch.nn.Module) – neural network, or function, of which we want to compute the FNE Jacobian spectral norm.
*args_model – additional arguments of the model.
interpolation (bool) – whether to input to model an interpolation between y_in and x_in instead of y_in (default is False).
**kargs_model – additional keyword arguments of the model.
Examples using FNEJacobianSpectralNorm
:#
Uncertainty quantification with PnP-ULA.