bartorch.optim.PRIDU

bartorch.optim.PRIDU#

class bartorch.optim.PRIDU(regularizers=None, *, maxiter=30, step=0.95, sigma_tau_ratio=1.0, adaptive_step=False, eigen=False, hogwild=False, cclambda=0.0, precond=None)#

Primal-dual iteration (pics --pridu).

Parameters:
  • regularizers (Regularizer or iterable of Regularizer, optional) – Terms from bartorch.prox.

  • maxiter (int)

  • step (float) – Step size (pics -s); 0.95 is what pics uses when none is given.

  • sigma_tau_ratio (float) – Ratio of the dual to the primal step: sigma = sqrt(step) * ratio, tau = sqrt(step) / ratio. pics sets it to the scaling it divided the data by, so pass data_scaling()’s value to match the tool.

  • adaptive_step (bool) – Adapt the steps during the iteration (pics --adaptive_stepsize).

  • eigen (bool) – Scale the step by the largest eigenvalue of the normal operator, estimated with 30 power iterations (pics -e).

  • hogwild (bool) – Decay the steps by a factor of 0.95 (pics -H).

  • cclambda (float) – Weight of an identity added to the normal operator (pics -q).

__init__(regularizers=None, *, maxiter=30, step=0.95, sigma_tau_ratio=1.0, adaptive_step=False, eigen=False, hogwild=False, cclambda=0.0, precond=None)#

Methods

__init__([regularizers, maxiter, step, ...])

fixed_point(image_shape, *[, trainable])

This solver as a deep-equilibrium model: the step's fixed point.

in_library(y, A[, x0])

Solve with BART's own loop, without crossing back into Python.

unrolled(image_shape, *[, trainable])

This solver as a network of maxiter steps, trained end to end.