-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Overview
Wenqi Li edited this page Mar 16, 2020
·
1 revision
Medical Open Network for AI - Toolkit for Healthcare Imaging
This document identifies key concepts of project MONAI at a high level, the goal is to facilitate further technical discussions of requirements, roadmap, feasibility and trade-offs.
- Develop a community of academic, industrial and clinical researchers collaborating and working on a common foundation of standardized tools.
- Create a state-of-the-art, end-to-end training toolkit for healthcare imaging.
- Provide academic and industrial researchers with the optimized and standardized way to create and evaluate models
- Primarily focused on the healthcare researchers who develop DL models for medical imaging
- Deliver domain-specific workflow capabilities
- Address the end-end “Pain points” when creating medical imaging deep learning workflows.
- Provide a robust foundation with a performance optimized system software stack that allows researchers to focus on the research and not worry about software development principles.
- Pythonic -- object oriented components
- Compositional -- can combine components to create workflows
- Extensible -- easy to create new components and extend existing components
- Easy to debug -- loosely coupled, easy to follow code (e.g. in eager or graph mode)
- Flexible -- interfaces for easy integration of external modules
- Portable -- use components/workflows via Python “import”
- Run well-known baseline workflows in a few commands
- Access to the well-known public datasets in a few lines of code
- Unified/consistent component APIs with documentation specifications
- Unified/consistent data and model formats, compatible with other existing standards
- Consistent coding style - extensive documentation - tutorials - contributors’ guidelines
- Reproducibility -- e.g. system-specific deterministic training
- Task scalability -- both in datasets and computational resources
- Support for advanced data structures -- e.g. graphs/structured text documents
- E.g. low-level medical image format reader, image preprocessing with external packages
- Rigorous risk analysis of choice of foundational software dependencies
- E.g. data visualisation, experiments tracking, management, orchestration
Basic features | Example | Notes | |
Ready-to-use workflows | Volumetric image segmentation | “Bring your own dataset” | |
Baseline/reference network architectures | Provide an option to use “U-Net” | ||
Intuitive command-line interfaces | |||
Multi-gpu training | Configure the workflow to run data parallel training |
Customisable Python interfaces | Example | Notes | |
Training/validation strategies | Schedule a strategy of alternating between generator and discriminator model training | ||
Network architectures | Define new networks w/ the recent “Squeeze-and-Excitation” blocks | “Bring your own model” | |
Data preprocessors | Define a new reader to read training data from a database system | ||
Adaptive training schedule | Stop training when the loss becomes “NaN” | “Callbacks” | |
Configuration-driven workflow assembly | Making workflow instances from configuration file | Convenient for managing hyperparameters |
Model sharing & transfer learning | Example | Notes | |
Sharing model parameters, hyperparameter configurations | Standardisation of model archiving format | ||
Model optimisation for deployment | |||
Fine-tuning from pre-trained models | Model compression, TensorRT | ||
Model interpretability | Visualising feature maps of a trained model | ||
Experiment tracking & management | https://polyaxon.com/ |
Advanced features | Example | Notes | |
Compatibility with external toolkits | XNAT as data source, ITK as preprocessor | ||
Advanced learning strategies | Semi-supervised, active learning | ||
High performance preprocessors | Smart caching, multi-process | ||
Multi-node distributed training |