Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

7017 update changelog for v1.3 #7048

Merged
merged 13 commits into from
Oct 2, 2023
Merged
2 changes: 1 addition & 1 deletion .github/workflows/setupapp.yml
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ jobs:
run: |
python -m pip list
python -c 'import torch; print(torch.__version__); print(torch.rand(5,3))'
BUILD_MONAI=0 ./runtests.sh --build --quick --unittests --disttests
BUILD_MONAI=0 ./runtests.sh --build --quick --unittests
BUILD_MONAI=1 ./runtests.sh --build --quick --min
coverage xml --ignore-errors
- name: Upload coverage
Expand Down
121 changes: 120 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,124 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).

## [Unreleased]

## [1.3.0] - 2023-10-06
### Added
* Intensity transforms `ScaleIntensityFixedMean` and `RandScaleIntensityFixedMean` (#6542)
* `UltrasoundConfidenceMapTransform` used for computing confidence map from an ultrasound image (#6709)
* `channel_wise` support in `RandScaleIntensity` and `RandShiftIntensity` (#6793, #7025)
* `RandSimulateLowResolution` and `RandSimulateLowResolutiond` (#6806)
* `SignalFillEmptyd` (#7011)
* Euclidean distance transform `DistanceTransformEDT` with GPU support (#6981)
* Port loss and metrics from `monai-generative` (#6729, #6836)
* Support `invert_image` and `retain_stats` in `AdjustContrast` and `RandAdjustContrast` (#6542)
* New network `DAF3D` and `Quicknat` (#6306)
* Support `sincos` position embedding (#6986)
* `ZarrAvgMerger` used for patch inference (#6633)
* Dataset tracking support to `MLFlowHandler` (#6616)
* Considering spacing and subvoxel borders in `SurfaceDiceMetric` (#6681)
* CUCIM support for surface-related metrics (#7008)
* `loss_fn` support in `IgniteMetric` and renamed it to `IgniteMetricHandler` (#6695)
* `CallableEventWithFilter` and `Events` options for `trigger_event` in `GarbageCollector` (#6663)
* Support random sorting option to `GridPatch`, `RandGridPatch`, `GridPatchd` and `RandGridPatchd` (#6701)
* Support multi-threaded batch sampling in `PatchInferer` (#6139)
* `SoftclDiceLoss` and `SoftDiceclDiceLoss` (#6763)
* `HausdorffDTLoss` and `LogHausdorffDTLoss` (#6994)
* Documentation for `TensorFloat-32` (#6770)
* Docstring format guide (#6780)
* `GDSDataset` support for GDS (#6778)
* PyTorch backend support for `MapLabelValue` (#6872)
* `filter_func` in `copy_model_state` to filter the weights to be loaded and `filter_swinunetr` (#6917)
* `stats_sender` to `MonaiAlgo` for FL stats (#6984)
* `freeze_layers` to help freeze specific layers (#6970)
#### misc.
* Refactor multi-node running command used in `Auto3DSeg` into dedicated functions (#6623)
* Support str type annotation to `device` in `ToTensorD` (#6737)
* Improve logging message and file name extenstion in `DataAnalyzer` for `Auto3DSeg` (#6758)
* Set `data_range` as a property in `SSIMLoss` (#6788)
* `end_lr` support in `WarmupCosineSchedule` (#6662)
* Add `ClearML` as optional dependency (#6827)
* `yandex.disk` support in `download_url` (#6667)
* Improve config expression error message (#6977)
### Fixed
#### transforms
* Make `convert_box_to_mask` throw errors when box size larger than the image (#6637)
* Fix lazy mode in `RandAffine` (#6774)
* Raise `ValueError` when `map_items` is bool in `Compose` (#6882)
* Improve performance for `NormalizeIntensity` (#6887)
* Fix mismatched shape in `Spacing` (#6912)
* Avoid FutureWarning in `CropForeground` (#6934)
* Fix `Lazy=True` ignored when using `Dataset` call (#6975)
#### data
* Fix wrong spacing checking logic in `PydicomReader` and broken link in `ITKReader` (#6660)
* Fix boolean indexing of batched `MetaTensor` (#6781)
* Raise warning when multiprocessing in `DataLoader` (#6830)
* Remove `shuffle` in `DistributedWeightedRandomSampler` (#6886)
* Fix missing `SegmentDescription` in `PydicomReader` (#6937)
* Fix reading dicom series error in `ITKReader` (#6943)
* Fix KeyError in `PydicomReader` (#6946)
* Update `metatensor_to_itk_image` to accept RAS `MetaTensor` and update default 'space' in `NrrdReader` to `SpaceKeys.LPS` (#7000)
* Collate common meta dictionary keys (#7054)
#### metrics and losses
* Fixed bug in `GeneralizedDiceLoss` when `batch=True` (#6775)
* Support for `BCEWithLogitsLoss` in `DiceCELoss` (#6924)
#### networks
* Use `np.prod` instead of `np.product` (#6639)
* Fix dimension issue in `MBConvBlock` (#6672)
* Fix hard-coded `up_kernel_size` in `ViTAutoEnc` (#6735)
* Remove hard-coded `bias_downsample` in `resnet` (#6848)
* Fix unused `kernel_size` in `ResBlock` (#6999)
* Allow for defining reference grid on non-integer coordinates (#7032)
* Padding option for autoencoder (#7068)
* Lower peak memory usage for SegResNetDS (#7066)
#### bundle
* Set `train_dataset_data` and `dataset_data` to unrequired in BundleProperty (#6607)
* Set `None` to properties that do not have `REF_ID` (#6607)
* Fix `AttributeError` for default value in `get_parsed_content` for `ConfigParser` (#6756)
* Update `monai.bundle.scripts` to support NGC hosting (#6828, #6997)
* Add `MetaProperties` (#6835)
* Add `create_workflow` and update `load` function (#6835)
* Add bundle root directory to Python search directories automatically (#6910)
* Generate properties for bundle docs automatically (#6918)
* Move `download_large_files` from model zoo to core (#6958)
* Bundle syntax `#` as alias of `::` (#6955)
* Fix bundle download naming issue (#6969, #6963)
* Simplify the usage of `ckpt_export` (#6965)
#### engines and handlers
* Added int options for `iteration_log` and `epoch_log` in `TensorBoardStatsHandler` (#7027)
#### misc.
* Fix device fallback error in `DataAnalyzer` (#6658)
* Add int check for `current_mode` in `convert_applied_interp_mode` (#6719)
* Consistent type in `convert_to_contiguous` (#6849)
* Label `argmax` in `DataAnalyzer` when retry on CPU (#6852)
* Fix `DataAnalyzer` with `histogram_only=True` (#6874)
* Fix `AttributeError` in `RankFilter` in single GPU environment (#6895)
* Remove the default warning on `TORCH_ALLOW_TF32_CUBLAS_OVERRIDE` and add debug print info (#6909)
* Hide user information in `print_config` (#6913, #6922)
* Optionally pass coordinates to predictor during sliding window (#6795)
* Proper ensembling when trained with a sigmoid in `AutoRunner` (#6588)
* Fixed `test_retinanet` by increasing absolute differences (#6615)
* Add type check to avoid comparing a np.array with a string in `_check_kwargs_are_present` (#6624)
* Fix md5 hashing with FIPS mode (#6635)
* Capture failures from Auto3DSeg related subprocess calls (#6596)
### Changed
* Base Docker image upgraded to `nvcr.io/nvidia/pytorch:23.08-py3` from `nvcr.io/nvidia/pytorch:23.03-py3`
### Deprecated
* `allow_smaller=True`; `allow_smaller=False` will be the new default in `CropForeground` and `generate_spatial_bounding_box` (#6736)
* `dropout_prob` in `VNet` in favor of `dropout_prob_down` and `dropout_prob_up` (#6768)
* `workflow` in `BundleWorkflow` in favor of `workflow_type`(#6768)
* `pos_embed` in `PatchEmbeddingBlock` in favor of `proj_type`(#6986)
* `net_name` and `net_kwargs` in `download` in favor of `model`(#7016)
### Removed
* `pad_val`, `stride`, `per_channel` and `upsampler` in `OcclusionSensitivity` (#6642)
* `compute_meaniou` (#7019)
* `AsChannelFirst`, `AddChannel`and `SplitChannel` (#7019)
* `create_multigpu_supervised_trainer` and `create_multigpu_supervised_evaluator` (#7019)
* `runner_id` in `run` (#7019)
* `data_src_cfg_filename` in `AlgoEnsembleBuilder` (#7019)
* `get_validation_stats` in `Evaluator` and `get_train_stats` in `Trainer` (#7019)
* `epoch_interval` and `iteration_interval` in `TensorBoardStatsHandler` (#7019)
* some self-hosted test (#7041)

## [1.2.0] - 2023-06-08
### Added
* Various Auto3DSeg enhancements and integration tests including multi-node multi-GPU optimization, major usability improvements
Expand Down Expand Up @@ -817,7 +935,8 @@ the postprocessing steps should be used before calling the metrics methods

[highlights]: https://github.com/Project-MONAI/MONAI/blob/master/docs/source/highlights.md

[Unreleased]: https://github.com/Project-MONAI/MONAI/compare/1.2.0...HEAD
[Unreleased]: https://github.com/Project-MONAI/MONAI/compare/1.3.0...HEAD
[1.3.0]: https://github.com/Project-MONAI/MONAI/compare/1.2.0...1.3.0
[1.2.0]: https://github.com/Project-MONAI/MONAI/compare/1.1.0...1.2.0
[1.1.0]: https://github.com/Project-MONAI/MONAI/compare/1.0.1...1.1.0
[1.0.1]: https://github.com/Project-MONAI/MONAI/compare/1.0.0...1.0.1
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ Utilizing [the MONAI Bundle format](https://docs.monai.io/en/latest/bundle_intro
For guidance on making a contribution to MONAI, see the [contributing guidelines](https://github.com/Project-MONAI/MONAI/blob/dev/CONTRIBUTING.md).

## Community
Join the conversation on Twitter [@ProjectMONAI](https://twitter.com/ProjectMONAI) or join our [Slack channel](https://forms.gle/QTxJq3hFictp31UM9).
Join the conversation on Twitter/X [@ProjectMONAI](https://twitter.com/ProjectMONAI) or join our [Slack channel](https://forms.gle/QTxJq3hFictp31UM9).

Ask and answer questions over on [MONAI's GitHub Discussions tab](https://github.com/Project-MONAI/MONAI/discussions).

Expand Down
4 changes: 2 additions & 2 deletions docs/source/whatsnew_1_3.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
- Integrating MONAI Generative into MONAI core


# Bundle usability enhancements
## Bundle usability enhancements

Based on the experience of building MONAI model zoo and the feedback from the community,
MONAI 1.3 provides major enhancements in MONAI Bundle usability. These include:
Expand All @@ -16,7 +16,7 @@ MONAI 1.3 provides major enhancements in MONAI Bundle usability. These include:
For more details please visit [the Bundle tutorials](https://github.com/Project-MONAI/tutorials/tree/main/bundle) and
[the Model Zoo demos](https://github.com/Project-MONAI/tutorials/tree/main/model_zoo).

# Integrating MONAI Generative into MONAI Core
## Integrating MONAI Generative into MONAI Core

Main modules developed at [MONAI GenerativeModels](https://github.com/Project-MONAI/GenerativeModels)
are being ported into the core codebase, allowing for consistent maintenance and release of the key components for generative AI.
Expand Down
4 changes: 2 additions & 2 deletions monai/metrics/hausdorff_distance.py
Original file line number Diff line number Diff line change
Expand Up @@ -230,9 +230,9 @@ def compute_percent_hausdorff_distance(
This function is used to compute the directed Hausdorff distance.
"""

surface_distance: np.ndarray = get_surface_distance(
surface_distance: np.ndarray = get_surface_distance( # type: ignore
edges_pred, edges_gt, distance_metric=distance_metric, spacing=spacing
) # type: ignore
)

# for both pred and gt do not have foreground
if surface_distance.shape == (0,):
Expand Down
4 changes: 2 additions & 2 deletions monai/utils/jupyter_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ def plot_engine_status(
avg_keys: tuple[str] = (LOSS_NAME,),
window_fraction: int = 20,
image_fn: Callable[[str, torch.Tensor], Any] | None = tensor_to_images,
fig: plt.Figure = None,
fig: plt.Figure | None = None,
selected_inst: int = 0,
) -> tuple[plt.Figure, list]:
"""
Expand Down Expand Up @@ -359,7 +359,7 @@ def status(self) -> str:

return ", ".join(msgs)

def plot_status(self, logger: Any, plot_func: Callable = plot_engine_status) -> plt.Figure:
def plot_status(self, logger: Any, plot_func: Callable = plot_engine_status) -> plt.Figure | None:
"""
Generate a plot of the current status of the contained engine whose loss and metrics were tracked by `logger`.
The function `plot_func` must accept arguments `title`, `engine`, `logger`, and `fig` which are the plot title,
Expand Down
2 changes: 1 addition & 1 deletion requirements-dev.txt
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ pynrrd
pre-commit
pydicom
h5py
nni
nni; platform_system == "Linux"
optuna
git+https://github.com/Project-MONAI/MetricsReloaded@monai-support#egg=MetricsReloaded
onnx>=1.13.0
Expand Down
Loading