-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Notable changes between 0.1.0 and 0.2.0
Wenqi Li edited this page Jul 2, 2020
·
4 revisions
This page briefly summaries the API changes between v0.1.0 and v0.2.0.
0.2.0 - 2020-07-02
- MedNIST and Decathlon public datasets
- highlight for v0.2.0
- MONAI for PyTorch users tutorial
- Support of spatial size fallback to default image size in the transforms, sliding window inferer
monai.utils.enumsmonai.utils.fall_back_tuple- Label to contour transforms
- Lambda transforms
- spatial transform padding mode defaults to nearest or reflection
- Various documentation updates
- Documentation is now available at https://docs.monai.io
- Revised utility's alias, for example
monai.utilshas all the submodule's class names - process_bar is renamed to progress_bar
0.2.0rc1+13.g379c959 - 2020-06-26
- Image padding transforms: divisible padding and border padding
- Type hint enhancements
- CI tests for MONAI core (minimal external dependencies)
- Multi-gpu inference example
- GAN networks and examples
- RandSpatialCropSamples for random window sampling
- MeanDice handler is now implemented with DiceMetric class, instead of a functional (non-breaking)
- Focal loss now supports one-hot labels
-
RandCropByPosNegLabeldsupports one-hot sampling masklabel_key - Improved optional import error messages
- In
RandCropByPosNegLabeld,sizeis renamed tospatial_size - In
NiftiSaverandwrite_nifti,output_shaperenamed tooutput_spatial_size - in
PNGSaverandwrite_png,output_shapeis renamed tooutput_spatial_size - Rand2DElasticd, Rand3DElasticd support spatial_size with -1, indicating adaptive size from the original input
- Arugment
interp_orderis renamed tomodein all cases, to be consistent with the Pytorch APIs - Arugment
modeis renamed topadding_modein all cases, to be consistent with the Pytorch APIs
0.1.0+153.gc98da0d - 2020-06-18
- Support of Pytorch v1.4 and v1.5
- Unit tests for Windows latest and MacOS latest (without GPUs)
- Cachedataset with multi-thread and persistent cache support
- Code quality and usability improvements in
runtests.sh - New options to run static type and code style checks in
runtests.sh - Automatic code formatting with
psf/Black - New type definitions for type hinting:
KeyCollectionandIndexSelection - Tutorials on using third-party libraries with MONAI
- Installation guide https://monai.readthedocs.io/en/latest/installation.html
-
MONAI/researchfolder for research demonstrations and prototypes -
requirements-dev.txtfor setting up MONAI development environment
-
TverskyLossinmonai.losses -
FocalLossinmonai.losses -
MaskedDiceLossas an extension ofDiceLosswith additional mask inputs.
- Saving output as PNG format images (optionally with intensity clipping and spatial resampling)
-
ZipDatasetandArrayDatasetinmonai.datafor flexible data loading with transforms -
trainerandevaluatorworkflow interfaces and utilities inmonai.engines(extending pytorch-ignite) - Medical segmentation decathlon data list loader in
monai.data -
monai.data.DataLoaderwith improved default values fortorch.utils.data.DataLoader -
worker_init_fnutility inmonai.data.utilsto enhance the DataLoader's default behavior when loading with randomized transforms
-
set_determinismmethod inmonai.utils
- Learning rate schedule handler in
monai.handlers -
CheckpointSaverandCheckpointLoaderevent handers inmonai.handlers
-
SimulateDelay/SimulateDelaydTransforms for improved usability -
DataStats/DataStatsdTransforms for improved usability -
SplitChannel/SplitChanneldTransforms inmonai.transforms -
Activation/ActivationdTransforms inmonai.transforms -
AsDiscrete/AsDiscretedTransforms inmonai.transforms -
SqueezeDim/SqueezeDimdTransforms inmonai.transforms -
KeepLargestConnectedComponent/KeepLargestConnectedComponentTransforms inmonai.transforms -
Identity/IdentitydTransforms inmonai.transforms - Various new spatial padding and cropping transforms in
monai.transforms - Various new post-processing transforms in
monai.transforms
-
MedNISTDatasetinmonai.applicationwith automatic downloading and decompressing
-
AffineTransformsinmonai.networks.layersfor trainable affine transformations - Squeeze and excitation layers in
monai.networks.blocks - Upsample and MaxAvgDownsample layers in
monai.networks.blocks - Simplified atrous spatial pyramid pooling (ASPP) in
monai.networks.blocks - Various non-linear activations in
monai.networks.layers.LayerFactory
- Base Docker image upgraded to
nvcr.io/nvidia/pytorch:20.03-py3fromnvcr.io/nvidia/pytorch:19.10-py3 - Drop the support of Python < 3.6 (now MONAI requires Python >= 3.6)
- Unified boolean options in all modules:
add_sigmoid/do_sigmoidtosigmoid,add_softmax/do_softmaxtosoftmax - Contributing guideline to have more coding style instructions
- Enabled type hinting and static type checks
- Improved, consistent Python code style via
psf/Black - Coding style: prefer Python f-string over the "format string" whenever possible
- Optional import -- MONAI requires Numpy >= 1.17 and Pytorch >= 1.4, all other external packages are not required/installed by default
- Restructured
monai.transforms.transformsinto sub-modules, such asmonai.transforms.intensity -
image_onlyoption toLoadPNGandLoadPNGdtransforms (to track the original metadata such as filename) - Dropped the
dtype=option in intensity and spatial transforms inmonai.transforms - Default padding mode to
nearestoredgein various transforms (instead of padding with Constant) -
Zoom/Zoomddefaults tokeep_size=True(instead ofkeep_size=False) -
monai.transforms.spatialis now implemented with Pytorch native interfaces (instead ofscipy,scikit-image) -
monai.transforms.spatialinterpolation order and padding mode options changed to accept only Pytorch supported choices -
monai.transforms.util.apply_transformaccepts new argumentmap_iterms: bool(defaults toTrue) - Dictionary-level transforms now by default works with nested dict:
{"image": array, "image_meta_dict": {"affine": array, "original_affine": array}} -
DeleteKeys/DeletekesdTransforms renamed toDeleteItems/DeleteItemsdinmonai.transforms - Adds padding mode and interpolation order options to spatial transforms'
__call__, in addtion to those in__init__. - Moved
monai.data.nifti_reader.load_niftitomonai.data.transforms.io
- GaussianFilter in
monai.networks.layersnow accepts anisotropic sigmas
-
one_hotimplementation changed for better performance -
one_hotaccepts new optional argumentdtype, defaults totorch.float - Support of customized
overlapratio andblending_modein sliding window inference inmonai.inferer - Function
compute_meandiceis refactored toDiceMetricwith a callable interface inmonai.metrics
- Moved
monai.data.sliding_window_inferencestomonai.inferers - Randomized synthetic image generation in
monai.data.syntheticaccepts new optional argumentrandom_state(defaults toNone)
- By default not importing
monai.handlersmodules at first time importing monai -
monai.config.print_confg()now prints optional dependency information
-
monai.utils.misc.ensure_tuplenow converts string as a single element(ensure_tuple("test") -> ("test",)instead of("t", "e", "s", "t")
- Various issues in docstring and the documentation website
- Various issues in unit and integration tests
- Automatic installation of optional dependencies including
pytorch-ignite==0.3.0,nibabel,tensorboard,pillow,scipy,scikit-image