IndicatorL2#
- class deepinv.optim.IndicatorL2(radius=None)[source]#
Bases:
DataFidelity
Data-fidelity as the indicator of \(\ell_2\) ball with radius \(r\).
\[\begin{split}\iota_{\mathcal{B}_2(y,r)}(u)= \left. \begin{cases} 0, & \text{if } \|u-y\|_2\leq r \\ +\infty & \text{else.} \end{cases} \right.\end{split}\]- Parameters:
radius (float) – radius of the ball. Default: None.
- prox(x, y, physics, *args, radius=None, stepsize=None, crit_conv=1e-05, max_iter=100, **kwargs)[source]#
Proximal operator of the indicator of \(\ell_2\) ball with radius radius, i.e.
\[\operatorname{prox}_{\gamma \iota_{\mathcal{B}_2(y, r)}(A\cdot)}(x) = \underset{u}{\text{argmin}} \,\, \iota_{\mathcal{B}_2(y, r)}(Au)+\frac{1}{2}\|u-x\|_2^2\]Since no closed form is available for general measurement operators, we use a dual forward-backward algorithm, as suggested in Proximal Splitting Methods in Signal Processing.
- Parameters:
x (torch.Tensor) – Variable \(x\) at which the proximity operator is computed.
y (torch.Tensor) – Data \(y\) of the same dimension as \(\forw{x}\).
radius (torch.Tensor) – radius of the \(\ell_2\) ball.
stepsize (float) – step-size of the dual-forward-backward algorithm.
crit_conv (float) – convergence criterion of the dual-forward-backward algorithm.
max_iter (int) – maximum number of iterations of the dual-forward-backward algorithm.
gamma (float) – factor in front of the indicator function. Notice that this does not affect the proximity operator since the indicator is scale invariant. Default: None.
- Returns:
(torch.Tensor) projection on the \(\ell_2\) ball of radius radius and centered in y.
Examples using IndicatorL2
:#
Unfolded Chambolle-Pock for constrained image inpainting