deepmr.prox.WaveletDictDenoiser#
- class deepmr.prox.WaveletDictDenoiser(*args: Any, **kwargs: Any)[source]#
Overcomplete Wavelet denoising with the \(\ell_1\) norm.
This denoiser is defined as the solution to the optimization problem:
\[\underset{x}{\arg\min} \; \|x-y\|^2 + \lambda \|\Psi x\|_n\]where \(\Psi\) is an overcomplete wavelet transform, composed of 2 or more wavelets, i.e., \(\Psi=[\Psi_1,\Psi_2,\dots,\Psi_L]\), \(\lambda>0\) is a hyperparameter, and where \(\|\cdot\|_n\) is either the \(\ell_1\) norm (
non_linearity="soft"
), the \(\ell_0\) norm (non_linearity="hard"
) or a variant of the \(\ell_0\) norm (non_linearity="topk"
) where only the top-k coefficients are kept; seedeepinv.models.WaveletDenoiser()
for more details.The solution is not available in closed-form, thus the denoiser runs an optimization algorithm for each test image.
- trainable#
If
True
, threshold value is trainable, otherwise it is not. The default isFalse
.- Type:
bool, optional
- wv#
List of mother wavelets. The names of the wavelets can be found in here. The default is
["db8", "db4"]
.- Type:
Iterable[str], optional
- device#
Device on which the wavelet transform is computed. The default is
None
(infer from input).- Type:
str, optional
- max_iter#
Number of iterations of the optimization algorithm. The default is
10
.- Type:
int, optional
- __init__(ndim, ths=0.1, trainable=False, wv=None, device=None, non_linearity='soft', level=None, max_iter=10, *args, **kwargs)[source]#
Methods
__init__
(ndim[, ths, trainable, wv, device, ...])forward
(input)