Nonlinear operators#
bartorch.nlop represents a nonlinear operator \(F\) from one or more inputs to
one or more outputs, with its derivative \(DF_x\) at a point and the adjoint of
that derivative. F(*x) evaluates it, F.linearize(*x) returns \(DF_x\) as a
LinearOperator, a @ b composes (applying b first,
either side possibly linear), and F.partial(i, value) fixes input i.
Model-based reconstruction describes the reconstruction problems these
operators model, and Learned reconstruction how they and the
Gauss-Newton steps enter autograd.
Operator class#
Object |
Description |
|---|---|
Base class: evaluation, derivative and its adjoint, composition, partial application, linearization |
|
Nonlinear operator from a differentiable PyTorch function, with derivative and adjoint from autograd |
MRI encoding models#
Object |
Inputs |
Model |
|---|---|---|
Image, Sobolev-weighted coil coefficients |
BART’s |
|
Image, coil coefficients |
|
|
Image, coil coefficients |
|
|
Image, sensitivities |
Product of image and unweighted sensitivities in front of any linear encoding |
Signal models#
Quantitative signal models evaluated by BlochSim; each maps parameter maps to one image per contrast.
Object |
Unknowns |
Signal |
|---|---|---|
Any signal model’s parameters |
A signal model over parameter maps, such as |
|
\(T_1\), optional complex amplitude |
Inversion recovery at a series of inversion times |
|
\(T_2\) or \(T_2^*\), optional complex amplitude |
Mono-exponential decay at a series of echo times |
|
Any simulated tissue property |
Bloch simulation of a BlochSim sequence |
Elementary operators#
Object |
Description |
|---|---|
Pointwise product of two inputs, with broadcasting |
|
Pointwise quotient of two inputs |
|
\(a x + b z\) of two inputs |
|
Operator of no inputs returning a fixed tensor |
|
\(e^x\) |
|
\(\log x\) |
|
\(\sqrt{x}\) |
|
\(x^p\) |
|
\(x + c\) |
|
\(1/x\) |
|
\(\lvert x \rvert\) |
|
\(\sqrt{\lvert x \rvert^2 + \epsilon}\) |
|
\(x / \lvert x \rvert\) |
|
\(\sum \lvert x \rvert^2\) over axes |
|
\(\sqrt{\sum \lvert x \rvert^2}\) over axes |
Gauss-Newton methods#
Object |
Description |
|---|---|
Iteratively regularized Gauss-Newton solver for \(F(x) = y\) |
|
One Gauss-Newton step as a |
|
Functional form of |
IRGNM(inner=None) solves each linearized problem by conjugate gradients
inside BART, as nlinv does; IRGNM(inner=solver) passes it to a solver from
bartorch.optim, whose regularization terms then apply to the step.
The examples 4. Joint reconstruction of image and sensitivity maps and 9. Nonlinear inversion for T2 mapping use these objects in complete reconstructions.