Skip to content

Notable changes between 0.1.0 and 0.2.0

Wenqi Li edited this page Jul 2, 2020 · 4 revisions

Summary

This page briefly summaries the API changes between v0.1.0 and v0.2.0.

0.2.0 - 2020-07-02

Added

  • 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.enums
  • monai.utils.fall_back_tuple
  • Label to contour transforms
  • Lambda transforms
  • spatial transform padding mode defaults to nearest or reflection

Changed

  • Various documentation updates
  • Documentation is now available at https://docs.monai.io
  • Revised utility's alias, for example monai.utils has all the submodule's class names
  • process_bar is renamed to progress_bar

0.2.0rc1+13.g379c959 - 2020-06-26

Added

  • 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

Changed

  • MeanDice handler is now implemented with DiceMetric class, instead of a functional (non-breaking)
  • Focal loss now supports one-hot labels
  • RandCropByPosNegLabeld supports one-hot sampling mask label_key
  • Improved optional import error messages
  • In RandCropByPosNegLabeld , size is renamed to spatial_size
  • In NiftiSaver and write_nifti, output_shape renamed to output_spatial_size
  • in PNGSaver and write_png, output_shape is renamed to output_spatial_size
  • Rand2DElasticd, Rand3DElasticd support spatial_size with -1, indicating adaptive size from the original input
  • Arugment interp_order is renamed to mode in all cases, to be consistent with the Pytorch APIs
  • Arugment mode is renamed to padding_mode in all cases, to be consistent with the Pytorch APIs

0.1.0+153.gc98da0d - 2020-06-18

Added

generic

  • 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: KeyCollection and IndexSelection
  • Tutorials on using third-party libraries with MONAI
  • Installation guide https://monai.readthedocs.io/en/latest/installation.html
  • MONAI/research folder for research demonstrations and prototypes
  • requirements-dev.txt for setting up MONAI development environment

monai.losses

  • TverskyLoss in monai.losses
  • FocalLoss in monai.losses
  • MaskedDiceLoss as an extension of DiceLoss with additional mask inputs.

monai.data

  • Saving output as PNG format images (optionally with intensity clipping and spatial resampling)
  • ZipDataset and ArrayDataset in monai.data for flexible data loading with transforms
  • trainer and evaluator workflow interfaces and utilities in monai.engines (extending pytorch-ignite)
  • Medical segmentation decathlon data list loader in monai.data
  • monai.data.DataLoader with improved default values for torch.utils.data.DataLoader
  • worker_init_fn utility in monai.data.utils to enhance the DataLoader's default behavior when loading with randomized transforms

utilities

  • set_determinism method in monai.utils

monai.handlers

  • Learning rate schedule handler in monai.handlers
  • CheckpointSaver and CheckpointLoader event handers in monai.handlers

monai.transforms

  • SimulateDelay/SimulateDelayd Transforms for improved usability
  • DataStats/DataStatsd Transforms for improved usability
  • SplitChannel/SplitChanneld Transforms in monai.transforms
  • Activation/Activationd Transforms in monai.transforms
  • AsDiscrete/AsDiscreted Transforms in monai.transforms
  • SqueezeDim/SqueezeDimd Transforms in monai.transforms
  • KeepLargestConnectedComponent/KeepLargestConnectedComponent Transforms in monai.transforms
  • Identity/Identityd Transforms in monai.transforms
  • Various new spatial padding and cropping transforms in monai.transforms
  • Various new post-processing transforms in monai.transforms

monai.application

  • MedNISTDataset in monai.application with automatic downloading and decompressing

monai.networks

  • AffineTransforms in monai.networks.layers for 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

Changed

generic

  • Base Docker image upgraded to nvcr.io/nvidia/pytorch:20.03-py3 from nvcr.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_sigmoid to sigmoid, add_softmax/do_softmax to softmax
  • 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

monai.transforms

  • Restructured monai.transforms.transforms into sub-modules, such as monai.transforms.intensity
  • image_only option to LoadPNG and LoadPNGd transforms (to track the original metadata such as filename)
  • Dropped the dtype= option in intensity and spatial transforms in monai.transforms
  • Default padding mode to nearest or edge in various transforms (instead of padding with Constant)
  • Zoom/Zoomd defaults to keep_size=True (instead of keep_size=False)
  • monai.transforms.spatial is now implemented with Pytorch native interfaces (instead of scipy, scikit-image)
  • monai.transforms.spatial interpolation order and padding mode options changed to accept only Pytorch supported choices
  • monai.transforms.util.apply_transform accepts new argument map_iterms: bool (defaults to True)
  • Dictionary-level transforms now by default works with nested dict: {"image": array, "image_meta_dict": {"affine": array, "original_affine": array}}
  • DeleteKeys/Deletekesd Transforms renamed to DeleteItems/DeleteItemsd in monai.transforms
  • Adds padding mode and interpolation order options to spatial transforms' __call__, in addtion to those in __init__.
  • Moved monai.data.nifti_reader.load_nifti to monai.data.transforms.io

monai.networks

  • GaussianFilter in monai.networks.layers now accepts anisotropic sigmas

monai.metrics

  • one_hot implementation changed for better performance
  • one_hot accepts new optional argument dtype, defaults to torch.float
  • Support of customized overlap ratio and blending_mode in sliding window inference in monai.inferer
  • Function compute_meandice is refactored to DiceMetric with a callable interface in monai.metrics

monai.data

  • Moved monai.data.sliding_window_inferences to monai.inferers
  • Randomized synthetic image generation in monai.data.synthetic accepts new optional argument random_state (defaults to None)

monai.handlers

  • By default not importing monai.handlers modules at first time importing monai
  • monai.config.print_confg() now prints optional dependency information

utilities

  • monai.utils.misc.ensure_tuple now converts string as a single element (ensure_tuple("test") -> ("test",) instead of ("t", "e", "s", "t")

Fixed

  • Various issues in docstring and the documentation website
  • Various issues in unit and integration tests

Removed

  • Automatic installation of optional dependencies including pytorch-ignite==0.3.0, nibabel, tensorboard, pillow, scipy, scikit-image
Clone this wiki locally