All notable changes to MONAI are documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.4.0 - 2020-12-15
- Overview document for feature highlights in v0.4.0
- Torchscript support for the net modules
- New networks and layers:
- Discrete Gaussian kernels
- Hilbert transform and envelope detection
- Swish and mish activation
- Acti-norm-dropout block
- Upsampling layer
- Autoencoder, Variational autoencoder
- FCNet
- Support of initialisation from pretrained weights for densenet, senet, multichannel AHNet
- Layer-wise learning rate API
- New model metrics and event handlers based on occlusion sensitivity, confusion matrix, surface distance
- CAM/GradCAM/GradCAM++
- File format-agnostic image loader APIs with Nibabel, ITK readers
- Enhancements for dataset partition, cross-validation APIs
- New data APIs:
- LMDB-based caching dataset
- Cache-N-transforms dataset
- Iterable dataset
- Patch dataset
- Weekly PyPI release
- Fully compatible with PyTorch 1.7
- CI/CD enhancements:
- Skipping, speed up, fail fast, timed, quick tests
- Distributed training tests
- Performance profiling utilities
- New tutorials and demos:
- Autoencoder, VAE tutorial
- Cross-validation demo
- Model interpretability tutorial
- COVID-19 Lung CT segmentation challenge open-source baseline
- Threadbuffer demo
- Dataset partitioning tutorial
- Layer-wise learning rate demo
- MONAI Bootcamp 2020
- Base Docker image upgraded to
nvcr.io/nvidia/pytorch:20.10-py3fromnvcr.io/nvidia/pytorch:20.08-py3
monai.apps.CVDecathlonDatasetis extended to a genericmonai.apps.CrossValidationwith andataset_clsoption- Cache dataset now requires a
monai.transforms.Composeinstance as the transform argument - Model checkpoint file name extensions changed from
.pthto.pt - Readers'
get_spatial_shapereturns a numpy array instead of list - Decoupled postprocessing steps such as
sigmoid,to_onehot_y,mutually_exclusive,logit_threshfrom metrics and event handlers, the postprocessing steps should be used before calling the metrics methods ConfusionMatrixMetricandDiceMetriccomputation now returns an additionalnot_nansflag to indicate valid resultsUpSampleoptionalmodenow supports"deconv","nontrainable","pixelshuffle";interp_modeis only used whenmodeis"nontrainable"SegResNetoptionalupsample_modenow supports"deconv","nontrainable","pixelshuffle"monai.transforms.Composeclass inheritsmonai.transforms.Transform- In
Rotate,Rotated,RandRotate,RandRotatedtransforms, theanglerelated parameters are interpreted as angles in radians instead of degrees. SplitChannelandSplitChanneldmoved fromtransforms.posttotransforms.utility
- Support of PyTorch 1.4
- Enhanced loss functions for stability and flexibility
- Sliding window inference memory and device issues
- Revised transforms:
- Normalize intensity datatype and normalizer types
- Padding modes for zoom
- Crop returns coordinates
- Select items transform
- Weighted patch sampling
- Option to keep aspect ratio for zoom
- Various CI/CD issues
0.3.0 - 2020-10-02
- Overview document for feature highlights in v0.3.0
- Automatic mixed precision support
- Multi-node, multi-GPU data parallel model training support
- 3 new evaluation metric functions
- 11 new network layers and blocks
- 6 new network architectures
- 14 new transforms, including an I/O adaptor
- Cross validation module for
DecathlonDataset - Smart Cache module in dataset
monai.optimizersmodulemonai.csrcmodule- Experimental feature of ImageReader using ITK, Nibabel, Numpy, Pillow (PIL Fork)
- Experimental feature of differentiable image resampling in C++/CUDA
- Ensemble evaluator module
- GAN trainer module
- Initial cross-platform CI environment for C++/CUDA code
- Code style enforcement now includes isort and clang-format
- Progress bar with tqdm
- Now fully compatible with PyTorch 1.6
- Base Docker image upgraded to
nvcr.io/nvidia/pytorch:20.08-py3fromnvcr.io/nvidia/pytorch:20.03-py3 - Code contributions now require signing off on the Developer Certificate of Origin (DCO)
- Major work in type hinting finished
- Remote datasets migrated to Open Data on AWS
- Optionally depend on PyTorch-Ignite v0.4.2 instead of v0.3.0
- Optionally depend on torchvision, ITK
- Enhanced CI tests with 8 new testing environments
MONAI/examplesfolder (relocated intoProject-MONAI/tutorials)MONAI/researchfolder (relocated toProject-MONAI/research-contributions)
dense_patch_slicesincorrect indexing- Data type issue in
GeneralizedWassersteinDiceLoss ZipDatasetreturn value inconsistenciessliding_window_inferenceindexing anddeviceissues- importing monai modules may cause namespace pollution
- Random data splits issue in
DecathlonDataset - Issue of randomising a
Composetransform - Various issues in function type hints
- Typos in docstring and documentation
PersistentDatasetissue with existing file folder- Filename issue in the output writers
0.2.0 - 2020-07-02
- Overview document for feature highlights in v0.2.0
- Type hints and static type analysis support
MONAI/researchfoldermonai.engine.workflowAPIs for supervised trainingmonai.inferersAPIs for validation and inference- 7 new tutorials and examples
- 3 new loss functions
- 4 new event handlers
- 8 new layers, blocks, and networks
- 12 new transforms, including post-processing transforms
monai.apps.datasetsAPIs, includingMedNISTDatasetandDecathlonDataset- Persistent caching,
ZipDataset, andArrayDatasetinmonai.data - Cross-platform CI tests supporting multiple Python versions
- Optional import mechanism
- Experimental features for third-party transforms integration
For more details please visit the project wiki
- Core modules now require numpy >= 1.17
- Categorized
monai.transformsmodules into crop and pad, intensity, IO, post-processing, spatial, and utility. - Most transforms are now implemented with PyTorch native APIs
- Code style enforcement and automated formatting workflows now use autopep8 and black
- Base Docker image upgraded to
nvcr.io/nvidia/pytorch:20.03-py3fromnvcr.io/nvidia/pytorch:19.10-py3 - Enhanced local testing tools
- Documentation website domain changed to https://docs.monai.io
- Support of Python < 3.6
- Automatic installation of optional dependencies including pytorch-ignite, nibabel, tensorboard, pillow, scipy, scikit-image
- Various issues in type and argument names consistency
- Various issues in docstring and documentation site
- Various issues in unit and integration tests
- Various issues in examples and notebooks
0.1.0 - 2020-04-17
- Public alpha source code release under the Apache 2.0 license (highlights)
- Various tutorials and examples
- Medical image classification and segmentation workflows
- Spacing/orientation-aware preprocessing with CPU/GPU and caching
- Flexible workflows with PyTorch Ignite and Lightning
- Various GitHub Actions
- CI/CD pipelines via self-hosted runners
- Documentation publishing via readthedocs.org
- PyPI package publishing
- Contributing guidelines
- A project logo and badges