- pylops.optimization.sparsity.splitbregman(Op, y, RegsL1, x0=None, niter_outer=3, niter_inner=5, RegsL2=None, dataregsL2=None, mu=1.0, epsRL1s=None, epsRL2s=None, tol=1e-10, tau=1.0, restart=False, show=False, itershow=[10, 10, 10], show_inner=False, callback=None, **kwargs_lsqr)¶
Split Bregman for mixed L2-L1 norms.
Solve an unconstrained system of equations with mixed \(L_2\) and \(L_1\) regularization terms given the operator
Op, a list of \(L_1\) regularization terms
RegsL1, and an optional list of \(L_2\) regularization terms
Operator to invert
\(L_1\) regularization operators
Number of iterations of outer loop
Number of iterations of inner loop of first step of the Split Bregman algorithm. A small number of iterations is generally sufficient and for many applications optimal efficiency is obtained when only one iteration is performed.
Additional \(L_2\) regularization operators (if
None, \(L_2\) regularization is not added to the problem)
\(L_2\) Regularization data (must have the same number of elements of
RegsL2or equal to
Noneto use a zero data for every regularization operator in
Data term damping
\(L_1\) Regularization dampings (must have the same number of elements as
\(L_2\) Regularization dampings (must have the same number of elements as
Tolerance. Stop outer iterations if difference between inverted model at subsequent iterations is smaller than
Scaling factor in the Bregman update (must be close to 1)
The unconstrained inverse problem in inner loop is initialized with the initial guess (
True) or with the last estimate (
Display iterations log
Display set log for the first N1 steps, last N2 steps, and every N3 steps in between where N1, N2, N3 are the three element of the list.
Display inner iteration logs of lsqr
Function with signature (
callback(x)) to call after each iteration where
xis the current model vector
Arbitrary keyword arguments for
scipy.sparse.linalg.lsqrsolver used to solve the first subproblem in the first step of the Split Bregman algorithm.