mirtorch.linear.mri.Gmri
- class mirtorch.linear.mri.Gmri(smaps: Tensor, zmap: Tensor, traj: Tensor, norm: str = 'ortho', L: int = 6, nbins: int = 20, dt: int = 0.004, numpoints: Union[int, Sequence[int]] = 6, grid_size: float = 2, T: Optional[Tensor] = None)
B0-informed mri reconstruction, the name follows MIRT. Note that the data format is a little different from NuSENSE. The input/ourput size depends on the sensitivity maps. The input dimension is [nbatch, 1, nx, ny, (nz)], and the output is [nbatch, ncoil, nshot, nfe].
- norm
normalization of the fft (‘ortho’ or None)
- smaps
tensor with dimension [batch, ncoil, nx, ny, (nz)] (must have a batch dimension). Sensitivity maps.
- zmap
tensor with dimension [batch, nx, ny, (nz)]. Off-resonance effects in Hz. ref: DOI: 10.1109/TSP.2005.853152
- traj
tensor with dimension [nbatch (or 1), ndimension, nshot, nreadout]
- numpoints
int, number of interpolation points in gridding.
- grid_size
float, oversampling ratio (>1)
- L
int, number of segmentation
- dt
float, dwell time in ms
- nbins
int, granularity of exponential approximation.
- T
tensor with dimension [nfe]. Descrbe the time (in ms) of readout out after excitation. When T is none,
- the readout is supposed to start immediately after the excitation.
TODO: add DataParallel
- __init__(smaps: Tensor, zmap: Tensor, traj: Tensor, norm: str = 'ortho', L: int = 6, nbins: int = 20, dt: int = 0.004, numpoints: Union[int, Sequence[int]] = 6, grid_size: float = 2, T: Optional[Tensor] = None)
Initiate the linear operator.
Methods
__init__
(smaps, zmap, traj[, norm, L, ...])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