bartorch.linop.MultiplySum

bartorch.linop.MultiplySum#

class bartorch.linop.MultiplySum(tensor, ishape, oshape)#

Multiply by a tensor and sum over the axes absent from the codomain.

BART’s fmac. This is the coil model: with sensitivities of shape (coils, y, x), ishape (1, y, x) and oshape (coils, y, x) it maps an image to coil images, and its adjoint combines coil images with the conjugate sensitivities.

Parameters:
  • tensor (tensor) – What to multiply by.

  • ishape (tuple of int) – Domain and codomain, C order. An axis the domain has and the codomain does not is summed over.

  • oshape (tuple of int) – Domain and codomain, C order. An axis the domain has and the codomain does not is summed over.

__init__(tensor, ishape, oshape)#

Methods

A(x, **kwargs)

A x, under deepinv's name.

A_adjoint(y, **kwargs)

A^H y, under deepinv's name, recorded for autograd.

A_adjoint_A(x, **kwargs)

A^H A x, under deepinv's name, recorded for autograd.

A_dagger(y, **kwargs)

The pseudo-inverse, under deepinv's name.

__init__(tensor, ishape, oshape)

adjoint(y[, out])

A^H y, without recording for autograd.

cogram()

A A^H as an operator.

conj()

conj(A): conjugate the input, apply, conjugate the output.

forward(x[, out])

A x, without recording for autograd.

gram()

A^H A as an operator.

normal(x[, out])

A^H A x.

opnorm()

The spectral norm, by BART's power iteration on A^H A.

pinv(y[, damp])

(A^H A + damp I)^-1 A^H y, the damped least-squares solution.

to_nonlinear()

The same operator as a NonlinearOperator.

Attributes

H

A^H, from BART's own adjoint constructor.

T

A^T, the adjoint without the conjugation, as conj(A).H.

codim_rank

How many axes the codomain has.

codim_shape

The codomain, under pyxu's name for it; the same as oshape.

codim_size

How many elements the codomain holds.

device

dim_rank

How many axes the domain has.

dim_shape

The domain, under pyxu's name for it; the same as ishape.

dim_size

How many elements the domain holds.

ishape

oshape