pylops.TorchOperator#

class pylops.TorchOperator(*args, **kwargs)[source]#

Wrap a PyLops operator into a Torch function.

This class can be used to wrap a pylops operator into a torch function. Doing so, users can mix native torch functions (e.g. basic linear algebra operations, neural networks, etc.) and pylops operators.

Since all operators in PyLops are linear operators, a Torch function is simply implemented by using the forward operator for its forward pass and the adjoint operator for its backward (gradient) pass.

Parameters
Oppylops.LinearOperator

PyLops operator

batchbool, optional

Input has single sample (False) or batch of samples (True). If batch==False the input must be a 1-d Torch tensor or a tensor of size equal to Op.dims; if batch==True the input must be a 2-d Torch tensor with batches along the first dimension or a tensor of size equal to [nbatch, *Op.dims] where nbatch is the size of the batch

flattenbool, optional

Input is flattened along Op.dims (True) or not (False)

devicestr, optional

Device to be used when applying operator (cpu or gpu)

devicetorchstr, optional

Device to be assigned the output of the operator to (any Torch-compatible device)

Methods

__init__(Op[, batch, flatten, device, ...])

Initialize this LinearOperator.

adjoint()

Hermitian adjoint.

apply(x)

Apply forward pass to input vector

apply_columns(cols)

Apply subset of columns of operator

cond([uselobpcg])

Condition number of linear operator.

conj()

Complex conjugate operator

div(y[, niter, densesolver])

Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\).

dot(x)

Matrix-matrix or matrix-vector multiplication.

eigs([neigs, symmetric, niter, uselobpcg])

Most significant eigenvalues of linear operator.

matmat(X)

Matrix-matrix multiplication.

matvec(x)

Matrix-vector multiplication.

reset_count()

Reset counters

rmatmat(X)

Matrix-matrix multiplication.

rmatvec(x)

Adjoint matrix-vector multiplication.

todense([backend])

Return dense matrix.

toimag([forw, adj])

Imag operator

toreal([forw, adj])

Real operator

tosparse()

Return sparse matrix.

trace([neval, method, backend])

Trace of linear operator.

transpose()

Transpose this linear operator.

Examples using pylops.TorchOperator#

19. Automatic Differentiation

19. Automatic Differentiation

19. Automatic Differentiation