Giter Site home page Giter Site logo

zaccharieramzi / tf-fastmri-data Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 2.0 105 KB

TensorFlow data pipelines for the fastMRI dataset

Home Page: https://fastmri.org/

License: MIT License

Python 99.68% Shell 0.32%
tensorflow fastmri fastmri-challenge fastmri-dataset

tf-fastmri-data's Introduction

tf-fastmri-data

Build Status

Built around the tf.data API, tf-fastmri-data offers reliable, unit-tested, datasets for the fastMRI dataset.

Installation

Currently, you need to install the package from source:

git clone https://github.com/zaccharieramzi/tf-fastmri-data.git
cd tf-fastmri-data
pip install .

Example use

from tf_fastmri_data.datasets.cartesian import CartesianFastMRIDatasetBuilder

train_dataset = CartesianFastMRIDatasetBuilder(path='/path/to/singlecoil_train').preprocessed_ds

Data

To download the data, you need to consent to the fastMRI terms listed here. Afterwards, you should receive an email with data download links.

You can then use the environment variable FASTMRI_DATA_DIR to indicate where your fastMRI is. This will allow you to not have to specify the path when instantiating a FastMRIDatasetBuilder.

PyTorch

The PyTorch equivalent of this library is simply the official fastMRI repository. In particular, the data folder is where you find the data utils.

Benchmark

You can run the benchmark script with the following command:

FASTMRI_DATA_DIR=/path/to/fastmri python benchmark.py

Currently the benchmark gives the following output:

Multi coil with tfio loading (random slice): 0.369743709564209s per-file.
Single coil with tfio loading (random slice): 0.02855397939682007s per-file.
Multi coil with h5py loading (random slice, without preprocessing): 0.010439331208042165s per-file.
Single coil with h5py loading (random slice, without preprocessing): 0.0015996736497735258s per-file.
Single coil training with tfio loading: 0.04578723907470703s per-step.

You can also see the recommendation of TensorBoard regarding the single coil dataset (with a very simple model):

TensorBoard reco

Citation

If you use the fastMRI data or this code in your research, please consider citing the fastMRI dataset paper:

@inproceedings{zbontar2018fastMRI,
  title={{fastMRI}: An Open Dataset and Benchmarks for Accelerated {MRI}},
  author={Jure Zbontar and Florian Knoll and Anuroop Sriram and Matthew J. Muckley and Mary Bruno and Aaron Defazio and Marc Parente and Krzysztof J. Geras and Joe Katsnelson and Hersh Chandarana and Zizhao Zhang and Michal Drozdzal and Adriana Romero and Michael Rabbat and Pascal Vincent and James Pinkerton and Duo Wang and Nafissa Yakubova and Erich Owens and C. Lawrence Zitnick and Michael P. Recht and Daniel K. Sodickson and Yvonne W. Lui},
  journal = {ArXiv e-prints},
  archivePrefix = "arXiv",
  eprint = {1811.08839},
  year={2018}
}

tf-fastmri-data's People

Contributors

chaithyagr avatar zaccharieramzi avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar

tf-fastmri-data's Issues

Benchmark this

In particular, a screenshot of tf profiling with a simple U-net could be nice.

Implement fake equidistant mask

Right now we only have the possibility to implement the real equidistant mask scheme for retrospective undersampling.

However, due to a slight coding mistake, the so-called equidistant scheme for undersampling in the fastMRI dataset is not really equidistant.

We should implement this mask by simply copy-pasting what was done here, and maybe refactoring a bit.

Why do we restrict to 320x320?

self._raw_ds = self._raw_ds.map(
lambda _, kspace: crop(ortho_ifft2d(kspace), (320, 320)),
num_parallel_calls=self.num_parallel_calls,
deterministic=True,
)

In above code, I feel its best to just not hardcode and rather just crop the data by later pipelines and not initially itself as this makes the data shapes as None, None etc. Also, using adjust_image_size is surely a better alternative (however, I dont want to crop here at all)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.