priors.InfimalConvolutionTGV#
- class bartorch.priors.InfimalConvolutionTGV#
Bases:
RegularizerInfimal convolution of total generalized variation over
axes.The image is split into two components as for
InfimalConvolutionTV, each penalized by second-order TGV with its own auxiliary vector field:\[\min_{x, z, u, w} \; \gamma_1 \bigl( \alpha_1 \| \nabla (x + z) + u \|_1 + \alpha_0 \| \mathcal{E} u \|_1 \bigr) + \gamma_2 \bigl( \alpha_1 \| \nabla z + w \|_1 + \alpha_0 \| \mathcal{E} w \|_1 \bigr)\]with
alphagiving \((\alpha_1, \alpha_0)\) andgamma\((\gamma_1, \gamma_2)\) (BART’sictgv_reg).Only
bartorch.apps.pics(),bartorch.optim.ADMMandbartorch.optim.PRIDUaccept this term; the auxiliary variables extend the optimization variable and BART counts that extension across the whole set of terms, so the term cannot be built in isolation.The infimal convolution decomposes the image into a component smooth over one set of axes and a component smooth over the other, so
axesmust name at least one of the image’s last three – BART’s spatial axes – and at least one before them, typically 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)
joint_axes (int or tuple of int, default=())
alpha (tuple of float, default=(1.0, sqrt(3))) – The pair \((\alpha_1, \alpha_0)\) in the objective above.
gamma (tuple of float, default=(1.0, 1.0)) – The pair \((\gamma_1, \gamma_2)\) in the objective above.
Also has the methods and properties of Regularizer.