pylops.optimization.sparsity.spgl1#
- pylops.optimization.sparsity.spgl1(Op, y, x0=None, SOp=None, tau=0.0, sigma=0.0, show=False, **kwargs_spgl1)[source]#
Spectral Projected-Gradient for L1 norm.
Solve a constrained system of equations given the operator
Op
and a sparsyfing transformSOp
aiming to retrive a model that is sparse in the sparsyfing domain.This is a simple wrapper to
spgl1.spgl1
which is a porting of the well-known SPGL1 MATLAB solver into Python. In order to be able to use this solver you need to have installed thespgl1
library.- Parameters
- Op
pylops.LinearOperator
Operator to invert
- y
numpy.ndarray
Data
- x0
numpy.ndarray
, optional Initial guess
- SOp
pylops.LinearOperator
, optional Sparsifying transform
- tau
float
, optional Non-negative LASSO scalar. If different from
0
, SPGL1 will solve LASSO problem- sigma
list
, optional BPDN scalar. If different from
0
, SPGL1 will solve BPDN problem- show
bool
, optional Display iterations log
- **kwargs_spgl1
Arbitrary keyword arguments for
spgl1.spgl1
solver
- Op
- Returns
- xinv
numpy.ndarray
Inverted model in original domain.
- pinv
numpy.ndarray
Inverted model in sparse domain.
- info
dict
Dictionary with the following information:
tau
, final value of tau (see sigma above)rnorm
, two-norm of the optimal residualrgap
, relative duality gap (an optimality measure)gnorm
, Lagrange multiplier of (LASSO)stat
, final status of solver1
: found a BPDN solution,2
: found a BP solution; exit based on small gradient,3
: found a BP solution; exit based on small residual,4
: found a LASSO solution,5
: error, too many iterations,6
: error, linesearch failed,7
: error, found suboptimal BP solution,8
: error, too many matrix-vector products.
niters
, number of iterationsnProdA
, number of multiplications with AnProdAt
, number of multiplications with A’n_newton
, number of Newton stepstime_project
, projection time (seconds)time_matprod
, matrix-vector multiplications time (seconds)time_total
, total solution time (seconds)niters_lsqr
, number of lsqr iterations (ifsubspace_min=True
)xnorm1
, L1-norm model solution history through iterationsrnorm2
, L2-norm residual history through iterationslambdaa
, Lagrange multiplier history through iterations
- xinv
- Raises
- ModuleNotFoundError
If the
spgl1
library is not installed
Notes