-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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.enums
monai.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.utils
has 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
-
RandCropByPosNegLabeld
supports one-hot sampling masklabel_key
- Improved optional import error messages
- In
RandCropByPosNegLabeld
,size
is renamed tospatial_size
- In
NiftiSaver
andwrite_nifti
,output_shape
renamed tooutput_spatial_size
- in
PNGSaver
andwrite_png
,output_shape
is renamed tooutput_spatial_size
- Rand2DElasticd, Rand3DElasticd support spatial_size with -1, indicating adaptive size from the original input
- Arugment
interp_order
is renamed tomode
in all cases, to be consistent with the Pytorch APIs - Arugment
mode
is renamed topadding_mode
in 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:
KeyCollection
andIndexSelection
- 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
-
TverskyLoss
inmonai.losses
-
FocalLoss
inmonai.losses
-
MaskedDiceLoss
as an extension ofDiceLoss
with additional mask inputs.
- Saving output as PNG format images (optionally with intensity clipping and spatial resampling)
-
ZipDataset
andArrayDataset
inmonai.data
for flexible data loading with transforms -
trainer
andevaluator
workflow interfaces and utilities inmonai.engines
(extending pytorch-ignite) - Medical segmentation decathlon data list loader in
monai.data
-
monai.data.DataLoader
with improved default values fortorch.utils.data.DataLoader
-
worker_init_fn
utility inmonai.data.utils
to enhance the DataLoader's default behavior when loading with randomized transforms
-
set_determinism
method inmonai.utils
- Learning rate schedule handler in
monai.handlers
-
CheckpointSaver
andCheckpointLoader
event handers inmonai.handlers
-
SimulateDelay/SimulateDelayd
Transforms for improved usability -
DataStats/DataStatsd
Transforms for improved usability -
SplitChannel/SplitChanneld
Transforms inmonai.transforms
-
Activation/Activationd
Transforms inmonai.transforms
-
AsDiscrete/AsDiscreted
Transforms inmonai.transforms
-
SqueezeDim/SqueezeDimd
Transforms inmonai.transforms
-
KeepLargestConnectedComponent/KeepLargestConnectedComponent
Transforms inmonai.transforms
-
Identity/Identityd
Transforms inmonai.transforms
- Various new spatial padding and cropping transforms in
monai.transforms
- Various new post-processing transforms in
monai.transforms
-
MedNISTDataset
inmonai.application
with automatic downloading and decompressing
-
AffineTransforms
inmonai.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
- Base Docker image upgraded to
nvcr.io/nvidia/pytorch:20.03-py3
fromnvcr.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
tosigmoid
,add_softmax/do_softmax
tosoftmax
- 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.transforms
into sub-modules, such asmonai.transforms.intensity
-
image_only
option toLoadPNG
andLoadPNGd
transforms (to track the original metadata such as filename) - Dropped the
dtype=
option in intensity and spatial transforms inmonai.transforms
- Default padding mode to
nearest
oredge
in various transforms (instead of padding with Constant) -
Zoom/Zoomd
defaults tokeep_size=True
(instead ofkeep_size=False
) -
monai.transforms.spatial
is now implemented with Pytorch native interfaces (instead ofscipy
,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 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/Deletekesd
Transforms renamed toDeleteItems/DeleteItemsd
inmonai.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
tomonai.data.transforms.io
- GaussianFilter in
monai.networks.layers
now accepts anisotropic sigmas
-
one_hot
implementation changed for better performance -
one_hot
accepts new optional argumentdtype
, defaults totorch.float
- Support of customized
overlap
ratio andblending_mode
in sliding window inference inmonai.inferer
- Function
compute_meandice
is refactored toDiceMetric
with a callable interface inmonai.metrics
- Moved
monai.data.sliding_window_inferences
tomonai.inferers
- Randomized synthetic image generation in
monai.data.synthetic
accepts new optional argumentrandom_state
(defaults toNone
)
- By default not importing
monai.handlers
modules at first time importing monai -
monai.config.print_confg()
now prints optional dependency information
-
monai.utils.misc.ensure_tuple
now 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