monai-weekly 1.7.dev2628__tar.gz → 1.7.dev2629__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {monai_weekly-1.7.dev2628/monai_weekly.egg-info → monai_weekly-1.7.dev2629}/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/__init__.py +1 -1
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_version.py +3 -3
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/__init__.py +1 -0
- monai_weekly-1.7.dev2629/monai/losses/boundary_loss.py +233 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/warp.py +3 -2
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629/monai_weekly.egg-info}/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/SOURCES.txt +1 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/LICENSE +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/MANIFEST.in +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/README.md +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm.cpp +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm.h +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/loader.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/__main__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/auto_runner.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/bundle_gen.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/data_analyzer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/hpo_gen.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/transforms.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/datasets.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepedit/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepedit/interaction.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepedit/transforms.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/dataset.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/interaction.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/transforms.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/coco.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/matching.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/retinanet_detector.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/retinanet_network.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/box_ops.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/anchor_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/box_coder.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/box_selector.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/detector_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/predict_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/mmars/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/mmars/mmars.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/mmars/model_desc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/__main__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/nnunet_bundle.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nuclick/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/nuclick/transforms.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/complex_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/fastmri_reader.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/mri_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/tcia/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/tcia/label_desc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/tcia/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/inferer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/sampler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/transforms.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/auto3dseg/algo_gen.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/auto3dseg/analyzer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/auto3dseg/operations.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/auto3dseg/seg_summarizer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/__main__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/config_item.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/config_parser.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/properties.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/reference_resolver.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/scripts.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/bundle/workflows.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/config/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/config/deviceconfig.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/config/type_definitions.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/box_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/csv_saver.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/dataloader.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/dataset.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/dataset_summary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/decathlon_datalist.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/fft_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/folder_layout.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/grid_dataset.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/image_dataset.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/image_reader.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/image_writer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/iterable_dataset.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/itk_torch_bridge.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/meta_obj.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/meta_tensor.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/samplers.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/synthetic.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/test_time_augmentation.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/thread_buffer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/torchscript_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/ultrasound_confidence_map.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/video_dataset.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/wsi_datasets.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/data/wsi_reader.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/engines/evaluator.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/engines/trainer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/engines/workflow.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/client/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/client/client_algo.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/client/monai_algo.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/utils/constants.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/utils/exchange_object.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/fl/utils/filters.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/average_precision.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/calibration.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/checkpoint_loader.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/checkpoint_saver.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/classification_saver.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/clearml_handlers.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/decollate_batch.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/earlystop_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/garbage_collector.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/ignite_metric.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/logfile_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/lr_schedule_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/mean_dice.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/mean_iou.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/metric_logger.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/metrics_reloaded_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/metrics_saver.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/mlflow_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/nvtx_handlers.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/parameter_scheduler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/postprocessing.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/probability_maps.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/regression_metrics.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/roc_auc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/smartcache_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/stats_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/tensorboard_handlers.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/trt_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/handlers/validation_handler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/inferers/merger.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/inferers/splitter.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/inferers/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/adversarial_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/aucm_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/barlow_twins.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/cldice.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/contrastive.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/deform.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/dice.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/ds_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/focal_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/giou_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/hausdorff_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/image_dissimilarity.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/mcc_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/multi_scale.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/nacl_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/perceptual.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/spatial_mask.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/spectral_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/ssim_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/sure_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/tversky.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/unified_focal_loss.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/losses/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/absolute_volume_difference.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/active_learning_metrics.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/average_precision.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/calibration.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/cumulative_average.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/embedding_collapse.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/f_beta_score.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/fid.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/froc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/generalized_dice.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/loss_metric.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/meandice.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/meaniou.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/metric.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/mmd.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/regression.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/rocauc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/surface_dice.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/metrics/wrapper.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/acti_norm.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/activation.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/activation_checkpointing.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/aspp.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/attention_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/cablock.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/convolutions.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/crf.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/crossattention.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/denseblock.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/dints_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/downsample.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/dynunet_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/encoder.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/fcn.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/feature_pyramid_network.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/fft_utils_t.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/hyena.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/localnet_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/mednext_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/mlp.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/patchembedding.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/pos_embed_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/regunet_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/rel_pos_embedding.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/segresnet_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/selfattention.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/spade_norm.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/spatialattention.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/text_embedding.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/transformerblock.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/unetr_block.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/blocks/upsample.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/conjugate_gradient.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/convutils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/drop_path.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/factories.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/filtering.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/gmm.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/simplelayers.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/spatial_transforms.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/vector_quantizer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/layers/weight_init.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/ahnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/attentionunet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/autoencoder.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/basic_unet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/basic_unetplusplus.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/cell_sam_wrapper.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/classifier.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/controlnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/daf3d.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/densenet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/dints.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/dynunet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/efficientnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/flexible_unet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/fullyconnectednet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/generator.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/highresnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/hovernet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/hyena_nd_unetr.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/mednext.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/milmodel.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/netadapter.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/patchgan_discriminator.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/quicknat.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/regressor.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/regunet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/resnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/restormer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/segresnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/segresnet_ds.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/senet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/spade_autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/spade_network.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/swin_unetr.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/torchvision_fc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/transchex.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/transformer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/unet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/unetr.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/varautoencoder.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/vista3d.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/vit.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/vitautoenc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/vnet.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/voxelmorph.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/nets/vqvae.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/ddim.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/ddpm.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/pndm.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/rectified_flow.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/scheduler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/trt_compiler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/networks/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/optimizers/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/optimizers/lr_finder.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/optimizers/lr_scheduler.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/optimizers/novograd.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/optimizers/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/py.typed +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/adaptors.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/compose.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/batch.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/functional.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/intensity/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/intensity/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/intensity/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/inverse.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/inverse_batch_transform.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/io/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/io/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/io/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/functional.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/meta_utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/meta_utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/nvtx.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/regularization/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/regularization/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/regularization/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/signal/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/signal/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/signal/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/smooth_field/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/smooth_field/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/smooth_field/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/functional.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/traits.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/transform.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utility/array.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utils_create_transform_ims.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utils_morphological_ops.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/component_store.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/decorators.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/deprecate_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/dist.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/enums.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/jupyter_utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/misc.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/module.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/nvtx.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/ordering.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/profiling.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/state_cacher.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/tf32.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/utils/type_conversion.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/__init__.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/class_activation_maps.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/gradient_based.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/img2tensorboard.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/occlusion_sensitivity.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/utils.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/visualize/visualizer.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/dependency_links.txt +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/not-zip-safe +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/requires.txt +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/top_level.txt +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/pyproject.toml +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/setup.cfg +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/setup.py +0 -0
- {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/versioneer.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2026-07-
|
|
11
|
+
"date": "2026-07-19T03:05:24+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.7.
|
|
14
|
+
"full-revisionid": "52cab21b1eb940ad0c4ea70165f09ec6e7cbaebb",
|
|
15
|
+
"version": "1.7.dev2629"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -14,6 +14,7 @@ from __future__ import annotations
|
|
|
14
14
|
from .adversarial_loss import PatchAdversarialLoss
|
|
15
15
|
from .aucm_loss import AUCMLoss
|
|
16
16
|
from .barlow_twins import BarlowTwinsLoss
|
|
17
|
+
from .boundary_loss import BoundaryLoss
|
|
17
18
|
from .cldice import SoftclDiceLoss, SoftDiceclDiceLoss
|
|
18
19
|
from .contrastive import ContrastiveLoss
|
|
19
20
|
from .deform import BendingEnergyLoss, DiffusionLoss
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Copyright (c) MONAI Consortium
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
8
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
# See the License for the specific language governing permissions and
|
|
10
|
+
# limitations under the License.
|
|
11
|
+
|
|
12
|
+
from __future__ import annotations
|
|
13
|
+
|
|
14
|
+
import warnings
|
|
15
|
+
from collections.abc import Callable
|
|
16
|
+
|
|
17
|
+
import torch
|
|
18
|
+
from torch.nn.modules.loss import _Loss
|
|
19
|
+
|
|
20
|
+
from monai.networks import one_hot
|
|
21
|
+
from monai.transforms.utils import distance_transform_edt
|
|
22
|
+
from monai.utils import LossReduction
|
|
23
|
+
|
|
24
|
+
__all__ = ["BoundaryLoss"]
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class BoundaryLoss(_Loss):
|
|
28
|
+
"""
|
|
29
|
+
Compute the boundary loss for highly unbalanced segmentation.
|
|
30
|
+
|
|
31
|
+
The boundary loss is a distance-based loss that operates on the interface between segmentation
|
|
32
|
+
regions rather than on the regions themselves. This makes it particularly effective for
|
|
33
|
+
highly imbalanced segmentation tasks (e.g., small lesions, thin structures), where standard
|
|
34
|
+
Dice or Cross-Entropy losses struggle due to foreground-background imbalance.
|
|
35
|
+
|
|
36
|
+
The loss is formulated as a pixel-wise weighted sum of predicted probabilities and a
|
|
37
|
+
signed distance map derived from the ground truth. The signed distance map is negative
|
|
38
|
+
inside the foreground region and positive outside, with zero on the boundary.
|
|
39
|
+
|
|
40
|
+
The data `input` (BNHW[D] where N is number of classes) is compared with ground truth `target`
|
|
41
|
+
(BNHW[D]).
|
|
42
|
+
Note that axis N of `input` is expected to be logits or probabilities for each class, if passing logits as input,
|
|
43
|
+
must set `sigmoid=True` or `softmax=True`, or specifying `other_act`. And the same axis of `target`
|
|
44
|
+
can be 1 or N (one-hot format).
|
|
45
|
+
|
|
46
|
+
The original paper:
|
|
47
|
+
Kervadec, H. et al. (2019) Boundary loss for highly unbalanced segmentation. MIDL 2019.
|
|
48
|
+
https://arxiv.org/abs/1812.07032
|
|
49
|
+
|
|
50
|
+
Example:
|
|
51
|
+
>>> import torch
|
|
52
|
+
>>> from monai.losses import BoundaryLoss
|
|
53
|
+
>>> B, C, H, W = 2, 3, 5, 5
|
|
54
|
+
>>> input = torch.rand(B, C, H, W)
|
|
55
|
+
>>> target = torch.randint(0, C, size=(B, H, W))
|
|
56
|
+
>>> bl = BoundaryLoss(softmax=True, to_onehot_y=True)
|
|
57
|
+
>>> loss = bl(input, target)
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
def __init__(
|
|
61
|
+
self,
|
|
62
|
+
include_background: bool = True,
|
|
63
|
+
to_onehot_y: bool = False,
|
|
64
|
+
sigmoid: bool = False,
|
|
65
|
+
softmax: bool = False,
|
|
66
|
+
other_act: Callable | None = None,
|
|
67
|
+
reduction: LossReduction | str = LossReduction.MEAN,
|
|
68
|
+
batch: bool = False,
|
|
69
|
+
) -> None:
|
|
70
|
+
"""
|
|
71
|
+
Args:
|
|
72
|
+
include_background: if False, channel index 0 (background category) is excluded from the calculation.
|
|
73
|
+
if the non-background segmentations are small compared to the total image size they can get overwhelmed
|
|
74
|
+
by the signal from the background so excluding it in such cases helps convergence.
|
|
75
|
+
to_onehot_y: whether to convert the ``target`` into the one-hot format,
|
|
76
|
+
using the number of classes inferred from `input` (``input.shape[1]``). Defaults to False.
|
|
77
|
+
sigmoid: if True, apply a sigmoid function to the prediction.
|
|
78
|
+
softmax: if True, apply a softmax function to the prediction.
|
|
79
|
+
other_act: callable function to execute other activation layers, Defaults to ``None``. for example:
|
|
80
|
+
``other_act = torch.tanh``.
|
|
81
|
+
reduction: {``"none"``, ``"mean"``, ``"sum"``}
|
|
82
|
+
Specifies the reduction to apply to the output. Defaults to ``"mean"``.
|
|
83
|
+
|
|
84
|
+
- ``"none"``: no reduction will be applied.
|
|
85
|
+
- ``"mean"``: the sum of the output will be divided by the number of elements in the output.
|
|
86
|
+
- ``"sum"``: the output will be summed.
|
|
87
|
+
batch: whether to compute the distance map and loss over the batch dimension before the dividing.
|
|
88
|
+
Defaults to False, a boundary loss value is computed independently from each item in the batch
|
|
89
|
+
before any `reduction`.
|
|
90
|
+
|
|
91
|
+
Raises:
|
|
92
|
+
TypeError: When ``other_act`` is not an ``Optional[Callable]``.
|
|
93
|
+
ValueError: When more than 1 of [``sigmoid=True``, ``softmax=True``, ``other_act is not None``].
|
|
94
|
+
Incompatible values.
|
|
95
|
+
"""
|
|
96
|
+
super().__init__(reduction=LossReduction(reduction).value)
|
|
97
|
+
if other_act is not None and not callable(other_act):
|
|
98
|
+
raise TypeError(f"other_act must be None or callable but is {type(other_act).__name__}.")
|
|
99
|
+
if int(sigmoid) + int(softmax) + int(other_act is not None) > 1:
|
|
100
|
+
raise ValueError("Incompatible values: more than 1 of [sigmoid=True, softmax=True, other_act is not None].")
|
|
101
|
+
|
|
102
|
+
self.include_background = include_background
|
|
103
|
+
self.to_onehot_y = to_onehot_y
|
|
104
|
+
self.sigmoid = sigmoid
|
|
105
|
+
self.softmax = softmax
|
|
106
|
+
self.other_act = other_act
|
|
107
|
+
self.batch = batch
|
|
108
|
+
|
|
109
|
+
@torch.no_grad()
|
|
110
|
+
def compute_distance_map(self, target: torch.Tensor) -> torch.Tensor:
|
|
111
|
+
"""
|
|
112
|
+
Compute the signed distance map for each class in the target.
|
|
113
|
+
|
|
114
|
+
The signed distance map is negative inside the foreground region and positive outside,
|
|
115
|
+
with zero on the boundary.
|
|
116
|
+
|
|
117
|
+
Args:
|
|
118
|
+
target: target tensor of shape BNHW[D], with values in {0, 1} (one-hot encoded).
|
|
119
|
+
|
|
120
|
+
Returns:
|
|
121
|
+
Signed distance map of the same shape as target.
|
|
122
|
+
"""
|
|
123
|
+
if target.dim() not in (4, 5):
|
|
124
|
+
raise ValueError("Only 2D (BNHW) and 3D (BNHWD) supported")
|
|
125
|
+
|
|
126
|
+
distance_map = torch.zeros_like(target, dtype=torch.float32)
|
|
127
|
+
|
|
128
|
+
for batch_idx in range(target.shape[0]):
|
|
129
|
+
for channel_idx in range(target.shape[1]):
|
|
130
|
+
mask = target[batch_idx, channel_idx : channel_idx + 1] > 0.5
|
|
131
|
+
|
|
132
|
+
# Empty or full masks do not have a foreground/background interface.
|
|
133
|
+
if not mask.any() or mask.all():
|
|
134
|
+
continue
|
|
135
|
+
|
|
136
|
+
fg_dist: torch.Tensor = distance_transform_edt(mask) # type: ignore
|
|
137
|
+
bg_dist: torch.Tensor = distance_transform_edt(~mask) # type: ignore
|
|
138
|
+
|
|
139
|
+
signed = torch.zeros_like(mask, dtype=torch.float32)
|
|
140
|
+
signed[mask] = -(fg_dist[mask].to(torch.float32) - 1)
|
|
141
|
+
signed[~mask] = bg_dist[~mask].to(torch.float32)
|
|
142
|
+
|
|
143
|
+
distance_map[batch_idx, channel_idx] = signed[0]
|
|
144
|
+
|
|
145
|
+
return distance_map
|
|
146
|
+
|
|
147
|
+
def forward(self, input: torch.Tensor, target: torch.Tensor) -> torch.Tensor:
|
|
148
|
+
"""
|
|
149
|
+
Args:
|
|
150
|
+
input: the shape should be BNHW[D], where N is the number of classes.
|
|
151
|
+
target: the shape should be BNHW[D] or B1HW[D], where N is the number of classes.
|
|
152
|
+
|
|
153
|
+
Raises:
|
|
154
|
+
ValueError: If the input is not 2D (BNHW) or 3D (BNHWD).
|
|
155
|
+
AssertionError: When input and target (after one hot transform if set)
|
|
156
|
+
have different shapes.
|
|
157
|
+
ValueError: When ``self.reduction`` is not one of ["mean", "sum", "none"].
|
|
158
|
+
|
|
159
|
+
Example:
|
|
160
|
+
>>> import torch
|
|
161
|
+
>>> from monai.losses import BoundaryLoss
|
|
162
|
+
>>> B, C, H, W = 2, 3, 5, 5
|
|
163
|
+
>>> input = torch.rand(B, C, H, W)
|
|
164
|
+
>>> target_idx = torch.randint(0, C, size=(B, H, W)).long()
|
|
165
|
+
>>> target = one_hot(target_idx[:, None, ...], num_classes=C)
|
|
166
|
+
>>> bl = BoundaryLoss(softmax=True)
|
|
167
|
+
>>> loss = bl(input, target)
|
|
168
|
+
"""
|
|
169
|
+
if input.dim() not in (4, 5):
|
|
170
|
+
raise ValueError("Only 2D (BNHW) and 3D (BNHWD) supported")
|
|
171
|
+
|
|
172
|
+
n_pred_ch = input.shape[1]
|
|
173
|
+
|
|
174
|
+
# Apply activation to input
|
|
175
|
+
if self.sigmoid:
|
|
176
|
+
input = torch.sigmoid(input)
|
|
177
|
+
|
|
178
|
+
if self.softmax:
|
|
179
|
+
if n_pred_ch == 1:
|
|
180
|
+
warnings.warn("single channel prediction, `softmax=True` ignored.", stacklevel=2)
|
|
181
|
+
else:
|
|
182
|
+
input = torch.softmax(input, dim=1)
|
|
183
|
+
|
|
184
|
+
if self.other_act is not None:
|
|
185
|
+
input = self.other_act(input)
|
|
186
|
+
|
|
187
|
+
# Convert target to one-hot if needed
|
|
188
|
+
if self.to_onehot_y:
|
|
189
|
+
if n_pred_ch == 1:
|
|
190
|
+
warnings.warn("single channel prediction, `to_onehot_y=True` ignored.", stacklevel=2)
|
|
191
|
+
else:
|
|
192
|
+
if target.dim() == input.dim() - 1:
|
|
193
|
+
target = target.unsqueeze(dim=1)
|
|
194
|
+
target = one_hot(target, num_classes=n_pred_ch)
|
|
195
|
+
|
|
196
|
+
# Validate shapes match
|
|
197
|
+
if input.shape != target.shape:
|
|
198
|
+
raise AssertionError(f"input and target shapes do not match: {input.shape} vs {target.shape}")
|
|
199
|
+
|
|
200
|
+
# Exclude background if requested
|
|
201
|
+
if not self.include_background:
|
|
202
|
+
if n_pred_ch == 1:
|
|
203
|
+
warnings.warn("single channel prediction, `include_background=False` ignored.", stacklevel=2)
|
|
204
|
+
else:
|
|
205
|
+
input = input[:, 1:]
|
|
206
|
+
target = target[:, 1:]
|
|
207
|
+
|
|
208
|
+
# Compute signed distance maps from target
|
|
209
|
+
distance_map = self.compute_distance_map(target)
|
|
210
|
+
|
|
211
|
+
# Compute boundary loss: sum over spatial dimensions of (probabilities * distance_map)
|
|
212
|
+
# Then average over classes and batch
|
|
213
|
+
spatial_axes = list(range(2, input.dim()))
|
|
214
|
+
|
|
215
|
+
loss = torch.sum(input * distance_map, dim=spatial_axes)
|
|
216
|
+
|
|
217
|
+
# Normalize by number of pixels per class per batch element
|
|
218
|
+
num_pixels = torch.prod(torch.as_tensor(input.shape[2:], device=input.device))
|
|
219
|
+
loss = loss / num_pixels
|
|
220
|
+
if self.batch:
|
|
221
|
+
loss = loss.mean(dim=0)
|
|
222
|
+
|
|
223
|
+
if self.reduction == LossReduction.MEAN.value:
|
|
224
|
+
loss = loss.mean()
|
|
225
|
+
elif self.reduction == LossReduction.SUM.value:
|
|
226
|
+
loss = loss.sum()
|
|
227
|
+
elif self.reduction == LossReduction.NONE.value:
|
|
228
|
+
# Return shape (B, C') unless batch=True reduces the batch dimension first.
|
|
229
|
+
pass
|
|
230
|
+
else:
|
|
231
|
+
raise ValueError(f"Unsupported reduction: {self.reduction}")
|
|
232
|
+
|
|
233
|
+
return loss
|
|
@@ -121,12 +121,13 @@ class Warp(nn.Module):
|
|
|
121
121
|
mesh_points = [torch.arange(0, dim) for dim in ddf.shape[2:]]
|
|
122
122
|
grid = torch.stack(meshgrid_ij(*mesh_points), dim=0) # (spatial_dims, ...)
|
|
123
123
|
grid = torch.stack([grid] * ddf.shape[0], dim=0) # (batch, spatial_dims, ...)
|
|
124
|
-
|
|
124
|
+
grid = grid.to(ddf)
|
|
125
125
|
if jitter:
|
|
126
126
|
# Define reference grid on non-integer values
|
|
127
|
-
with torch.random.fork_rng(
|
|
127
|
+
with torch.random.fork_rng():
|
|
128
128
|
torch.random.manual_seed(seed)
|
|
129
129
|
grid += torch.rand_like(grid)
|
|
130
|
+
self.ref_grid = grid
|
|
130
131
|
self.ref_grid.requires_grad = False
|
|
131
132
|
return self.ref_grid
|
|
132
133
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cuda_linalg.cuh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/ensemble_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/matching.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/array.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/box_ops.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/dictionary.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/ATSS_matcher.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/anchor_utils.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/box_coder.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/box_selector.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/detector_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/predict_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/engines/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/handlers/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/handlers/utils.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/inferers/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/inferers/inferer.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/losses/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/losses/hovernet_loss.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/metrics/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/metrics/lesion_froc.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/array.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/array.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/complex_utils.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/fastmri_reader.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/mri_utils.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/array.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|