Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mrphys/tensorflow-nufft
Fast, Native Non-Uniform Fast Fourier Transform for TensorFlow
https://github.com/mrphys/tensorflow-nufft
cpp machine-learning ml non-uniform-fast-fourier-transform nufft python tensorflow
Last synced: about 2 months ago
JSON representation
Fast, Native Non-Uniform Fast Fourier Transform for TensorFlow
- Host: GitHub
- URL: https://github.com/mrphys/tensorflow-nufft
- Owner: mrphys
- License: apache-2.0
- Created: 2021-07-03T22:20:18.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2023-03-19T10:07:40.000Z (almost 2 years ago)
- Last Synced: 2024-11-18T05:11:35.831Z (2 months ago)
- Topics: cpp, machine-learning, ml, non-uniform-fast-fourier-transform, nufft, python, tensorflow
- Language: C++
- Homepage: https://mrphys.github.io/tensorflow-nufft/
- Size: 20.6 MB
- Stars: 23
- Watchers: 1
- Forks: 4
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Codeowners: CODEOWNERS
- Authors: AUTHORS
Awesome Lists containing this project
README
# TensorFlow NUFFT
[![PyPI](https://badge.fury.io/py/tensorflow-nufft.svg)](https://badge.fury.io/py/tensorflow-nufft)
[![Build](https://github.com/mrphys/tensorflow-nufft/actions/workflows/build-package.yml/badge.svg)](https://github.com/mrphys/tensorflow-nufft/actions/workflows/build-package.yml)
[![Docs](https://img.shields.io/badge/api-reference-blue.svg)](https://mrphys.github.io/tensorflow-nufft)
[![DOI](https://zenodo.org/badge/382718757.svg)](https://zenodo.org/badge/latestdoi/382718757)TensorFlow NUFFT is a fast, native non-uniform fast Fourier transform op for
TensorFlow. It provides:- Fast CPU/GPU kernels. The TensorFlow framework automatically handles device
placement as usual.
- A simple, well-documented Python interface.
- Gradient definitions for automatic differentiation.
- Shape functions to support static shape inference.The underlying algorithm is based on the NUFFT implementation by the Flatiron
Institute. Please refer to
[FINUFFT](https://github.com/flatironinstitute/finufft/) and
[cuFINUFFT](https://github.com/flatironinstitute/cufinufft/) for more details.## Installation
You can install TensorFlow NUFFT with ``pip``:
```
pip install tensorflow-nufft
```Note that only Linux wheels are currently being provided.
### TensorFlow compatibility
Each TensorFlow NUFFT release is compiled against a specific version of
TensorFlow. To ensure compatibility, it is recommended to install matching
versions of TensorFlow and TensorFlow NUFFT according to the table below.| TensorFlow NUFFT Version | TensorFlow Compatibility | Release Date |
| ------------------------ | ------------------------ | ------------ |
| v0.12.0 | v2.11.x | Nov 27, 2022 |
| v0.11.0 | v2.10.x | Oct 12, 2022 |
| v0.10.1 | v2.10.x | Sep 26, 2022 |
| v0.10.0 | v2.10.x | Sep 7, 2022 |
| v0.9.0 | v2.9.x | Sep 5, 2022 |
| v0.8.1 | v2.9.x | Jun 23, 2022 |
| v0.8.0 | v2.9.x | May 20, 2022 |
| v0.7.3 | v2.8.x | May 4, 2022 |
| v0.7.2 | v2.8.x | Apr 29, 2022 |
| v0.7.1 | v2.8.x | Apr 6, 2022 |
| v0.7.0 | v2.8.x | Feb 8, 2022 |
| v0.6.0 | v2.7.x | Jan 27, 2022 |
| v0.5.0 | v2.7.x | Dec 12, 2021 |
| v0.4.0 | v2.7.x | Nov 8, 2021 |
| v0.3.2 | v2.6.x | Aug 18, 2021 |
| v0.3.1 | v2.6.x | Aug 18, 2021 |
| v0.3.0 | v2.6.x | Aug 13, 2021 |## Usage
Once installed, you can perform NUFFTs in your TensorFlow code simply as:
```python
import tensorflow_nufft as tfftoutputs = tfft.nufft(inputs, points)
```See the documentation for the
[`tfft.nufft`](https://mrphys.github.io/tensorflow-nufft/api_docs/tfft/nufft)
function to learn more about the different parameters.## Documentation
Visit the [docs](https://mrphys.github.io/tensorflow-nufft/) for the API
reference and examples of usage.## Issues
If you use this package and something does not work as you expected, please
[file an issue](https://github.com/mrphys/tensorflow-nufft/issues/new)
describing your problem. We're here to help!## Credits
If you find this software useful in your research, please
[cite us](https://doi.org/10.5281/zenodo.5198288).## Contributors
See CONTRIBUTORS for a list of people who have contributed to this project.
Thank you!All contributions are welcome. If there is an issue you would like to address
or a feature you would like to add, you might want to begin by commenting on
the corresponding issue (or if it doesn't exist yet, by creating a new issue).