MRITensorflowNUFFT#

class mrinufft.operators.interfaces.tfnufft.MRITensorflowNUFFT(samples, shape, n_coils=1, density=False, smaps=None, eps=1e-06)[source]#

Bases: FourierOperatorBase

MRI Transform Operator using Tensorflow NUFFT.

Parameters:
  • samples (Tensor) – The samples location of shape Nsamples x N_dimensions. It should be C-contiguous.

  • shape (tuple) – Shape of the image space.

  • n_coils (int) – Number of coils.

  • density (bool or Tensor) –

    Density compensation support.
    • If a Tensor, it will be used for the density.

    • If True, the density compensation will be automatically estimated, using the fixed point method.

    • If False, density compensation will not be used.

  • smaps (Tensor)

Methods

__init__

adj_op

Backward Operation.

cg

Conjugate Gradient method to solve the inverse problem.

check_shape

Validate the shapes of the image or k-space data against operator shapes.

compute_density

Compute the density compensation weights and set it.

compute_smaps

Compute the sensitivity maps and set it.

data_consistency

Compute the data consistency.

get_lipschitz_cst

Return the Lipschitz constant of the operator.

make_autograd

Make a new Operator with autodiff support.

op

Forward operation.

pipe

Estimate the density compensation using the pipe method.

with_autograd

Return a Fourier operator with autograd capabilities.

with_off_resonance_correction

Return a new operator with Off Resonnance Correction.

Attributes

autograd_available

available

backend

cpx_dtype

Return complex floating precision of the operator.

density

Density compensation of the operator.

dtype

Return floating precision of the operator.

interfaces

n_batchs

Number of coils for the operator.

n_coils

Number of coils for the operator.

n_samples

Return the number of samples used by the operator.

ndim

Number of dimensions in image space of the operator.

norm_factor

Norm factor of the operator.

samples

Return the samples used by the operator.

shape

Shape of the image space of the operator.

smaps

Sensitivity maps of the operator.

uses_density

Return True if the operator uses density compensation.

uses_sense

Return True if the operator uses sensitivity maps.

op(data)[source]#

Forward operation.

Parameters:

data (Tensor)

Return type:

Tensor

Note

This function uses tensorflow internally, and will convert all its array argument to tensorflow tensors. but will respect the device they are allocated on. The outputs will be converted back to the original array module and device.

adj_op(coeffs)[source]#

Backward Operation.

Parameters:

coeffs (Tensor)

Return type:

Tensor

Note

This function uses tensorflow internally, and will convert all its array argument to tensorflow tensors. but will respect the device they are allocated on. The outputs will be converted back to the original array module and device.

property norm_factor#

Norm factor of the operator.

data_consistency(image_data, obs_data)[source]#

Compute the data consistency.

Parameters:
  • data (Tensor) – Image data

  • obs_data (Tensor) – Observed data

Returns:

The data consistency error in image space.

Return type:

Tensor

Note

This function uses tensorflow internally, and will convert all its array argument to tensorflow tensors. but will respect the device they are allocated on. The outputs will be converted back to the original array module and device.

classmethod pipe(samples, shape, num_iterations=10, osf=2, normalize=True)[source]#

Estimate the density compensation using the pipe method.

Parameters:
  • samples (Tensor) – The samples location of shape Nsamples x N_dimensions. It should be C-contiguous.

  • shape (tuple) – Shape of the image space.

  • n_iter (int) – Number of iterations.

  • osf (int, default 2) – Currently, we support only OSF=2 and this value cannot be changed. Changing will raise an error.

Returns:

The estimated density compensation.

Return type:

Tensor