spyrit.core.recon.TikhonovMeasurementPriorDiag
- class spyrit.core.recon.TikhonovMeasurementPriorDiag(sigma: tensor, M: int)[source]
Bases:
ModuleTikhonov regularisation with prior in the measurement domain.
Considering linear measurements \(m = Hx \in\mathbb{R}^M\), where \(H = GF\) is the measurement matrix and \(x\in\mathbb{R}^N\) is a vectorized image, it estimates \(x\) from \(m\) by approximately minimizing
\[\|m - GFx \|^2_{\Sigma^{-1}_\alpha} + \|F(x - x_0)\|^2_{\Sigma^{-1}}\]where \(x_0\in\mathbb{R}^N\) is a mean image prior, \(\Sigma\in\mathbb{R}^{N\times N}\) is a covariance prior, and \(\Sigma_\alpha\in\mathbb{R}^{M\times M}\) is the measurement noise covariance. The matrix \(G\in\mathbb{R}^{M\times N}\) is a subsampling matrix.
Note
The class is instantiated from \(\Sigma\), which represents the covariance of \(Fx\).
- Args:
sigma: covariance prior with shape \(N\) x \(N\)M: number of measurements \(M\)
- Attributes:
comp: The learnable completion layer initialized as \(\Sigma_1 \Sigma_{21}^{-1}\). This layer is ann.Lineardenoi: The learnable denoising layer initialized from \(\Sigma_1\).- Example:
>>> sigma = torch.rand([32*32, 32*32]) >>> recon_op = TikhonovMeasurementPriorDiag(sigma, 400)
Methods
forward(x, x_0, var, meas_op)Computes the Tikhonov regularization with prior in the measurement domain.