TensorFlow MRI is a library of TensorFlow operators for computational MRI. The library has a Python interface and is mostly written in Python. However, computations are efficiently performed by the TensorFlow backend (implemented in C++/CUDA), which brings together the ease of use and fast prototyping of Python with the speed and efficiency of optimized lower-level implementations.
Being an extension of TensorFlow, TensorFlow MRI integrates seamlessly in ML applications. No additional interfacing is needed to include a SENSE operator within a neural network, or to use a trained prior as part of an iterative reconstruction. Therefore, the gap between ML and non-ML components of image processing pipelines is eliminated.
Whether an application involves ML or not, TensorFlow MRI operators can take full advantage of the TensorFlow framework, with capabilities including automatic differentiation, multi-device support (CPUs and GPUs), automatic device placement and copying of tensor data, and conversion to fast, serializable graphs.
TensorFlow MRI contains operators for:
- Multicoil arrays (tfmri.coils): coil combination, coil compression and estimation of coil sensitivity maps.
- Convex optimization (tfmri.convex): convex functions (quadratic, L1, L2, Tikhonov, total variation, etc.) and optimizers (ADMM).
- Keras initializers (tfmri.initializers): neural network initializers, including support for complex-valued weights.
- I/O (tfmri.io): additional I/O functions potentially useful when working with MRI data.
- Keras layers (tfmri.layers): layers and building blocks for neural networks, including support for complex-valued weights, inputs and outputs.
- Linear algebra (tfmri.linalg): linear operators specialized for image processing and MRI.
- Loss functions (tfmri.losses): for classification, segmentation and image restoration.
- Metrics (tfmri.metrics): for classification, segmentation and image restoration.
- Image processing (tfmri.image): filtering, gradients, phantoms, image quality assessment, etc.
- Image reconstruction (tfmri.recon): Cartesian/non-Cartesian, 2D/3D, parallel imaging, compressed sensing.
- k-space sampling (tfmri.sampling): Cartesian masks, non-Cartesian trajectories, sampling density compensation, etc.
- Signal processing (tfmri.signal): N-dimensional fast Fourier transform (FFT), non-uniform FFT (NUFFT) (see also TensorFlow NUFFT), discrete wavelet transform (DWT), k-space filtering, etc.
- Unconstrained optimization (tfmri.optimize): gradient descent, L-BFGS.
- And more, e.g., supporting array manipulation and math tasks.
You can install TensorFlow MRI with pip
:
$ pip install tensorflow-mri
Note that only Linux is currently supported.
Each TensorFlow MRI release is compiled against a specific version of TensorFlow. To ensure compatibility, it is recommended to install matching versions of TensorFlow and TensorFlow MRI according to the table below.
TensorFlow MRI Version | TensorFlow Compatibility | Release Date |
---|---|---|
v0.22.0 | v2.10.x | Sep 26, 2022 |
v0.21.0 | v2.9.x | Jul 24, 2022 |
v0.20.0 | v2.9.x | Jun 18, 2022 |
v0.19.0 | v2.9.x | Jun 1, 2022 |
v0.18.0 | v2.8.x | May 6, 2022 |
v0.17.0 | v2.8.x | Apr 22, 2022 |
v0.16.0 | v2.8.x | Apr 13, 2022 |
v0.15.0 | v2.8.x | Apr 1, 2022 |
v0.14.0 | v2.8.x | Mar 29, 2022 |
v0.13.0 | v2.8.x | Mar 15, 2022 |
v0.12.0 | v2.8.x | Mar 14, 2022 |
v0.11.0 | v2.8.x | Mar 10, 2022 |
v0.10.0 | v2.8.x | Mar 3, 2022 |
v0.9.0 | v2.7.x | Dec 3, 2021 |
v0.8.0 | v2.7.x | Nov 11, 2021 |
v0.7.0 | v2.6.x | Nov 3, 2021 |
v0.6.2 | v2.6.x | Oct 13, 2021 |
v0.6.1 | v2.6.x | Sep 30, 2021 |
v0.6.0 | v2.6.x | Sep 28, 2021 |
v0.5.0 | v2.6.x | Aug 29, 2021 |
v0.4.0 | v2.6.x | Aug 18, 2021 |
Visit the docs for guides, tutorials and the API reference.
If you use this package and something does not work as you expected, please file an issue describing your problem. We're here to help!
If you like this software, star the repository!
If you find this software useful in your research, you can cite TensorFlow MRI using its Zenodo record.
In the above link, scroll down to the "Export" section and select your favorite export format to get an up-to-date citation.
Contributions of any kind are welcome! Open an issue or pull request to begin.