You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of #8874
### Description
This updates documentation and other components for the 1.6.0 release.
### Types of changes
<!--- Put an `x` in all the boxes that apply, and remove the not
applicable items -->
- [x] Non-breaking change (fix or new feature that would not break
existing functionality).
- [ ] Breaking change (fix or new feature that would cause existing
functionality to change).
- [ ] New tests added to cover the changes.
- [ ] Integration tests passed locally by running `./runtests.sh -f -u
--net --coverage`.
- [ ] Quick tests passed locally by running `./runtests.sh --quick
--unittests --disttests`.
- [ ] In-line docstrings updated.
- [x] Documentation updated, tested `make html` command in the `docs/`
folder.
---------
Signed-off-by: Eric Kerfoot <17726042+ericspod@users.noreply.github.com>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
- New losses: AUC-Margin Loss, Matthews Correlation Coefficient (MCC) Loss
5
+
* AUC-Margin Loss: `AUCMarginLoss` directly optimizes the AUROC metric via a margin-based surrogate loss, enabling training workflows that target ranking-based performance rather than calibration-based objectives.
6
+
* Matthews Correlation Coefficient (MCC) Loss: `MCCLoss` provides a differentiable loss based on the Matthews Correlation Coefficient, which accounts for all four confusion matrix categories and is particularly robust for imbalanced segmentation tasks.
7
+
- New metric: `EmbeddingCollapseMetric` detects representational collapse in learned embedding spaces, useful for self-supervised and contrastive learning workflows in medical imaging to monitor embedding quality during training.
8
+
- Whole Slide Image (WSI) reader now supports retrieval at a specified microns-per-pixel (MPP) resolution. This simplifies multi-scanner workflows where consistent physical-space resolution is required regardless of scanner magnification levels.
9
+
- Nested dot-notation key access in `ConfigParser`.
10
+
- Auto3DSeg algo serialization migrated from pickle to JSON for improved security and portability.
11
+
- Global coordinates support in spatial crop transforms. These now support global coordinate mode, allowing crops to be specified in world/global coordinates rather than local image indices, improving interoperability with physical-space annotations.
12
+
-`SoftclDiceLoss` and `SoftDiceclDiceLoss` enhanced with `DiceLoss`-compatible API
13
+
- Variable expansion hardening has been added to the nnUNet app to eliminate code injection attacks when composing shell command lines, addressing concerns in [GHSA-rghg-q7wp-9767](https://github.com/Project-MONAI/MONAI/security/advisories/GHSA-rghg-q7wp-9767).
14
+
-`NumpyReader` has been updated with an `allow_pickle` boolean argument to enable/disable pickle loading from `.npy/.npz` files. This was previously hard-coded to be enabled, but is now defined by this argument and disabled by default. This addresses [GHSA-qxq5-qhx6-94qw](https://github.com/Project-MONAI/MONAI/security/advisories/GHSA-qxq5-qhx6-94qw).
15
+
16
+
17
+
MONAI now tests for Python 3.10 onwards, having dropped version 3.9 which is now out of support. PyTorch 2.8 onwards is now supported only, older versions will likely continue to function.
18
+
19
+
## Nested Dot-Notation Access in ConfigParser
20
+
21
+
`ConfigParser` now supports nested dot-notation key access, making it easier to read and override deeply nested configuration values programmatically.
22
+
23
+
For example, accessing a value from the parser with `parser["network_def.in_channels"]` can instead be `parser.network_def.in_channels`. This feature supports indexing and assignment, eg. `parser.network_def.in_channels[0] = 4` or `parser.A.B["C"] = 99`.
24
+
25
+
## Auto3DSeg: JSON-Based Algo Serialization
26
+
27
+
Auto3DSeg algorithm objects are now serialized using JSON instead of pickle. This removes a class of security risks associated with pickle deserialization and improves cross-environment portability of saved algorithm states. Using pickle for serialization can be re-enabled by setting the environment variable `MONAI_ALLOW_PICKLE` to `1` or the equivalent true value.
28
+
29
+
This was implemented to address [GHSA-qxq5-qhx6-94qw](https://github.com/Project-MONAI/MONAI/security/advisories/GHSA-qxq5-qhx6-94qw).
30
+
31
+
## SoftclDiceLoss / SoftDiceclDiceLoss API Alignment
32
+
33
+
`SoftclDiceLoss` and `SoftDiceclDiceLoss` now accept the same arguments as `DiceLoss`, including `reduction`, `smooth_nr`, `smooth_dr`, and `batch` parameters, enabling drop-in use alongside the standard Dice loss in existing pipelines.
34
+
35
+
## Minor Changes
36
+
37
+
-`DiceMetric` and `DiceHelper` accept additional parameters for finer control of reduction behavior
38
+
-`ExtractDataKeyFromMetaKeyd` now works with `MetaTensor` inputs
- TorchScript compatibility: replaced `Tensor | None` union syntax with `Optional[Tensor]` across network modules
41
+
-`CrossAttentionBlock` is now only instantiated when `with_cross_attention=True`, reducing memory overhead
42
+
-`GlobalMutualInformationLoss` bin centers and `LocalNormalizedCrossCorrelationLoss` kernels registered as buffers for correct device handling (`#8869`, `#8818`)
43
+
-`NibabelReader` avoids eager C-order memory copies, reducing peak RAM usage for large NIfTI files
44
+
- Fixed `align_corners` mismatch in `AffineTransform`
45
+
- Fixed nested `Compose``map_items` behaviour in forward and inverse paths
46
+
- Fixed anchor centering on grid cells in detection
0 commit comments