monai-weekly 1.7.dev2636__tar.gz → 1.7.dev2637__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.dev2636 → monai_weekly-1.7.dev2637}/MANIFEST.in +1 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/__init__.py +1 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_version.py +3 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/auto_runner.py +15 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/networks/retinanet_detector.py +10 -6
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/utils.py +1 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/__init__.py +0 -1
- monai_weekly-1.7.dev2637/monai/config/__main__.py +15 -0
- monai_weekly-1.7.dev2637/monai/config/check_env.py +184 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/deviceconfig.py +33 -32
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/inferer.py +1 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/dice.py +17 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/focal_loss.py +58 -18
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/tversky.py +17 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/unified_focal_loss.py +78 -23
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/utils.py +13 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/confusion_matrix.py +46 -5
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/embedding_collapse.py +4 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/generalized_dice.py +71 -25
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/hausdorff_distance.py +44 -6
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/meandice.py +34 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/meaniou.py +38 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/surface_dice.py +40 -5
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/surface_distance.py +37 -4
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/utils.py +110 -14
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/fullyconnectednet.py +23 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/quicknat.py +24 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/varautoencoder.py +24 -4
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/utils.py +1 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/inverse.py +12 -3
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/post/dictionary.py +110 -7
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/SOURCES.txt +2 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/pyproject.toml +2 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/LICENSE +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/README.md +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm.cpp +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm.h +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/loader.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/__main__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/bundle_gen.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/data_analyzer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/hpo_gen.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/transforms.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/datasets.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepedit/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepedit/interaction.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepedit/transforms.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/dataset.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/interaction.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/transforms.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/metrics/coco.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/metrics/matching.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/networks/retinanet_network.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/box_ops.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/anchor_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/box_coder.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/box_selector.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/detector_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/predict_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/mmars/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/mmars/mmars.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/mmars/model_desc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/__main__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/nnunet_bundle.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nuclick/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nuclick/transforms.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/stain/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/complex_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/fastmri_reader.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/mri_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/tcia/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/tcia/label_desc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/tcia/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/inferer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/sampler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/transforms.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/algo_gen.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/analyzer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/operations.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/seg_summarizer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/__main__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/config_item.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/config_parser.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/properties.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/reference_resolver.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/scripts.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/workflows.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/print_dependencies.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/type_definitions.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/box_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/csv_saver.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/dataloader.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/dataset.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/dataset_summary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/decathlon_datalist.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/fft_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/folder_layout.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/grid_dataset.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/image_dataset.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/image_reader.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/image_writer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/iterable_dataset.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/itk_torch_bridge.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/meta_obj.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/meta_tensor.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/samplers.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/synthetic.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/test_time_augmentation.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/thread_buffer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/torchscript_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/ultrasound_confidence_map.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/video_dataset.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/wsi_datasets.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/wsi_reader.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/evaluator.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/trainer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/workflow.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/client/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/client/client_algo.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/client/monai_algo.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/constants.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/exchange_object.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/filters.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/average_precision.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/calibration.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/checkpoint_loader.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/checkpoint_saver.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/classification_saver.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/clearml_handlers.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/decollate_batch.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/earlystop_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/garbage_collector.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/ignite_metric.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/logfile_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/lr_schedule_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/mean_dice.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/mean_iou.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/metric_logger.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/metrics_reloaded_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/metrics_saver.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/mlflow_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/nvtx_handlers.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/parameter_scheduler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/postprocessing.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/probability_maps.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/regression_metrics.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/roc_auc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/smartcache_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/stats_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/tensorboard_handlers.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/trt_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/validation_handler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/merger.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/splitter.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/adversarial_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/aucm_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/barlow_twins.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/boundary_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/cldice.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/contrastive.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/deform.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/ds_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/giou_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/hausdorff_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/image_dissimilarity.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/mcc_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/multi_scale.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/nacl_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/perceptual.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/spatial_mask.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/spectral_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/ssim_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/sure_loss.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/absolute_volume_difference.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/active_learning_metrics.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/average_precision.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/calibration.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/cumulative_average.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/f_beta_score.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/fid.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/froc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/loss_metric.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/metric.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/mmd.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/regression.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/rocauc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/wrapper.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/acti_norm.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/activation.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/activation_checkpointing.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/aspp.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/attention_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/cablock.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/convolutions.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/crf.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/crossattention.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/denseblock.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/dints_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/downsample.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/dynunet_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/encoder.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/fcn.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/feature_pyramid_network.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/fft_utils_t.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/hyena.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/localnet_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/mednext_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/mlp.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/patchembedding.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/pos_embed_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/regunet_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/rel_pos_embedding.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/segresnet_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/selfattention.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/spade_norm.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/spatialattention.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/text_embedding.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/transformerblock.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/unetr_block.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/upsample.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/warp.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/conjugate_gradient.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/convutils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/drop_path.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/factories.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/filtering.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/gmm.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/simplelayers.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/spatial_transforms.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/vector_quantizer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/weight_init.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/ahnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/attentionunet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/autoencoder.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/basic_unet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/basic_unetplusplus.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/cell_sam_wrapper.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/classifier.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/controlnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/daf3d.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/densenet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/dints.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/dynunet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/efficientnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/flexible_unet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/generator.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/highresnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/hovernet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/hyena_nd_unetr.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/mednext.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/milmodel.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/navit.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/netadapter.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/patchgan_discriminator.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/regressor.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/regunet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/resnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/restormer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/segresnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/segresnet_ds.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/senet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/spade_autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/spade_network.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/swin_unetr.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/torchvision_fc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/transchex.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/transformer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/unet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/unetr.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vista3d.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vit.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vitautoenc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vnet.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/voxelmorph.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vqvae.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/ddim.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/ddpm.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/pndm.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/rectified_flow.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/scheduler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/trt_compiler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/lr_finder.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/lr_scheduler.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/novograd.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/py.typed +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/adaptors.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/compose.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/batch.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/functional.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/intensity/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/intensity/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/intensity/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/inverse_batch_transform.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/io/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/io/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/io/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/functional.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/meta_utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/meta_utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/nvtx.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/regularization/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/regularization/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/regularization/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/signal/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/signal/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/signal/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/smooth_field/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/smooth_field/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/smooth_field/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/functional.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/traits.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/transform.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utility/array.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils_create_transform_ims.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils_morphological_ops.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/component_store.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/decorators.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/deprecate_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/dist.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/enums.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/jupyter_utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/misc.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/module.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/nvtx.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/ordering.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/profiling.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/safeeval.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/state_cacher.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/tf32.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/type_conversion.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/__init__.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/class_activation_maps.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/gradient_based.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/img2tensorboard.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/occlusion_sensitivity.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/utils.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/visualizer.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/dependency_links.txt +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/not-zip-safe +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/requires.txt +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/top_level.txt +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/setup.cfg +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/setup.py +0 -0
- {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/versioneer.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2026-09-
|
|
11
|
+
"date": "2026-09-13T02:14:44+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.7.
|
|
14
|
+
"full-revisionid": "d127996ee583969c8495840104c3c3326c0614ff",
|
|
15
|
+
"version": "1.7.dev2637"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -202,7 +202,7 @@ class AutoRunner:
|
|
|
202
202
|
|
|
203
203
|
For the datalist file format, see the description under :py:func:`monai.data.load_decathlon_datalist`.
|
|
204
204
|
Note that the AutoRunner will use the "validation" key in the datalist file if it exists, otherwise
|
|
205
|
-
|
|
205
|
+
It will do cross-validation with the configured `num_fold` number of folds (default 5).
|
|
206
206
|
"""
|
|
207
207
|
|
|
208
208
|
analyze_params: dict | None
|
|
@@ -398,8 +398,15 @@ class AutoRunner:
|
|
|
398
398
|
Args:
|
|
399
399
|
datalist_filename: path to the datalist file.
|
|
400
400
|
|
|
401
|
+
Returns:
|
|
402
|
+
Number of existing or generated folds, or 1 when using a validation list.
|
|
403
|
+
|
|
404
|
+
Raises:
|
|
405
|
+
ValueError: If training data is missing, fold IDs are not continuous from zero,
|
|
406
|
+
or the automatic fold count is outside [2, number of training items].
|
|
407
|
+
|
|
401
408
|
Notes:
|
|
402
|
-
If the fold key is not provided, it
|
|
409
|
+
If the fold key is not provided, it generates the configured num_fold assignments (default 5).
|
|
403
410
|
If validation key list is available, then it assumes a single fold validation.
|
|
404
411
|
"""
|
|
405
412
|
|
|
@@ -440,7 +447,12 @@ class AutoRunner:
|
|
|
440
447
|
num_fold = 1
|
|
441
448
|
|
|
442
449
|
else:
|
|
443
|
-
num_fold = 5
|
|
450
|
+
num_fold = int(self.data_src_cfg.get("num_fold", 5))
|
|
451
|
+
if not 2 <= num_fold <= len(datalist["training"]):
|
|
452
|
+
raise ValueError(
|
|
453
|
+
"num_fold must be at least 2 and no greater than the number of training items "
|
|
454
|
+
"when AutoRunner generates folds."
|
|
455
|
+
)
|
|
444
456
|
|
|
445
457
|
warnings.warn(
|
|
446
458
|
f"Datalist has no folds specified {datalist_filename}..."
|
|
@@ -41,7 +41,7 @@ from __future__ import annotations
|
|
|
41
41
|
|
|
42
42
|
import warnings
|
|
43
43
|
from collections.abc import Callable, Sequence
|
|
44
|
-
from typing import Any
|
|
44
|
+
from typing import TYPE_CHECKING, Any
|
|
45
45
|
|
|
46
46
|
import torch
|
|
47
47
|
from torch import Tensor, nn
|
|
@@ -59,10 +59,13 @@ from monai.inferers import SlidingWindowInferer
|
|
|
59
59
|
from monai.networks.nets import resnet
|
|
60
60
|
from monai.utils import BlendMode, PytorchPadMode, ensure_tuple_rep, optional_import
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
62
|
+
if TYPE_CHECKING:
|
|
63
|
+
from torchvision.models.detection._utils import BalancedPositiveNegativeSampler, Matcher
|
|
64
|
+
else:
|
|
65
|
+
BalancedPositiveNegativeSampler, _ = optional_import(
|
|
66
|
+
"torchvision.models.detection._utils", name="BalancedPositiveNegativeSampler"
|
|
67
|
+
)
|
|
68
|
+
Matcher, _ = optional_import("torchvision.models.detection._utils", name="Matcher")
|
|
66
69
|
|
|
67
70
|
|
|
68
71
|
class RetinaNetDetector(nn.Module):
|
|
@@ -769,10 +772,11 @@ class RetinaNetDetector(nn.Module):
|
|
|
769
772
|
# BELOW_LOW_THRESHOLD = -1, BETWEEN_THRESHOLDS = -2
|
|
770
773
|
if isinstance(self.proposal_matcher, Matcher):
|
|
771
774
|
# if torchvision matcher
|
|
775
|
+
matcher: Matcher = self.proposal_matcher
|
|
772
776
|
match_quality_matrix = self.box_overlap_metric(
|
|
773
777
|
targets_per_image[self.target_box_key].to(anchors_per_image.device), anchors_per_image
|
|
774
778
|
)
|
|
775
|
-
matched_idxs_per_image =
|
|
779
|
+
matched_idxs_per_image = matcher(match_quality_matrix)
|
|
776
780
|
elif isinstance(self.proposal_matcher, ATSSMatcher):
|
|
777
781
|
# if monai ATSS matcher
|
|
778
782
|
match_quality_matrix, matched_idxs_per_image = self.proposal_matcher(
|
|
@@ -378,7 +378,7 @@ def get_filename_from_url(data_url: str) -> str:
|
|
|
378
378
|
filename = re.findall('filename="?([^";]+)"?', content_disposition)
|
|
379
379
|
if filename:
|
|
380
380
|
return str(filename[0])
|
|
381
|
-
if "drive.google.com"
|
|
381
|
+
if urlparse(data_url).netloc == "drive.google.com":
|
|
382
382
|
response = requests.get(data_url)
|
|
383
383
|
if "text/html" in response.headers.get("Content-Type", ""):
|
|
384
384
|
soup = BeautifulSoup(response.text, "html.parser")
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
if __name__ == "__main__":
|
|
13
|
+
import monai
|
|
14
|
+
|
|
15
|
+
monai.config.print_debug_info() # type: ignore
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
#! /usr/bin/env python
|
|
2
|
+
|
|
3
|
+
# Copyright (c) MONAI Consortium
|
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
# you may not use this file except in compliance with the License.
|
|
6
|
+
# You may obtain a copy of the License at
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
9
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
10
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
11
|
+
# See the License for the specific language governing permissions and
|
|
12
|
+
# limitations under the License.
|
|
13
|
+
|
|
14
|
+
"""
|
|
15
|
+
Script for checking various elements of the runtime environment and printing a large amount of diagnostic information.
|
|
16
|
+
|
|
17
|
+
This is meant to be used for debugging environments used with MONAI, but doesn't directly need MONAI itself. It will
|
|
18
|
+
print information about the environment, including trying to get installed packages, test PyTorch with CUDA, and then
|
|
19
|
+
have MONAI print its debugging information if no errors encountered. If MONAI is not installed this script should still
|
|
20
|
+
work and produce useful information. Only standard libraries are needed in case a bare environment is being used.
|
|
21
|
+
|
|
22
|
+
This can be run as a program with the following options to see all outputs:
|
|
23
|
+
|
|
24
|
+
python check_env.py --env --monai
|
|
25
|
+
|
|
26
|
+
With no options at all this can be used to test that PyTorch is installed and can move a tensor to a device. This is
|
|
27
|
+
useful when creating a fresh test environment and MONAI isn't present yet but it's good practice to valid PyTorch.
|
|
28
|
+
Environment variables can be printed by using `--envars` with `--env`, however the output from this is not checked for
|
|
29
|
+
secrets so users
|
|
30
|
+
|
|
31
|
+
This can also be used remotely with only Python installed to get current environment diagnostic info:
|
|
32
|
+
|
|
33
|
+
curl https://raw.githubusercontent.com/Project-MONAI/MONAI/refs/heads/dev/monai/config/check_env.py | python
|
|
34
|
+
"""
|
|
35
|
+
|
|
36
|
+
from __future__ import annotations
|
|
37
|
+
|
|
38
|
+
import argparse
|
|
39
|
+
import getpass
|
|
40
|
+
import multiprocessing
|
|
41
|
+
import os
|
|
42
|
+
import platform
|
|
43
|
+
import shutil
|
|
44
|
+
import subprocess
|
|
45
|
+
import sys
|
|
46
|
+
from functools import partial
|
|
47
|
+
|
|
48
|
+
DESC = """
|
|
49
|
+
Script for checking various elements of the runtime environment and printing a large amount of diagnostic information.
|
|
50
|
+
This is used for debugging your environment by printing out various system statistics and diagnostic information. It
|
|
51
|
+
checks PyTorch and MONAI are installed and functioning. A typical use case is with the `--env` and `--monai` options.
|
|
52
|
+
"""
|
|
53
|
+
|
|
54
|
+
USER = getpass.getuser()
|
|
55
|
+
HOST = platform.node()
|
|
56
|
+
efprint = partial(print, flush=True, file=sys.stderr)
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def fprint(*args, **kwargs):
|
|
60
|
+
"""
|
|
61
|
+
Print with flushing, replacing the username and hostname values with placeholders for better anonymization.
|
|
62
|
+
"""
|
|
63
|
+
kwargs["flush"] = True
|
|
64
|
+
content = " ".join(map(str, args))
|
|
65
|
+
content = content.replace(USER, "<user>").replace(HOST, "<host>")
|
|
66
|
+
print(content, **kwargs)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def print_platform():
|
|
70
|
+
"""
|
|
71
|
+
Print basic platform information.
|
|
72
|
+
"""
|
|
73
|
+
fprint(platform.platform())
|
|
74
|
+
fprint("uname:", list(platform.uname()))
|
|
75
|
+
fprint("CPU:", platform.processor(), "Count:", multiprocessing.cpu_count())
|
|
76
|
+
fprint("Python:", sys.executable, platform.python_implementation(), platform.python_version())
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def print_environment_vars():
|
|
80
|
+
"""
|
|
81
|
+
Print all environment variables other than a few known pointless ones.
|
|
82
|
+
"""
|
|
83
|
+
fprint("Environment:")
|
|
84
|
+
for k, v in os.environ.items():
|
|
85
|
+
if k not in ("LS_COLORS", "PS1", "PS2"):
|
|
86
|
+
fprint(f" {k}:", v)
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def print_environment():
|
|
90
|
+
"""
|
|
91
|
+
Print the installed environment using `conda` or `pip`, fail if neither are present.
|
|
92
|
+
"""
|
|
93
|
+
try:
|
|
94
|
+
cmd = ("conda", "env", "export") if shutil.which("conda") else ("pip", "list")
|
|
95
|
+
|
|
96
|
+
result = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
|
|
97
|
+
fprint(result.decode())
|
|
98
|
+
return True
|
|
99
|
+
except Exception as e:
|
|
100
|
+
efprint(f"Exception encountered getting environment with conda/pip: {e}")
|
|
101
|
+
return False
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
def check_torch():
|
|
105
|
+
"""
|
|
106
|
+
Check PyTorch is installed and a tensor can be created.
|
|
107
|
+
"""
|
|
108
|
+
try:
|
|
109
|
+
import torch
|
|
110
|
+
|
|
111
|
+
t = torch.rand(2, 3) * 5
|
|
112
|
+
fprint("PyTorch:", torch.__version__, torch.__path__)
|
|
113
|
+
fprint("Test tensor:", t.flatten())
|
|
114
|
+
return True
|
|
115
|
+
except ImportError:
|
|
116
|
+
efprint("PyTorch not installed")
|
|
117
|
+
return False
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def check_torch_cuda():
|
|
121
|
+
"""
|
|
122
|
+
Check CUDA capability in PyTorch by moving a tensor to each available device.
|
|
123
|
+
"""
|
|
124
|
+
import torch
|
|
125
|
+
|
|
126
|
+
fprint("CUDA version:", torch.version.cuda)
|
|
127
|
+
|
|
128
|
+
try:
|
|
129
|
+
dcount = torch.cuda.device_count()
|
|
130
|
+
fprint("PyTorch GPU Count:", dcount)
|
|
131
|
+
|
|
132
|
+
for d in range(dcount):
|
|
133
|
+
fprint(f" {torch.cuda.get_device_properties(d)}")
|
|
134
|
+
t = torch.rand(2, 3).to(torch.device(f"cuda:{d}")) * 5
|
|
135
|
+
fprint("Test tensor:", t.flatten())
|
|
136
|
+
return True
|
|
137
|
+
except Exception as e:
|
|
138
|
+
efprint(f"PyTorch encountered exception creating GPU tensor on device {d}: {e}")
|
|
139
|
+
return False
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def check_monai():
|
|
143
|
+
"""
|
|
144
|
+
Check MONAI by importing it then printing its debug info.
|
|
145
|
+
"""
|
|
146
|
+
try:
|
|
147
|
+
import monai
|
|
148
|
+
|
|
149
|
+
monai.config.print_debug_info() # type: ignore
|
|
150
|
+
return True
|
|
151
|
+
except ImportError:
|
|
152
|
+
efprint("MONAI not installed")
|
|
153
|
+
return False
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
if __name__ == "__main__":
|
|
157
|
+
parser = argparse.ArgumentParser(prog="check_env.py", description=DESC.strip())
|
|
158
|
+
parser.add_argument("--env", default=False, action="store_true", help="Print environment info")
|
|
159
|
+
parser.add_argument("--envvars", default=False, action="store_true", help="Include environment variables")
|
|
160
|
+
parser.add_argument("--monai", default=False, action="store_true", help="Print MONAI info")
|
|
161
|
+
args = parser.parse_args()
|
|
162
|
+
|
|
163
|
+
fprint("=" * 10, "Platform Info", "=" * 10)
|
|
164
|
+
print_platform()
|
|
165
|
+
|
|
166
|
+
if args.env:
|
|
167
|
+
fprint("=" * 10, "Checking Environment", "=" * 10)
|
|
168
|
+
if args.envvars:
|
|
169
|
+
print_environment_vars()
|
|
170
|
+
print_environment()
|
|
171
|
+
|
|
172
|
+
fprint("=" * 10, "Checking PyTorch", "=" * 10)
|
|
173
|
+
|
|
174
|
+
if not check_torch():
|
|
175
|
+
efprint("Exiting early, no valid PyTorch install found.")
|
|
176
|
+
sys.exit(1)
|
|
177
|
+
|
|
178
|
+
if not check_torch_cuda():
|
|
179
|
+
efprint("Exiting early, PyTorch encountered CUDA error.")
|
|
180
|
+
sys.exit(1)
|
|
181
|
+
|
|
182
|
+
if args.monai:
|
|
183
|
+
fprint("=" * 10, "Checking MONAI", "=" * 10)
|
|
184
|
+
check_monai()
|
|
@@ -23,8 +23,6 @@ import numpy as np
|
|
|
23
23
|
import torch
|
|
24
24
|
|
|
25
25
|
import monai
|
|
26
|
-
from monai.utils.deprecate_utils import deprecated
|
|
27
|
-
from monai.utils.enums import IgniteInfo as _IgniteInfo
|
|
28
26
|
from monai.utils.module import OptionalImportError, get_package_version, optional_import
|
|
29
27
|
|
|
30
28
|
try:
|
|
@@ -47,9 +45,21 @@ __all__ = [
|
|
|
47
45
|
"print_debug_info",
|
|
48
46
|
"USE_COMPILED",
|
|
49
47
|
"USE_META_DICT",
|
|
50
|
-
"IgniteInfo",
|
|
51
48
|
]
|
|
52
49
|
|
|
50
|
+
USER = getpass.getuser()
|
|
51
|
+
HOST = platform.node()
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
def fprint(*args, **kwargs):
|
|
55
|
+
"""
|
|
56
|
+
Print with flushing, replacing the username and hostname values with placeholders for better anonymization.
|
|
57
|
+
"""
|
|
58
|
+
kwargs["flush"] = True
|
|
59
|
+
content = " ".join(map(str, args))
|
|
60
|
+
content = content.replace(USER, "<user>").replace(HOST, "<host>")
|
|
61
|
+
print(content, **kwargs)
|
|
62
|
+
|
|
53
63
|
|
|
54
64
|
def get_config_values():
|
|
55
65
|
"""
|
|
@@ -100,17 +110,15 @@ def print_config(file=sys.stdout):
|
|
|
100
110
|
file: `print()` text stream file. Defaults to `sys.stdout`.
|
|
101
111
|
"""
|
|
102
112
|
for k, v in get_config_values().items():
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
print(f"MONAI __file__: {masked_file_path}", file=file, flush=True)
|
|
109
|
-
print("\nOptional dependencies:", file=file, flush=True)
|
|
113
|
+
fprint(f"{k} version: {v}", file=file)
|
|
114
|
+
fprint(f"MONAI flags: {HAS_EXT=}, {USE_COMPILED=}, {USE_META_DICT=}", file=file)
|
|
115
|
+
fprint(f"MONAI rev id: {monai.__revision_id__}", file=file)
|
|
116
|
+
fprint(f"MONAI __file__: {monai.__file__}", file=file)
|
|
117
|
+
fprint("\nOptional dependencies:", file=file)
|
|
110
118
|
for k, v in get_optional_config_values().items():
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
119
|
+
fprint(f"{k} version: {v}", file=file)
|
|
120
|
+
fprint("\nFor details about installing the optional dependencies, please visit:", file=file)
|
|
121
|
+
fprint(
|
|
114
122
|
" https://monai.readthedocs.io/en/latest/installation.html#installing-the-recommended-dependencies\n",
|
|
115
123
|
file=file,
|
|
116
124
|
flush=True,
|
|
@@ -191,10 +199,10 @@ def print_system_info(file: TextIO = sys.stdout) -> None:
|
|
|
191
199
|
file: `print()` text stream file. Defaults to `sys.stdout`.
|
|
192
200
|
"""
|
|
193
201
|
if not has_psutil:
|
|
194
|
-
|
|
202
|
+
fprint("`psutil` required for `print_system_info`", file=file)
|
|
195
203
|
else:
|
|
196
204
|
for k, v in get_system_info().items():
|
|
197
|
-
|
|
205
|
+
fprint(f"{k}: {v}", file=file)
|
|
198
206
|
|
|
199
207
|
|
|
200
208
|
def get_gpu_info() -> OrderedDict:
|
|
@@ -239,7 +247,7 @@ def print_gpu_info(file: TextIO = sys.stdout) -> None:
|
|
|
239
247
|
file: `print()` text stream file. Defaults to `sys.stdout`.
|
|
240
248
|
"""
|
|
241
249
|
for k, v in get_gpu_info().items():
|
|
242
|
-
|
|
250
|
+
fprint(f"{k}: {v}", file=file)
|
|
243
251
|
|
|
244
252
|
|
|
245
253
|
def print_debug_info(file: TextIO = sys.stdout) -> None:
|
|
@@ -249,26 +257,19 @@ def print_debug_info(file: TextIO = sys.stdout) -> None:
|
|
|
249
257
|
Args:
|
|
250
258
|
file: `print()` text stream file. Defaults to `sys.stdout`.
|
|
251
259
|
"""
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
260
|
+
fprint("================================", file=file)
|
|
261
|
+
fprint("Printing MONAI config...", file=file)
|
|
262
|
+
fprint("================================", file=file)
|
|
255
263
|
print_config(file)
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
264
|
+
fprint("\n================================", file=file)
|
|
265
|
+
fprint("Printing system config...", file=file)
|
|
266
|
+
fprint("================================", file=file)
|
|
259
267
|
print_system_info(file)
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
268
|
+
fprint("\n================================", file=file)
|
|
269
|
+
fprint("Printing GPU config...", file=file)
|
|
270
|
+
fprint("================================", file=file)
|
|
263
271
|
print_gpu_info(file)
|
|
264
272
|
|
|
265
273
|
|
|
266
|
-
@deprecated(since="1.4.0", removed="1.6.0", msg_suffix="Please use `monai.utils.enums.IgniteInfo` instead.")
|
|
267
|
-
class IgniteInfo:
|
|
268
|
-
"""Deprecated Import of IgniteInfo enum, which was moved to `monai.utils.enums.IgniteInfo`."""
|
|
269
|
-
|
|
270
|
-
OPT_IMPORT_VERSION = _IgniteInfo.OPT_IMPORT_VERSION
|
|
271
|
-
|
|
272
|
-
|
|
273
274
|
if __name__ == "__main__":
|
|
274
275
|
print_debug_info()
|
|
@@ -1773,7 +1773,7 @@ class ControlNetLatentDiffusionInferer(ControlNetDiffusionInferer):
|
|
|
1773
1773
|
super().__init__(scheduler=scheduler)
|
|
1774
1774
|
self.scale_factor = scale_factor
|
|
1775
1775
|
if (ldm_latent_shape is None) ^ (autoencoder_latent_shape is None):
|
|
1776
|
-
raise ValueError("If ldm_latent_shape is None, autoencoder_latent_shape must be None
|
|
1776
|
+
raise ValueError("If ldm_latent_shape is None, autoencoder_latent_shape must be None and vice versa.")
|
|
1777
1777
|
self.ldm_latent_shape = ldm_latent_shape
|
|
1778
1778
|
self.autoencoder_latent_shape = autoencoder_latent_shape
|
|
1779
1779
|
if self.ldm_latent_shape is not None and self.autoencoder_latent_shape is not None:
|
|
@@ -22,7 +22,8 @@ from torch.nn.modules.loss import _Loss
|
|
|
22
22
|
|
|
23
23
|
from monai.losses.focal_loss import FocalLoss
|
|
24
24
|
from monai.losses.spatial_mask import MaskedLoss
|
|
25
|
-
from monai.losses.utils import compute_tp_fp_fn
|
|
25
|
+
from monai.losses.utils import compute_tp_fp_fn, mask_loss_inputs
|
|
26
|
+
from monai.metrics.utils import create_ignore_mask
|
|
26
27
|
from monai.networks import one_hot
|
|
27
28
|
from monai.utils import DiceCEReduction, LossReduction, Weight, look_up_option
|
|
28
29
|
|
|
@@ -67,6 +68,7 @@ class DiceLoss(_Loss):
|
|
|
67
68
|
batch: bool = False,
|
|
68
69
|
weight: Sequence[float] | float | int | torch.Tensor | None = None,
|
|
69
70
|
soft_label: bool = False,
|
|
71
|
+
ignore_index: int | None = None,
|
|
70
72
|
) -> None:
|
|
71
73
|
"""
|
|
72
74
|
Args:
|
|
@@ -100,6 +102,10 @@ class DiceLoss(_Loss):
|
|
|
100
102
|
The value/values should be no less than 0. Defaults to None.
|
|
101
103
|
soft_label: whether the target contains non-binary values (soft labels) or not.
|
|
102
104
|
If True a soft label formulation of the loss will be used.
|
|
105
|
+
ignore_index: single integer class index (or sentinel value) to ignore from the loss computation.
|
|
106
|
+
Voxels with this label are excluded from the loss, which is useful for padding, unlabeled regions,
|
|
107
|
+
or boundary artifacts. For federated or aggregated settings, ensure all clients use the same
|
|
108
|
+
ignore_index to keep loss values comparable.
|
|
103
109
|
|
|
104
110
|
Raises:
|
|
105
111
|
TypeError: When ``other_act`` is not an ``Optional[Callable]``.
|
|
@@ -122,6 +128,7 @@ class DiceLoss(_Loss):
|
|
|
122
128
|
self.smooth_nr = float(smooth_nr)
|
|
123
129
|
self.smooth_dr = float(smooth_dr)
|
|
124
130
|
self.batch = batch
|
|
131
|
+
self.ignore_index = ignore_index
|
|
125
132
|
weight = torch.as_tensor(weight) if weight is not None else None
|
|
126
133
|
self.register_buffer("class_weight", weight)
|
|
127
134
|
self.class_weight: None | torch.Tensor
|
|
@@ -163,10 +170,15 @@ class DiceLoss(_Loss):
|
|
|
163
170
|
if self.other_act is not None:
|
|
164
171
|
input = self.other_act(input)
|
|
165
172
|
|
|
173
|
+
original_target = target
|
|
174
|
+
|
|
166
175
|
if self.to_onehot_y:
|
|
167
176
|
if n_pred_ch == 1:
|
|
168
177
|
warnings.warn("single channel prediction, `to_onehot_y=True` ignored.", stacklevel=2)
|
|
169
178
|
else:
|
|
179
|
+
if self.ignore_index is not None:
|
|
180
|
+
if self.ignore_index < 0 or self.ignore_index >= n_pred_ch:
|
|
181
|
+
target = torch.where(target == self.ignore_index, torch.zeros_like(target), target)
|
|
170
182
|
target = one_hot(target, num_classes=n_pred_ch)
|
|
171
183
|
|
|
172
184
|
if not self.include_background:
|
|
@@ -177,9 +189,13 @@ class DiceLoss(_Loss):
|
|
|
177
189
|
target = target[:, 1:]
|
|
178
190
|
input = input[:, 1:]
|
|
179
191
|
|
|
192
|
+
mask = create_ignore_mask(original_target, self.ignore_index)
|
|
193
|
+
|
|
180
194
|
if target.shape != input.shape:
|
|
181
195
|
raise AssertionError(f"ground truth has different shape ({target.shape}) from input ({input.shape})")
|
|
182
196
|
|
|
197
|
+
input, target = mask_loss_inputs(input, target, self.ignore_index, mask=mask)
|
|
198
|
+
|
|
183
199
|
# reducing only spatial dimensions (not batch nor channels)
|
|
184
200
|
reduce_axis: list[int] = torch.arange(2, len(input.shape)).tolist()
|
|
185
201
|
if self.batch:
|