mirtorch.linear.mri.NuSenseGram
- class mirtorch.linear.mri.NuSenseGram(smaps: Tensor, traj: Tensor, norm='ortho', batchmode=True, numpoints: Union[int, Sequence[int]] = 6, grid_size: float = 2)
Gram operator (A’A) of the Non-Cartesian sense operator: “SENSE: Sensitivity encoding for fast MRI” The implementation calls Matthew Muckley’s Torchkbnufft toolbox: https://github.com/mmuckley/torchkbnufft The input/ourput size depends on the sensitivity maps. If we use the batch dimension, the input/output dimension is [nbatch, 1, nx, ny, (nz)]. Otherwise, the input/output dimension is [nx, ny, (nz)].
- traj
tensor with dimension [(batch), ndim, nshot*npoints]. Note that traj can have no batch dimension even x have. ref: https://github.com/mmuckley/torchkbnufft/pull/24
- sensitivity maps
tensor with dimension [(batch), ncoil, nx, ny, (nz)]. On the same device with traj.
- norm
normalization of the fft (‘ortho’ or None)
- numpoints
int, number of interpolation points in gridding.
- grid_size
float, oversampling ratio (>1)
- batchmode
bool, determining if there exist batch and channel dimension (should always be 1).
- __init__(smaps: Tensor, traj: Tensor, norm='ortho', batchmode=True, numpoints: Union[int, Sequence[int]] = 6, grid_size: float = 2)
Initiate the linear operator.
Methods
__init__
(smaps, traj[, norm, batchmode, ...])Initiate the linear operator.
adjoint
(x)Apply the adjoint operator
apply
(x)Apply the forward operator
to
(*args, **kwargs)Copy to different devices
Attributes
H
Apply the (Hermitian) transpose