mirtorch.linear.mri.NuSense
- class mirtorch.linear.mri.NuSense(smaps: Tensor, traj: Tensor, norm='ortho', batchmode=True, numpoints: Union[int, Sequence[int]] = 6, grid_size: float = 2, sequential: bool = False)
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 dimension is [nbatch, 1, nx, ny, (nz)], and the output is [nbatch, ncoil, npoints]. Otherwise, the input dimension is [nx, ny, (nz)], and the output is [ncoil, npoints].
- 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 as traj.
- sequential
bool, memory saving mode
- batchmode
bool, determining if there exist batch and channel dimension (should always be 1).
- norm
normalization of the fft (‘ortho’ or None)
- numpoints
int, number of interpolation points in gridding.
- grid_size
float, oversampling ratio (>1)
- __init__(smaps: Tensor, traj: Tensor, norm='ortho', batchmode=True, numpoints: Union[int, Sequence[int]] = 6, grid_size: float = 2, sequential: bool = False)
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