optim.admm

Contents

optim.admm#

bartorch.optim.admm()#

Solve a regularized least-squares problem by alternating direction multipliers.

Minimizes \(\tfrac12 \| A x - y \|^2 + \sum_j g_j(G_j x - b_j)\) by splitting each term, so it takes any number of regularizers and, unlike ist() and fista(), terms whose linear transform \(G_j\) is not the identity – total variation among them – and terms with auxiliary variables. Each iteration solves its quadratic subproblem by conjugate gradients.

Parameters:
  • y (tensor) – Data of A.oshape.

  • A (LinearOperator) – The encoding operator.

  • regularizers (Regularizer or ImplicitPrior, or an iterable of them, default=None) – The terms \(g_j\).

  • x0 (tensor, default=None) – Warm start of A.ishape; without one the iteration starts at zero.

  • **settings – Settings of ADMM, among them maxiter (30), rho and cg_maxiter (10).

Returns:

Complex64 solution of A.ishape.

Return type:

torch.Tensor