spyrit.core.inverse.TikhonovMeasurementPriorDiag.wiener_denoise

TikhonovMeasurementPriorDiag.wiener_denoise(x: tensor, var: tensor) tensor[source]

Returns a denoised version of the input tensor using the variance prior.

This uses the attribute self.denoise_weights, which is a learnable parameter.

Inputs:

x (torch.tensor): The input tensor to be denoised.

var (torch.tensor): The variance prior.

Returns:

torch.tensor: The denoised tensor.

Example:
>>> from spyrit.core.meas import HadamSplit2d
>>> from spyrit.core.inverse import TikhonovMeasurementPriorDiag
>>> import torch
>>> acqu = HadamSplit2d(32, 400)
>>> sigma = torch.rand([32*32, 32*32])
>>> recon_op = TikhonovMeasurementPriorDiag(acqu, sigma)
>>> y = torch.rand([10, 3, 400])
>>> var = torch.rand([10, 3, 400])
>>> print(recon_op.wiener_denoise(y, var).shape)
torch.Size([10, 3, 400])