# TF KB-NUFFT
[GitHub](https://github.com/zaccharieramzi/tfkbnufft) | [![Build Status](https://travis-ci.com/zaccharieramzi/tfkbnufft.svg?branch=master)](https://travis-ci.com/zaccharieramzi/tfkbnufft)
Simple installation from pypi:
```
pip install tfkbnufft
```
## About
This package is a verly early-stage and modest adaptation to TensorFlow of the [torchkbnufft](https://github.com/mmuckley/torchkbnufft) package written by Matthew Muckley for PyTorch.
Please cite his work appropriately if you use this package.
## Computation speed
The computation speeds are given in seconds, for a 256x256 image with a spokelength of 512 and 405 spokes.
These numbers are not to be directly compared to those of [torchkbnufft](https://github.com/mmuckley/torchkbnufft#computation-speed), since the computation is not the same.
They are just to give a sense of the time required for computation.
| Operation | CPU | GPU |
|---------------|--------|--------|
| Forward NUFFT | 0.1676 | 0.0626 |
| Adjoint NUFFT | 0.7005 | 0.0635 |
To obtain these numbers for your machine, run the following commands, after installing this package:
```
pip install scikit-image Pillow
python profile_tfkbnufft.py
```
These numbers were obtained with a Quadro P5000.
## Gradients
### w.r.t trajectory
This is experimental currently and is WIP. Please be cautious.
Currently this is tested in CI against results from NDFT, but clear mathematical backing to some
aspects are still being understood for applying the chain rule.
## References
1. Fessler, J. A., & Sutton, B. P. (2003). Nonuniform fast Fourier transforms using min-max interpolation. *IEEE transactions on signal processing*, 51(2), 560-574.
2. Beatty, P. J., Nishimura, D. G., & Pauly, J. M. (2005). Rapid gridding reconstruction with a minimal oversampling ratio. *IEEE transactions on medical imaging*, 24(6), 799-808.
3. Feichtinger, H. G., Gr, K., & Strohmer, T. (1995). Efficient numerical methods in non-uniform sampling theory. Numerische Mathematik, 69(4), 423-440.
## Citation
If you want to cite the package, you can use any of the following:
```bibtex
@conference{muckley:20:tah,
author = {M. J. Muckley and R. Stern and T. Murrell and F. Knoll},
title = {{TorchKbNufft}: A High-Level, Hardware-Agnostic Non-Uniform Fast Fourier Transform},
booktitle = {ISMRM Workshop on Data Sampling \& Image Reconstruction},
year = 2020
}
@misc{Muckley2019,
author = {Muckley, M.J. et al.},
title = {Torch KB-NUFFT},
year = {2019},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/mmuckley/torchkbnufft}}
}
```
Raw data
{
"_id": null,
"home_page": "https://github.com/zaccharieramzi/tfkbnufft",
"name": "tfkbnufft",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.5",
"maintainer_email": "",
"keywords": "MRI,tensorflow",
"author": "Zaccharie Ramzi",
"author_email": "zaccharie.ramzi@inria.fr",
"download_url": "https://files.pythonhosted.org/packages/6b/b5/3e3f9505d3620c7757d762e4fc472d2d2cff4ce3b8cb3f82746c77a51a04/tfkbnufft-0.2.5.tar.gz",
"platform": null,
"description": "# TF KB-NUFFT\n\n[GitHub](https://github.com/zaccharieramzi/tfkbnufft) | [![Build Status](https://travis-ci.com/zaccharieramzi/tfkbnufft.svg?branch=master)](https://travis-ci.com/zaccharieramzi/tfkbnufft)\n\n\nSimple installation from pypi:\n```\npip install tfkbnufft\n```\n\n## About\n\nThis package is a verly early-stage and modest adaptation to TensorFlow of the [torchkbnufft](https://github.com/mmuckley/torchkbnufft) package written by Matthew Muckley for PyTorch.\nPlease cite his work appropriately if you use this package.\n\n## Computation speed\n\nThe computation speeds are given in seconds, for a 256x256 image with a spokelength of 512 and 405 spokes.\nThese numbers are not to be directly compared to those of [torchkbnufft](https://github.com/mmuckley/torchkbnufft#computation-speed), since the computation is not the same.\nThey are just to give a sense of the time required for computation.\n\n| Operation | CPU | GPU |\n|---------------|--------|--------|\n| Forward NUFFT | 0.1676 | 0.0626 |\n| Adjoint NUFFT | 0.7005 | 0.0635 |\n\nTo obtain these numbers for your machine, run the following commands, after installing this package:\n```\npip install scikit-image Pillow\npython profile_tfkbnufft.py\n```\n\nThese numbers were obtained with a Quadro P5000.\n\n\n## Gradients\n\n### w.r.t trajectory\n\nThis is experimental currently and is WIP. Please be cautious. \nCurrently this is tested in CI against results from NDFT, but clear mathematical backing to some \naspects are still being understood for applying the chain rule.\n\n\n## References\n\n1. Fessler, J. A., & Sutton, B. P. (2003). Nonuniform fast Fourier transforms using min-max interpolation. *IEEE transactions on signal processing*, 51(2), 560-574.\n\n2. Beatty, P. J., Nishimura, D. G., & Pauly, J. M. (2005). Rapid gridding reconstruction with a minimal oversampling ratio. *IEEE transactions on medical imaging*, 24(6), 799-808.\n\n3. Feichtinger, H. G., Gr, K., & Strohmer, T. (1995). Efficient numerical methods in non-uniform sampling theory. Numerische Mathematik, 69(4), 423-440.\n\n## Citation\n\nIf you want to cite the package, you can use any of the following:\n\n```bibtex\n@conference{muckley:20:tah,\n author = {M. J. Muckley and R. Stern and T. Murrell and F. Knoll},\n title = {{TorchKbNufft}: A High-Level, Hardware-Agnostic Non-Uniform Fast Fourier Transform},\n booktitle = {ISMRM Workshop on Data Sampling \\& Image Reconstruction},\n year = 2020\n}\n\n@misc{Muckley2019,\n author = {Muckley, M.J. et al.},\n title = {Torch KB-NUFFT},\n year = {2019},\n publisher = {GitHub},\n journal = {GitHub repository},\n howpublished = {\\url{https://github.com/mmuckley/torchkbnufft}}\n}\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A robust, easy-to-deploy non-uniform Fast Fourier Transform in TensorFlow.",
"version": "0.2.5",
"split_keywords": [
"mri",
"tensorflow"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "ba8c1248dc9d03b233ce0a0e3973948aa722f6e0cde7265747286c63623faeae",
"md5": "c9a02b938e3ce154860de3e13b72cf9b",
"sha256": "131b13663f9bf7345093a5d1ac36ea63b44751e67abef3fc92f825942d32f4d4"
},
"downloads": -1,
"filename": "tfkbnufft-0.2.5-py3-none-any.whl",
"has_sig": false,
"md5_digest": "c9a02b938e3ce154860de3e13b72cf9b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.5",
"size": 24396,
"upload_time": "2023-04-13T08:32:34",
"upload_time_iso_8601": "2023-04-13T08:32:34.606270Z",
"url": "https://files.pythonhosted.org/packages/ba/8c/1248dc9d03b233ce0a0e3973948aa722f6e0cde7265747286c63623faeae/tfkbnufft-0.2.5-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6bb53e3f9505d3620c7757d762e4fc472d2d2cff4ce3b8cb3f82746c77a51a04",
"md5": "251fb44af6385db641fbc837a7618f30",
"sha256": "6e2c94424323185ed40d686906e4bbe0575f18fb4f18021dc046d7ee902377c4"
},
"downloads": -1,
"filename": "tfkbnufft-0.2.5.tar.gz",
"has_sig": false,
"md5_digest": "251fb44af6385db641fbc837a7618f30",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.5",
"size": 21940,
"upload_time": "2023-04-13T08:32:36",
"upload_time_iso_8601": "2023-04-13T08:32:36.298001Z",
"url": "https://files.pythonhosted.org/packages/6b/b5/3e3f9505d3620c7757d762e4fc472d2d2cff4ce3b8cb3f82746c77a51a04/tfkbnufft-0.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-04-13 08:32:36",
"github": true,
"gitlab": false,
"bitbucket": false,
"github_user": "zaccharieramzi",
"github_project": "tfkbnufft",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"lcname": "tfkbnufft"
}