tfmri.linalg.LinearOperatorGramMRI
tfmri.linalg.LinearOperatorGramMRI¶
- class LinearOperatorGramMRI(image_shape, extra_shape=None, mask=None, trajectory=None, density=None, sensitivities=None, phase=None, fft_norm='ortho', sens_norm=True, dynamic_domain=None, toeplitz_nufft=False, dtype=tf.complex64, name='LinearOperatorGramMRI')[source]¶
Bases:
tensorflow_mri.python.ops.linalg_ops.LinearOperatorMRILinear operator representing an MRI encoding matrix.
If \(A\) is a tfmri.linalg.LinearOperatorMRI, then this ooperator represents the matrix \(G = A^H A\).
In certain circumstances, this operator may be able to apply the matrix \(G\) more efficiently than the composition \(G = A^H A\) using tfmri.linalg.LinearOperatorMRI objects.
- Parameters
image_shape – A tf.TensorShape or a list of
ints. The shape of the images that this operator acts on. Must have length 2 or 3.extra_shape –
An optional tf.TensorShape or list of
ints. Additional dimensions that should be included within the operator domain. Note thatextra_shapeis not needed to reconstruct independent batches of images. However, it is useful when this operator is used as part of a reconstruction that performs computation along non-spatial dimensions, e.g. for temporal regularization. Defaults to None.mask – An optional tf.Tensor of type
tf.bool. The sampling mask. Must have shape[..., *S], whereSis theimage_shapeand...is the batch shape, which can have any number of dimensions. Ifmaskis passed, this operator represents an undersampled MRI operator.trajectory –
An optional tf.Tensor of type
float32orfloat64. Must have shape[..., M, N], whereNis the rank (number of spatial dimensions),Mis the number of samples in the encoded space and...is the batch shape, which can have any number of dimensions. Iftrajectoryis passed, this operator represents a non-Cartesian MRI operator.density –
An optional tf.Tensor of type
float32orfloat64. The sampling densities. Must have shape[..., M], whereMis the number of samples and...is the batch shape, which can have any number of dimensions. This input is only relevant for non-Cartesian MRI operators. If passed, the non-Cartesian operator will include sampling density compensation. If None, the operator will not perform sampling density compensation.sensitivities –
An optional tf.Tensor of type
complex64orcomplex128. The coil sensitivity maps. Must have shape[..., C, *S], whereSis theimage_shape,Cis the number of coils and...is the batch shape, which can have any number of dimensions.phase –
An optional tf.Tensor of type
float32orfloat64. A phase estimate for the image. If provided, this operator will be phase-constrained.fft_norm –
FFT normalization mode. Must be None (no normalization) or
'ortho'. Defaults to'ortho'.sens_norm – A boolean. Whether to normalize coil sensitivities. Defaults to True.
dynamic_domain – A str. The domain of the dynamic dimension, if present. Must be one of
'time'or'frequency'. May only be provided together with a non-scalarextra_shape. The dynamic dimension is the last dimension ofextra_shape. The'time'mode (default) should be used for regular dynamic reconstruction. The'frequency'mode should be used for reconstruction in x-f space.toeplitz_nufft –
A boolean. If True, uses the Toeplitz approach [5] to compute \(F^H F x\), where \(F\) is the non-uniform Fourier operator. If False, the same operation is performed using the standard NUFFT operation. The Toeplitz approach might be faster than the direct approach but is slightly less accurate. This argument is only relevant for non-Cartesian reconstruction and will be ignored for Cartesian problems.
dtype – A tf.dtypes.DType. The dtype of this operator. Must be
complex64orcomplex128. Defaults tocomplex64.name –
An optional str. The name of this operator.
Initialize the
LinearOperator. (deprecated arguments)Deprecated: SOME ARGUMENTS ARE DEPRECATED:
(graph_parents). They will be removed in a future version. Instructions for updating: Do not passgraph_parents. They will no longer be used.This is a private method for subclass use. Subclasses should copy-paste this ``__init__`` documentation.
- Parameters
dtype – The type of the this
LinearOperator. Arguments tomatmulandsolvewill have to be this type.graph_parents – (Deprecated) Python list of graph prerequisites of this
LinearOperatorTypically tensors that are passed during initializationis_non_singular – Expect that this operator is non-singular.
is_self_adjoint – Expect that this operator is equal to its hermitian transpose. If
dtypeis real, this is equivalent to being symmetric.is_positive_definite – Expect that this operator is positive definite, meaning the quadratic form
x^H A xhas positive real part for all nonzerox. Note that we do not require the operator to be self-adjoint to be positive-definite. See: https://en.wikipedia.org/wiki/Positive-definite_matrix#Extension_for_non-symmetric_matricesis_square – Expect that this operator acts like square [batch] matrices.
name – A name for this
LinearOperator.parameters – Python dict of parameters used to instantiate this
LinearOperator.
- Raises
ValueError –
If any member of graph_parents is None or not a
Tensor.ValueError – If hints are set incorrectly.