monai-weekly 1.7.dev2640__tar.gz → 1.7.dev2641__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.dev2640 → monai_weekly-1.7.dev2641}/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/__init__.py +1 -1
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/loader.py +3 -1
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_version.py +3 -3
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/utils.py +17 -5
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/calibration.py +2 -2
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/mlflow_handler.py +119 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/__init__.py +1 -0
- monai_weekly-1.7.dev2641/monai/losses/calibration.py +379 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/image_dissimilarity.py +25 -6
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/calibration.py +4 -4
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/hausdorff_distance.py +47 -3
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/utils.py +1 -1
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/warp.py +17 -2
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/dints.py +44 -6
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/array.py +135 -9
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/dictionary.py +24 -2
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/SOURCES.txt +1 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/setup.py +5 -1
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/LICENSE +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/MANIFEST.in +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/README.md +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm.cpp +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm.h +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/__main__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/auto_runner.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/bundle_gen.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/data_analyzer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/hpo_gen.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/transforms.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/datasets.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/interaction.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/transforms.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/dataset.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/interaction.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/transforms.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/coco.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/matching.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/retinanet_detector.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/retinanet_network.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/box_ops.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/anchor_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/box_coder.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/box_selector.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/detector_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/predict_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/mmars/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/mmars/mmars.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/mmars/model_desc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/__main__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/nnunet_bundle.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nuclick/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nuclick/transforms.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/complex_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/fastmri_reader.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/mri_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/tcia/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/tcia/label_desc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/tcia/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/inferer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/sampler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/transforms.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/algo_gen.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/analyzer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/operations.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/seg_summarizer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/__main__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/config_item.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/config_parser.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/properties.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/reference_resolver.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/scripts.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/workflows.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/__main__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/check_env.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/deviceconfig.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/print_dependencies.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/type_definitions.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/box_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/csv_saver.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/dataloader.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/dataset.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/dataset_summary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/decathlon_datalist.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/fft_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/folder_layout.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/grid_dataset.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/image_dataset.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/image_reader.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/image_writer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/iterable_dataset.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/itk_torch_bridge.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/meta_obj.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/meta_tensor.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/nvimgcodec_pydicom_plugin.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/samplers.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/synthetic.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/test_time_augmentation.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/thread_buffer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/torchscript_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/ultrasound_confidence_map.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/video_dataset.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/wsi_datasets.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/wsi_reader.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/evaluator.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/trainer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/workflow.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/client/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/client/client_algo.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/client/monai_algo.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/constants.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/exchange_object.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/filters.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/average_precision.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/checkpoint_loader.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/checkpoint_saver.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/classification_saver.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/clearml_handlers.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/decollate_batch.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/earlystop_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/garbage_collector.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/ignite_metric.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/logfile_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/lr_schedule_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/mean_dice.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/mean_iou.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/metric_logger.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/metrics_reloaded_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/metrics_saver.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/nvtx_handlers.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/parameter_scheduler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/postprocessing.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/probability_maps.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/regression_metrics.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/roc_auc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/smartcache_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/stats_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/tensorboard_handlers.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/trt_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/validation_handler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/merger.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/splitter.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/adversarial_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/aucm_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/barlow_twins.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/boundary_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/cldice.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/contrastive.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/deform.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/dice.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/ds_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/focal_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/giou_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/hausdorff_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/mcc_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/multi_scale.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/nacl_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/perceptual.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/spatial_mask.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/spectral_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/ssim_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/sure_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/tversky.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/unified_focal_loss.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/absolute_volume_difference.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/active_learning_metrics.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/average_precision.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/cumulative_average.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/embedding_collapse.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/f_beta_score.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/fid.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/froc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/generalized_dice.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/loss_metric.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/meandice.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/meaniou.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/metric.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/mmd.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/regression.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/rocauc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/surface_dice.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/wrapper.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/acti_norm.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/activation.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/activation_checkpointing.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/aspp.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/attention_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/cablock.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/convolutions.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/crf.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/crossattention.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/denseblock.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/dints_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/downsample.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/dynunet_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/encoder.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/fcn.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/feature_pyramid_network.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/fft_utils_t.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/hyena.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/localnet_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/mednext_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/mlp.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/patchembedding.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/pos_embed_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/regunet_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/rel_pos_embedding.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/segresnet_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/selfattention.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/spade_norm.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/spatialattention.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/text_embedding.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/transformerblock.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/unetr_block.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/upsample.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/conjugate_gradient.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/convutils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/drop_path.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/factories.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/filtering.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/gmm.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/simplelayers.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/spatial_transforms.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/vector_quantizer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/weight_init.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/ahnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/attentionunet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/autoencoder.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/basic_unet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/basic_unetplusplus.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/cell_sam_wrapper.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/classifier.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/controlnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/daf3d.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/densenet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/dynunet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/efficientnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/flexible_unet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/fullyconnectednet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/generator.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/highresnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/hovernet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/hyena_nd_unetr.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/mednext.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/milmodel.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/navit.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/netadapter.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/patchgan_discriminator.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/quicknat.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/regressor.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/regunet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/resnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/restormer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/segresnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/segresnet_ds.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/senet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_network.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/swin_unetr.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/torchvision_fc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/transchex.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/transformer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/unet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/unetr.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/varautoencoder.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vista3d.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vit.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vitautoenc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vnet.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/voxelmorph.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vqvae.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/ddim.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/ddpm.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/pndm.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/rectified_flow.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/scheduler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/trt_compiler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/lr_finder.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/lr_scheduler.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/novograd.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/py.typed +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/adaptors.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/compose.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/batch.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/functional.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/inverse.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/inverse_batch_transform.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/io/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/io/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/io/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/functional.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/meta_utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/meta_utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/nvtx.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/signal/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/signal/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/signal/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/functional.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/traits.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/transform.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utility/array.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils_create_transform_ims.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils_morphological_ops.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/compare_sources.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/component_store.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/decorators.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/deprecate_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/dist.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/enums.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/jupyter_utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/misc.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/module.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/nvtx.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/ordering.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/profiling.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/safeeval.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/state_cacher.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/tf32.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/type_conversion.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/__init__.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/class_activation_maps.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/gradient_based.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/img2tensorboard.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/occlusion_sensitivity.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/utils.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/visualizer.py +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/dependency_links.txt +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/not-zip-safe +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/requires.txt +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/top_level.txt +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/pyproject.toml +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/setup.cfg +0 -0
- {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/versioneer.py +0 -0
|
@@ -75,7 +75,9 @@ def load_module(
|
|
|
75
75
|
source = glob(path.join(module_dir, "**", "*.cpp"), recursive=True)
|
|
76
76
|
if torch.cuda.is_available():
|
|
77
77
|
source += glob(path.join(module_dir, "**", "*.cu"), recursive=True)
|
|
78
|
-
|
|
78
|
+
# `torch.version.cuda` is None on a ROCm build, which would make every ROCm
|
|
79
|
+
# toolkit version share a single cache entry. Key on whichever is populated.
|
|
80
|
+
platform_str += f"_{torch.version.cuda or f'hip{torch.version.hip}'}"
|
|
79
81
|
|
|
80
82
|
# Constructing compilation argument list.
|
|
81
83
|
define_args = [] if not defines else [f"-D {key}={defines[key]}" for key in defines]
|
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2026-10-
|
|
11
|
+
"date": "2026-10-11T02:25:27+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.7.
|
|
14
|
+
"full-revisionid": "7bfe671ffaf469a0b2a44c800abe101d1f3447b4",
|
|
15
|
+
"version": "1.7.dev2641"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -686,28 +686,40 @@ def worker_init_fn(worker_id: int) -> None:
|
|
|
686
686
|
set_rnd(worker_info.dataset, seed=worker_info.seed) # type: ignore[union-attr]
|
|
687
687
|
|
|
688
688
|
|
|
689
|
-
def set_rnd(obj, seed: int) -> int:
|
|
689
|
+
def set_rnd(obj, seed: int, _seen: set[int] | None = None) -> int:
|
|
690
690
|
"""
|
|
691
691
|
Set seed or random state for all randomizable properties of obj.
|
|
692
692
|
|
|
693
693
|
Args:
|
|
694
694
|
obj: object to set seed or random state for.
|
|
695
695
|
seed: set the random state with an integer seed.
|
|
696
|
+
_seen: internal set of already-visited object ids, used to guard against
|
|
697
|
+
infinite recursion on cyclic object graphs (e.g. OmegaConf/Hydra
|
|
698
|
+
configs whose child nodes back-reference their parent, see issue #8087).
|
|
696
699
|
"""
|
|
700
|
+
if _seen is None:
|
|
701
|
+
_seen = set()
|
|
697
702
|
if isinstance(obj, (tuple, list)): # ZipDataset.data is a list
|
|
698
|
-
|
|
703
|
+
if id(obj) in _seen:
|
|
704
|
+
return seed
|
|
705
|
+
_seen.add(id(obj))
|
|
706
|
+
has_randomizable = False
|
|
699
707
|
for item in obj:
|
|
700
|
-
|
|
701
|
-
|
|
708
|
+
item_seed = set_rnd(item, seed=seed, _seen=_seen)
|
|
709
|
+
has_randomizable = has_randomizable or item_seed != seed
|
|
710
|
+
return seed + 1 if has_randomizable else seed
|
|
702
711
|
if not hasattr(obj, "__dict__"):
|
|
703
712
|
return seed # no attribute
|
|
713
|
+
if id(obj) in _seen:
|
|
714
|
+
return seed # already visited: avoid infinite recursion on cyclic references
|
|
715
|
+
_seen.add(id(obj))
|
|
704
716
|
if hasattr(obj, "set_random_state"):
|
|
705
717
|
obj.set_random_state(seed=seed % MAX_SEED)
|
|
706
718
|
return seed + 1 # a different seed for the next component
|
|
707
719
|
for key in obj.__dict__:
|
|
708
720
|
if key.startswith("__"): # skip the private methods
|
|
709
721
|
continue
|
|
710
|
-
seed = set_rnd(obj.__dict__[key], seed=seed)
|
|
722
|
+
seed = set_rnd(obj.__dict__[key], seed=seed, _seen=_seen)
|
|
711
723
|
return seed
|
|
712
724
|
|
|
713
725
|
|
|
@@ -59,8 +59,8 @@ class CalibrationError(IgniteMetricHandler):
|
|
|
59
59
|
- Guo, C., et al. "On Calibration of Modern Neural Networks." ICML 2017.
|
|
60
60
|
https://proceedings.mlr.press/v70/guo17a.html
|
|
61
61
|
- Barfoot, T., et al. "Average Calibration Losses for Reliable Uncertainty in
|
|
62
|
-
Medical Image Segmentation."
|
|
63
|
-
https://
|
|
62
|
+
Medical Image Segmentation." IEEE Transactions on Medical Imaging, 2026.
|
|
63
|
+
https://doi.org/10.1109/TMI.2026.3673118
|
|
64
64
|
|
|
65
65
|
See Also:
|
|
66
66
|
- :py:class:`~monai.metrics.CalibrationErrorMetric`: The underlying metric class.
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
14
|
import os
|
|
15
|
+
import threading
|
|
15
16
|
import time
|
|
16
17
|
import warnings
|
|
17
18
|
from collections.abc import Callable, Mapping, Sequence
|
|
@@ -43,6 +44,9 @@ MlflowException, _ = optional_import(
|
|
|
43
44
|
)
|
|
44
45
|
pandas, _ = optional_import("pandas", descriptor="Please install pandas for recording the dataset.")
|
|
45
46
|
tqdm, _ = optional_import("tqdm", "4.47.0", min_version, "tqdm")
|
|
47
|
+
SystemMetricsMonitor, has_system_metrics = optional_import(
|
|
48
|
+
"mlflow.system_metrics.system_metrics_monitor", name="SystemMetricsMonitor"
|
|
49
|
+
)
|
|
46
50
|
|
|
47
51
|
if TYPE_CHECKING:
|
|
48
52
|
from ignite.engine import Engine
|
|
@@ -136,6 +140,19 @@ class MLFlowHandler:
|
|
|
136
140
|
or the ``MLFLOW_TRACKING_URI`` environment variable), it defaults to an ``mlruns`` directory
|
|
137
141
|
next to the database file; for other backends ``None`` lets MLflow decide based on the
|
|
138
142
|
``tracking_uri``. Has no effect if the experiment already exists.
|
|
143
|
+
log_system_metrics: whether to record system resource usage (CPU, memory, disk, network and GPU)
|
|
144
|
+
while the workflow runs, default to False. The metrics are sampled in a background thread by
|
|
145
|
+
MLflow itself and stored in the same run as the workflow metrics, under the `system/` prefix.
|
|
146
|
+
Requires `psutil`, and `pynvml` in addition for the GPU metrics. Note that MLflow reads the
|
|
147
|
+
run through the global tracking URI to sample it, so this points the global tracking URI
|
|
148
|
+
(and with it `MLFLOW_TRACKING_URI`, which later handlers read in preference to their own
|
|
149
|
+
argument) at `tracking_uri` while the run is sampled, and puts the previous value back
|
|
150
|
+
when sampling stops.
|
|
151
|
+
system_metrics_sampling_interval: seconds between two samples of the system metrics, default to
|
|
152
|
+
`None`, which keeps the MLflow default (10 seconds). Only used if `log_system_metrics` is True.
|
|
153
|
+
system_metrics_samples_before_logging: number of samples to aggregate before they are logged,
|
|
154
|
+
default to `None`, which keeps the MLflow default (1 sample). Only used if `log_system_metrics`
|
|
155
|
+
is True.
|
|
139
156
|
|
|
140
157
|
For more details of MLFlow usage, please refer to: https://mlflow.org/docs/latest/index.html.
|
|
141
158
|
|
|
@@ -144,6 +161,10 @@ class MLFlowHandler:
|
|
|
144
161
|
# parameters that are logged at the start of training
|
|
145
162
|
default_tracking_params = ["max_epochs", "epoch_length"]
|
|
146
163
|
|
|
164
|
+
# runs whose system metrics are being sampled, so that handlers sharing a run sample it once
|
|
165
|
+
_monitored_run_ids: set[str] = set()
|
|
166
|
+
_system_metrics_lock = threading.Lock()
|
|
167
|
+
|
|
147
168
|
def __init__(
|
|
148
169
|
self,
|
|
149
170
|
tracking_uri: str | None = None,
|
|
@@ -165,6 +186,9 @@ class MLFlowHandler:
|
|
|
165
186
|
optimizer_param_names: str | Sequence[str] = "lr",
|
|
166
187
|
close_on_complete: bool = False,
|
|
167
188
|
artifact_location: str | None = None,
|
|
189
|
+
log_system_metrics: bool = False,
|
|
190
|
+
system_metrics_sampling_interval: int | None = None,
|
|
191
|
+
system_metrics_samples_before_logging: int | None = None,
|
|
168
192
|
) -> None:
|
|
169
193
|
self.iteration_log = iteration_log
|
|
170
194
|
self.epoch_log = epoch_log
|
|
@@ -210,11 +234,27 @@ class MLFlowHandler:
|
|
|
210
234
|
f"tracking_uri={effective_tracking_uri!r}. Use a SQLite URI "
|
|
211
235
|
"(sqlite:///<path>/mlruns.db) or a remote tracking URI instead."
|
|
212
236
|
)
|
|
237
|
+
# The system metrics monitor reads the run through the global tracking uri,
|
|
238
|
+
# so remember the uri that was actually settled on rather than the argument.
|
|
239
|
+
self.tracking_uri = effective_tracking_uri
|
|
213
240
|
# Only the argument is passed to the client; when `MLFLOW_TRACKING_URI` took priority it
|
|
214
241
|
# is left None so MLflow resolves the environment variable itself.
|
|
215
242
|
self.client = mlflow.MlflowClient(tracking_uri=None if env_tracking_uri else tracking_uri)
|
|
216
243
|
self.run_finish_status = mlflow.entities.RunStatus.to_string(mlflow.entities.RunStatus.FINISHED)
|
|
217
244
|
self.close_on_complete = close_on_complete
|
|
245
|
+
self.log_system_metrics = log_system_metrics
|
|
246
|
+
for name, value in (
|
|
247
|
+
("system_metrics_sampling_interval", system_metrics_sampling_interval),
|
|
248
|
+
("system_metrics_samples_before_logging", system_metrics_samples_before_logging),
|
|
249
|
+
):
|
|
250
|
+
if value is not None and value <= 0:
|
|
251
|
+
raise ValueError(f"`{name}` must be a positive number, got {value}.")
|
|
252
|
+
self.system_metrics_sampling_interval = system_metrics_sampling_interval
|
|
253
|
+
self.system_metrics_samples_before_logging = system_metrics_samples_before_logging
|
|
254
|
+
self.system_metrics_monitor = None
|
|
255
|
+
self._monitored_run_id: str | None = None
|
|
256
|
+
self._previous_tracking_uri: str | None = None
|
|
257
|
+
self._tracking_uri_overridden = False
|
|
218
258
|
self.experiment = None
|
|
219
259
|
self.cur_run = None
|
|
220
260
|
self.dataset_dict = dataset_dict
|
|
@@ -295,6 +335,81 @@ class MLFlowHandler:
|
|
|
295
335
|
else:
|
|
296
336
|
self._default_dataset_log(self.dataset_dict)
|
|
297
337
|
|
|
338
|
+
if self.log_system_metrics:
|
|
339
|
+
self._start_system_metrics_monitor()
|
|
340
|
+
|
|
341
|
+
def _start_system_metrics_monitor(self) -> None:
|
|
342
|
+
"""
|
|
343
|
+
Start sampling the system resource usage of the current run, if it is not sampled yet.
|
|
344
|
+
|
|
345
|
+
A workflow attaches one handler per engine, and those handlers share a run, so the run is
|
|
346
|
+
sampled by the first handler that starts and left alone by the other ones.
|
|
347
|
+
"""
|
|
348
|
+
if self.system_metrics_monitor is not None or self.cur_run is None:
|
|
349
|
+
return
|
|
350
|
+
|
|
351
|
+
if not has_system_metrics:
|
|
352
|
+
warnings.warn("Please install mlflow>=2.8.0 to record the system metrics.")
|
|
353
|
+
return
|
|
354
|
+
|
|
355
|
+
run_id = self.cur_run.info.run_id
|
|
356
|
+
with MLFlowHandler._system_metrics_lock:
|
|
357
|
+
if run_id in MLFlowHandler._monitored_run_ids:
|
|
358
|
+
return
|
|
359
|
+
|
|
360
|
+
kwargs = {}
|
|
361
|
+
if self.system_metrics_sampling_interval is not None:
|
|
362
|
+
kwargs["sampling_interval"] = self.system_metrics_sampling_interval
|
|
363
|
+
if self.system_metrics_samples_before_logging is not None:
|
|
364
|
+
kwargs["samples_before_logging"] = self.system_metrics_samples_before_logging
|
|
365
|
+
|
|
366
|
+
# mlflow reads the run to sample through the global tracking uri, not through
|
|
367
|
+
# the client, so it has to be pointed at ours for as long as we sample. Setting
|
|
368
|
+
# it also writes MLFLOW_TRACKING_URI, which every later handler reads in
|
|
369
|
+
# preference to its own argument, so the previous value is put back when
|
|
370
|
+
# sampling stops. `None` is a meaningful previous value, meaning it was unset,
|
|
371
|
+
# and passing it back to mlflow restores exactly that.
|
|
372
|
+
previous_tracking_uri = os.environ.get("MLFLOW_TRACKING_URI")
|
|
373
|
+
overridden = False
|
|
374
|
+
try:
|
|
375
|
+
if self.tracking_uri:
|
|
376
|
+
mlflow.set_tracking_uri(self.tracking_uri)
|
|
377
|
+
overridden = True
|
|
378
|
+
monitor = SystemMetricsMonitor(run_id, **kwargs)
|
|
379
|
+
monitor.start()
|
|
380
|
+
except Exception as e:
|
|
381
|
+
# a workflow should not fail because its resource usage cannot be recorded
|
|
382
|
+
if overridden:
|
|
383
|
+
mlflow.set_tracking_uri(previous_tracking_uri)
|
|
384
|
+
warnings.warn(f"Failed to record the system metrics: {e}")
|
|
385
|
+
return
|
|
386
|
+
self._previous_tracking_uri = previous_tracking_uri
|
|
387
|
+
self._tracking_uri_overridden = overridden
|
|
388
|
+
|
|
389
|
+
MLFlowHandler._monitored_run_ids.add(run_id)
|
|
390
|
+
self.system_metrics_monitor = monitor
|
|
391
|
+
self._monitored_run_id = run_id
|
|
392
|
+
|
|
393
|
+
def _stop_system_metrics_monitor(self) -> None:
|
|
394
|
+
"""
|
|
395
|
+
Stop sampling the system resource usage, if this handler is the one sampling it.
|
|
396
|
+
"""
|
|
397
|
+
if self.system_metrics_monitor is None:
|
|
398
|
+
return
|
|
399
|
+
|
|
400
|
+
with MLFlowHandler._system_metrics_lock:
|
|
401
|
+
try:
|
|
402
|
+
self.system_metrics_monitor.finish()
|
|
403
|
+
except Exception as e:
|
|
404
|
+
warnings.warn(f"Failed to stop recording the system metrics: {e}")
|
|
405
|
+
if self._tracking_uri_overridden:
|
|
406
|
+
mlflow.set_tracking_uri(self._previous_tracking_uri)
|
|
407
|
+
self._tracking_uri_overridden = False
|
|
408
|
+
self._previous_tracking_uri = None
|
|
409
|
+
MLFlowHandler._monitored_run_ids.discard(self._monitored_run_id)
|
|
410
|
+
self.system_metrics_monitor = None
|
|
411
|
+
self._monitored_run_id = None
|
|
412
|
+
|
|
298
413
|
def _set_experiment(self):
|
|
299
414
|
experiment = self.experiment
|
|
300
415
|
if not experiment:
|
|
@@ -394,6 +509,8 @@ class MLFlowHandler:
|
|
|
394
509
|
"""
|
|
395
510
|
Handler for train or validation/evaluation completed Event.
|
|
396
511
|
"""
|
|
512
|
+
self._stop_system_metrics_monitor()
|
|
513
|
+
|
|
397
514
|
if self.artifacts and self.cur_run:
|
|
398
515
|
artifact_list = self._parse_artifacts()
|
|
399
516
|
for artifact in artifact_list:
|
|
@@ -430,6 +547,8 @@ class MLFlowHandler:
|
|
|
430
547
|
Stop current running logger of MLFlow and release local SQLite resources.
|
|
431
548
|
|
|
432
549
|
"""
|
|
550
|
+
self._stop_system_metrics_monitor()
|
|
551
|
+
|
|
433
552
|
try:
|
|
434
553
|
if self.cur_run:
|
|
435
554
|
self.client.set_terminated(self.cur_run.info.run_id, self.run_finish_status)
|
|
@@ -15,6 +15,7 @@ from .adversarial_loss import PatchAdversarialLoss
|
|
|
15
15
|
from .aucm_loss import AUCMLoss
|
|
16
16
|
from .barlow_twins import BarlowTwinsLoss
|
|
17
17
|
from .boundary_loss import BoundaryLoss
|
|
18
|
+
from .calibration import HardL1ACELoss, SoftL1ACELoss
|
|
18
19
|
from .cldice import SoftclDiceLoss, SoftDiceclDiceLoss
|
|
19
20
|
from .contrastive import ContrastiveLoss
|
|
20
21
|
from .deform import BendingEnergyLoss, DiffusionLoss
|