PatchPrior#

class deepinv.optim.PatchPrior(negative_patch_log_likelihood, n_patches=-1, patch_size=6, pad=False, *args, **kwargs)[source]#

Bases: Prior

Patch prior \(g(x) = \sum_i h(P_i x)\) for some prior \(h(x)\) on the space of patches.

Given a negative log likelihood (NLL) function on the patch space, this builds a prior by summing the NLLs of all (overlapping) patches in the image.

Parameters:
  • negative_patch_log_likelihood (callable) – NLL function on the patch space

  • n_patches (int) – number of randomly selected patches for prior evaluation. -1 for taking all patches

  • patch_size (int) – size of the patches

  • pad (bool) – whether to use mirror padding on the boundary to avoid undesired boundary effects

fn(x, *args, **kwargs)[source]#

Computes the value of the potential \(h(x)\).

Parameters:

x (torch.Tensor) – Variable \(x\) at which the potential is computed.

Returns:

(torch.tensor) prior \(h(x)\).

Examples using PatchPrior:#

Patch priors for limited-angle computed tomography

Patch priors for limited-angle computed tomography