nki-ai / direct Goto Github PK
View Code? Open in Web Editor NEWDeep learning framework for MRI reconstruction
Home Page: https://docs.aiforoncology.nl/direct
License: Apache License 2.0
Deep learning framework for MRI reconstruction
Home Page: https://docs.aiforoncology.nl/direct
License: Apache License 2.0
Progress issue for implementing a RIM baseline for the FastMRI multicoil challenge. This does require coil sensitivity estimates, as the baseline RIM is too sensitivity if these are not provided. While these sensitivities can typically be measured, they are not provided in the FastMRI dataset.
Several ways to do this:
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in a966c48. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in ab2ca8d. It's been assigned to @jonasteuwen because they committed the code.Normalization should be done on the basis of the ACS signal, as this is the only part We can ensure is there.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.Learning rate does not seem to decrease at milestones. A few options would be to change the LR scheduler to a configurable object as other options also would be a feasible solution.
Current loss and metrics are hardcoded in rim_engine.py
, mainly because it is unclear what would be the proper way of using this: for instance, we might want to have L1 + alpha * SSIM loss, where alpha is configurable, and we would want both the L1 and SSIM loss logged.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.When having several validation sets, the validation metrics get logged correct, but the logging of the images fails. Likely only the last dataset is displayed.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.In v0.1.2 the validation is done in batches per volume name, likely requiring simpler logic in the evaluation function in the engines.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in a966c48. It's been assigned to @jonasteuwen because they committed the code.This will be handled once Hydra is implemented.
TODO
comment in d951fca. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.Using hydra rather than OmegaConf will make composition of configurations much more convenient and allow easy access to a lot of hyperparameter search libraries such as Ax Sweeper, nevergrad, and several launcher systems.
For now, this is scheduled for version 1.0 as currently, the configuration system is reasonably stable. Adding more reconstruction algorithms and fixing the open issues is a priority for now.
Additional models are supported, but not logged, a generic method should be setup such that we can set:
tensorboard:
log_images:
- sensitivity_map
and these are subsequently logged to tensorboard (or anywhere).
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.A general strategy for seeds should be devised.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.When a model is initialized from a previous checkpoint it would be useful to immediately have a validation result
Create a serialize_dict function, or build the write_json to serialize tensors.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.When working with a lot of configurations it is convenient to get the complete config in a human-readable format in the project folder, which can be checked against the parameters given by the config itself.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.Currently, the training and validation metrics are treated differently and are logged with a median window - this is clearly something we want to avoid.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.When validating the whole dataset is properly passed, and the sampling indices are properly passed, but nevertheless less volumes end up in the output metrics than what has been passed through the model.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.The accelerations argument should be parsed correctly to the build_masking_function
For now, the acc factor will be selected automatically from the cfg file and set to the first option used for validation.
Two ways to fix it:
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.When the evaluation fails with an uncaught exception the resuming will happen after the exception, it would be more convenient and consistent if resuming would immediately trigger evaluation.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.Goal of the library should be to also provide a reproducible baseline for the other MRI reconstruction models on public datasets. This should include, but is not limited to:
cc @wdika: any additions?
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.Current travis build fails, the code however should work.
TODO
comment in 9cb5f43. It's been assigned to @jonasteuwen because they committed the code.A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.