priors.InfimalConvolutionTV

priors.InfimalConvolutionTV#

class bartorch.priors.InfimalConvolutionTV#

Bases: Regularizer

Infimal convolution of total variation over axes (BART’s C).

The image is split into two components, each penalized by total variation:

\[\min_{z} \; \lambda \bigl( \gamma_1 \| \nabla (x + z) \|_1 + \gamma_2 \| \nabla z \|_1 \bigr)\]

(BART’s ictv_reg). The two gradients are the same operator: the anisotropic derivative scalings of pics --tvscales and --tvscales2 are not carried by the term.

Accepted by bartorch.apps.pics(), bartorch.optim.ADMM and bartorch.optim.PRIDU only: the auxiliary variables extend the optimization variable, and BART counts them across the whole set of terms, so the term cannot be built alone.

axes must include at least one of the image’s last three axes (BART’s spatial axes) and at least one before them, such as subspace coefficients or the frames of a time series.

Parameters:
  • axes (int or tuple of int) – Axes to differentiate, as indices into the image’s shape.

  • weight (float) – \(\lambda\).

  • joint_axes (int or tuple of int, default=()) – Axes along which entries are thresholded jointly.

  • gamma (tuple of float, default=(1.0, 1.0)) – \((\gamma_1, \gamma_2)\).

Raises:

ValueError – axes lacks a spatial or a non-spatial axis (raised when the term is used in a solve).

Also has the methods and properties of Regularizer.