monai-weekly 1.7.dev2638__tar.gz → 1.7.dev2639__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.dev2638 → monai_weekly-1.7.dev2639}/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/__init__.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_version.py +3 -3
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/inferers/inferer.py +149 -36
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utils.py +2 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/__init__.py +1 -0
- monai_weekly-1.7.dev2639/monai/utils/compare_sources.py +107 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/safeeval.py +17 -2
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai_weekly.egg-info/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai_weekly.egg-info/SOURCES.txt +1 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/LICENSE +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/MANIFEST.in +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/README.md +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/gmm/gmm.cpp +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/gmm/gmm.h +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/loader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/auto_runner.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/bundle_gen.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/data_analyzer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/hpo_gen.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/datasets.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepedit/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepedit/interaction.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepedit/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepgrow/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepgrow/dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepgrow/interaction.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/deepgrow/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/metrics/coco.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/metrics/matching.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/networks/retinanet_detector.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/networks/retinanet_network.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/box_ops.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/anchor_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/box_coder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/box_selector.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/detector_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/predict_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/generation/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/generation/maisi/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/generation/maisi/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/mmars/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/mmars/mmars.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/mmars/model_desc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nnunet/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nnunet/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nnunet/nnunet_bundle.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nnunet/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nuclick/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/nuclick/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/stain/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/pathology/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/complex_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/fastmri_reader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/mri_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/tcia/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/tcia/label_desc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/tcia/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/vista3d/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/vista3d/inferer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/vista3d/sampler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/vista3d/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/auto3dseg/algo_gen.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/auto3dseg/analyzer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/auto3dseg/operations.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/auto3dseg/seg_summarizer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/config_item.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/config_parser.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/properties.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/reference_resolver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/scripts.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/bundle/workflows.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/config/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/config/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/config/check_env.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/config/deviceconfig.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/config/print_dependencies.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/config/type_definitions.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/box_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/csv_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/dataloader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/dataset_summary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/decathlon_datalist.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/fft_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/folder_layout.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/grid_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/image_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/image_reader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/image_writer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/iterable_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/itk_torch_bridge.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/meta_obj.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/meta_tensor.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/nvimgcodec_pydicom_plugin.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/samplers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/synthetic.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/test_time_augmentation.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/thread_buffer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/torchscript_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/ultrasound_confidence_map.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/video_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/wsi_datasets.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/data/wsi_reader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/engines/evaluator.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/engines/trainer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/engines/workflow.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/client/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/client/client_algo.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/client/monai_algo.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/utils/constants.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/utils/exchange_object.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/fl/utils/filters.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/average_precision.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/calibration.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/checkpoint_loader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/checkpoint_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/classification_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/clearml_handlers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/decollate_batch.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/earlystop_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/garbage_collector.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/ignite_metric.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/logfile_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/lr_schedule_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/mean_dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/mean_iou.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/metric_logger.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/metrics_reloaded_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/metrics_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/mlflow_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/nvtx_handlers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/parameter_scheduler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/postprocessing.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/probability_maps.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/regression_metrics.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/roc_auc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/smartcache_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/stats_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/tensorboard_handlers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/trt_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/handlers/validation_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/inferers/merger.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/inferers/splitter.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/inferers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/adversarial_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/aucm_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/barlow_twins.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/boundary_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/cldice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/contrastive.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/deform.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/ds_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/focal_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/giou_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/hausdorff_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/image_dissimilarity.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/mcc_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/multi_scale.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/nacl_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/perceptual.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/spatial_mask.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/spectral_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/ssim_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/sure_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/tversky.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/unified_focal_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/losses/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/absolute_volume_difference.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/active_learning_metrics.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/average_precision.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/calibration.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/cumulative_average.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/embedding_collapse.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/f_beta_score.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/fid.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/froc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/generalized_dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/loss_metric.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/meandice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/meaniou.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/metric.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/mmd.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/regression.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/rocauc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/surface_dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/metrics/wrapper.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/acti_norm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/activation.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/activation_checkpointing.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/aspp.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/attention_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/cablock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/convolutions.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/crf.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/crossattention.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/denseblock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/dints_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/downsample.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/dynunet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/encoder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/fcn.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/feature_pyramid_network.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/fft_utils_t.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/hyena.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/localnet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/mednext_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/mlp.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/patchembedding.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/pos_embed_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/regunet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/rel_pos_embedding.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/segresnet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/selfattention.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/spade_norm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/spatialattention.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/text_embedding.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/transformerblock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/unetr_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/upsample.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/blocks/warp.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/conjugate_gradient.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/convutils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/drop_path.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/factories.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/filtering.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/gmm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/simplelayers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/spatial_transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/vector_quantizer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/layers/weight_init.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/ahnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/attentionunet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/autoencoder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/basic_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/basic_unetplusplus.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/cell_sam_wrapper.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/classifier.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/controlnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/daf3d.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/densenet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/dints.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/dynunet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/efficientnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/flexible_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/fullyconnectednet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/generator.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/highresnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/hovernet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/hyena_nd_unetr.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/mednext.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/milmodel.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/navit.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/netadapter.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/patchgan_discriminator.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/quicknat.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/regressor.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/regunet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/resnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/restormer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/segresnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/segresnet_ds.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/senet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/spade_autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/spade_network.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/swin_unetr.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/torchvision_fc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/transchex.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/transformer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/unetr.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/varautoencoder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/vista3d.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/vit.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/vitautoenc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/vnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/voxelmorph.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/nets/vqvae.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/schedulers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/schedulers/ddim.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/schedulers/ddpm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/schedulers/pndm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/schedulers/rectified_flow.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/schedulers/scheduler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/trt_compiler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/networks/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/optimizers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/optimizers/lr_finder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/optimizers/lr_scheduler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/optimizers/novograd.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/optimizers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/py.typed +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/adaptors.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/compose.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/croppad/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/croppad/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/croppad/batch.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/croppad/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/croppad/functional.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/intensity/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/intensity/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/intensity/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/inverse.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/inverse_batch_transform.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/io/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/io/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/io/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/lazy/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/lazy/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/lazy/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/lazy/functional.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/lazy/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/meta_utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/meta_utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/nvtx.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/regularization/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/regularization/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/regularization/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/signal/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/signal/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/signal/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/smooth_field/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/smooth_field/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/smooth_field/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/spatial/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/spatial/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/spatial/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/spatial/functional.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/traits.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/transform.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utility/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utils_create_transform_ims.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utils_morphological_ops.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/component_store.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/decorators.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/deprecate_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/dist.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/enums.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/jupyter_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/misc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/module.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/nvtx.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/ordering.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/profiling.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/state_cacher.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/tf32.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/utils/type_conversion.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/class_activation_maps.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/gradient_based.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/img2tensorboard.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/occlusion_sensitivity.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/visualize/visualizer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai_weekly.egg-info/dependency_links.txt +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai_weekly.egg-info/not-zip-safe +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai_weekly.egg-info/requires.txt +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai_weekly.egg-info/top_level.txt +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/pyproject.toml +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/setup.cfg +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/setup.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/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-27T02:18:34+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.7.
|
|
14
|
+
"full-revisionid": "5cfc144e2f41cc448085b59758dd2ab1d335f3d1",
|
|
15
|
+
"version": "1.7.dev2639"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
|
+
import inspect
|
|
14
15
|
import math
|
|
15
16
|
import warnings
|
|
16
17
|
from abc import ABC, abstractmethod
|
|
@@ -862,6 +863,96 @@ class DiffusionInferer(Inferer):
|
|
|
862
863
|
|
|
863
864
|
self.scheduler = scheduler
|
|
864
865
|
|
|
866
|
+
@staticmethod
|
|
867
|
+
def _scheduler_step_supports_kwarg(scheduler: Scheduler, kwarg: str) -> bool:
|
|
868
|
+
try:
|
|
869
|
+
return kwarg in inspect.signature(scheduler.step).parameters
|
|
870
|
+
except (TypeError, ValueError):
|
|
871
|
+
return False
|
|
872
|
+
|
|
873
|
+
@staticmethod
|
|
874
|
+
def _get_previous_sample_from_step_output(step_output: Any) -> torch.Tensor:
|
|
875
|
+
if isinstance(step_output, tuple):
|
|
876
|
+
return step_output[0]
|
|
877
|
+
if isinstance(step_output, Mapping):
|
|
878
|
+
return step_output["prev_sample"]
|
|
879
|
+
if hasattr(step_output, "prev_sample"):
|
|
880
|
+
return step_output.prev_sample
|
|
881
|
+
raise TypeError("Unsupported scheduler.step output. Expected a tuple or an object with `prev_sample`.")
|
|
882
|
+
|
|
883
|
+
@staticmethod
|
|
884
|
+
def _get_scheduler_name(scheduler: Scheduler) -> str:
|
|
885
|
+
if hasattr(scheduler, "_get_name"):
|
|
886
|
+
return scheduler._get_name()
|
|
887
|
+
return scheduler.__class__.__name__
|
|
888
|
+
|
|
889
|
+
@staticmethod
|
|
890
|
+
def _get_scheduler_config_value(scheduler: Scheduler, name: str, default: Any = None) -> Any:
|
|
891
|
+
config = getattr(scheduler, "config", None)
|
|
892
|
+
if isinstance(config, Mapping):
|
|
893
|
+
if name in config:
|
|
894
|
+
return config[name]
|
|
895
|
+
elif config is not None and hasattr(config, name):
|
|
896
|
+
return getattr(config, name)
|
|
897
|
+
|
|
898
|
+
if hasattr(scheduler, name):
|
|
899
|
+
return getattr(scheduler, name)
|
|
900
|
+
return default
|
|
901
|
+
|
|
902
|
+
@staticmethod
|
|
903
|
+
def _get_posterior_mean(
|
|
904
|
+
scheduler: Scheduler, timestep: int | torch.Tensor, x_0: torch.Tensor, x_t: torch.Tensor
|
|
905
|
+
) -> torch.Tensor:
|
|
906
|
+
alpha_t = scheduler.alphas[timestep]
|
|
907
|
+
alpha_prod_t = scheduler.alphas_cumprod[timestep]
|
|
908
|
+
alpha_prod_t_prev = scheduler.alphas_cumprod[timestep - 1] if timestep > 0 else scheduler.one
|
|
909
|
+
|
|
910
|
+
x_0_coefficient = alpha_prod_t_prev.sqrt() * scheduler.betas[timestep] / (1 - alpha_prod_t)
|
|
911
|
+
x_t_coefficient = alpha_t.sqrt() * (1 - alpha_prod_t_prev) / (1 - alpha_prod_t)
|
|
912
|
+
|
|
913
|
+
return x_0_coefficient * x_0 + x_t_coefficient * x_t
|
|
914
|
+
|
|
915
|
+
def _get_posterior_variance(
|
|
916
|
+
self, scheduler: Scheduler, timestep: int | torch.Tensor, predicted_variance: torch.Tensor | None = None
|
|
917
|
+
) -> torch.Tensor:
|
|
918
|
+
alpha_prod_t = scheduler.alphas_cumprod[timestep]
|
|
919
|
+
alpha_prod_t_prev = scheduler.alphas_cumprod[timestep - 1] if timestep > 0 else scheduler.one
|
|
920
|
+
variance = (1 - alpha_prod_t_prev) / (1 - alpha_prod_t) * scheduler.betas[timestep]
|
|
921
|
+
variance_type = self._get_scheduler_config_value(scheduler, "variance_type")
|
|
922
|
+
|
|
923
|
+
if variance_type == "fixed_small":
|
|
924
|
+
variance = torch.clamp(variance, min=1e-20)
|
|
925
|
+
elif variance_type == "fixed_large":
|
|
926
|
+
variance = scheduler.betas[timestep]
|
|
927
|
+
elif variance_type == "learned" and predicted_variance is not None:
|
|
928
|
+
return predicted_variance
|
|
929
|
+
elif variance_type == "learned_range" and predicted_variance is not None:
|
|
930
|
+
min_log = variance
|
|
931
|
+
max_log = scheduler.betas[timestep]
|
|
932
|
+
frac = (predicted_variance + 1) / 2
|
|
933
|
+
variance = frac * max_log + (1 - frac) * min_log
|
|
934
|
+
|
|
935
|
+
return variance
|
|
936
|
+
|
|
937
|
+
def _scheduler_step(
|
|
938
|
+
self,
|
|
939
|
+
scheduler: Scheduler,
|
|
940
|
+
model_output: torch.Tensor,
|
|
941
|
+
timestep: int | torch.Tensor,
|
|
942
|
+
sample: torch.Tensor,
|
|
943
|
+
next_timestep: int | torch.Tensor | None = None,
|
|
944
|
+
) -> torch.Tensor:
|
|
945
|
+
step_kwargs = {}
|
|
946
|
+
if self._scheduler_step_supports_kwarg(scheduler, "return_dict"):
|
|
947
|
+
step_kwargs["return_dict"] = False
|
|
948
|
+
|
|
949
|
+
if isinstance(scheduler, RFlowScheduler):
|
|
950
|
+
step_output = scheduler.step(model_output, timestep, sample, next_timestep, **step_kwargs) # type: ignore
|
|
951
|
+
else:
|
|
952
|
+
step_output = scheduler.step(model_output, timestep, sample, **step_kwargs) # type: ignore
|
|
953
|
+
|
|
954
|
+
return self._get_previous_sample_from_step_output(step_output)
|
|
955
|
+
|
|
865
956
|
def __call__( # type: ignore[override]
|
|
866
957
|
self,
|
|
867
958
|
inputs: torch.Tensor,
|
|
@@ -941,7 +1032,12 @@ class DiffusionInferer(Inferer):
|
|
|
941
1032
|
scheduler = self.scheduler
|
|
942
1033
|
image = input_noise
|
|
943
1034
|
|
|
944
|
-
all_next_timesteps = torch.cat(
|
|
1035
|
+
all_next_timesteps = torch.cat(
|
|
1036
|
+
(
|
|
1037
|
+
scheduler.timesteps[1:],
|
|
1038
|
+
torch.tensor([0], dtype=scheduler.timesteps.dtype, device=scheduler.timesteps.device),
|
|
1039
|
+
)
|
|
1040
|
+
)
|
|
945
1041
|
if verbose and has_tqdm:
|
|
946
1042
|
progress_bar = tqdm(
|
|
947
1043
|
zip(scheduler.timesteps, all_next_timesteps),
|
|
@@ -985,10 +1081,9 @@ class DiffusionInferer(Inferer):
|
|
|
985
1081
|
model_output = model_output_uncond + cfg * (model_output_cond - model_output_uncond)
|
|
986
1082
|
|
|
987
1083
|
# 2. compute previous image: x_t -> x_t-1
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
image, _ = scheduler.step(model_output, t, image, next_t) # type: ignore
|
|
1084
|
+
image = self._scheduler_step(
|
|
1085
|
+
scheduler=scheduler, model_output=model_output, timestep=t, sample=image, next_timestep=next_t
|
|
1086
|
+
)
|
|
992
1087
|
if save_intermediates and t % intermediate_steps == 0:
|
|
993
1088
|
intermediates.append(image)
|
|
994
1089
|
|
|
@@ -1029,10 +1124,10 @@ class DiffusionInferer(Inferer):
|
|
|
1029
1124
|
|
|
1030
1125
|
if not scheduler:
|
|
1031
1126
|
scheduler = self.scheduler
|
|
1032
|
-
|
|
1127
|
+
scheduler_name = self._get_scheduler_name(scheduler)
|
|
1128
|
+
if scheduler_name != "DDPMScheduler":
|
|
1033
1129
|
raise NotImplementedError(
|
|
1034
|
-
f"Likelihood computation is only compatible with DDPMScheduler,"
|
|
1035
|
-
f" you are using {scheduler._get_name()}"
|
|
1130
|
+
f"Likelihood computation is only compatible with DDPMScheduler, you are using {scheduler_name},"
|
|
1036
1131
|
)
|
|
1037
1132
|
if mode not in ["crossattn", "concat"]:
|
|
1038
1133
|
raise NotImplementedError(f"{mode} condition is not supported")
|
|
@@ -1047,7 +1142,7 @@ class DiffusionInferer(Inferer):
|
|
|
1047
1142
|
total_kl = torch.zeros(inputs.shape[0]).to(inputs.device)
|
|
1048
1143
|
for t in progress_bar:
|
|
1049
1144
|
timesteps = torch.full(inputs.shape[:1], t, device=inputs.device).long()
|
|
1050
|
-
noisy_image =
|
|
1145
|
+
noisy_image = scheduler.add_noise(original_samples=inputs, noise=noise, timesteps=timesteps)
|
|
1051
1146
|
diffusion_model = (
|
|
1052
1147
|
partial(diffusion_model, seg=seg)
|
|
1053
1148
|
if isinstance(diffusion_model, SPADEDiffusionModelUNet)
|
|
@@ -1060,7 +1155,8 @@ class DiffusionInferer(Inferer):
|
|
|
1060
1155
|
model_output = diffusion_model(x=noisy_image, timesteps=timesteps, context=conditioning)
|
|
1061
1156
|
|
|
1062
1157
|
# get the model's predicted mean, and variance if it is predicted
|
|
1063
|
-
|
|
1158
|
+
variance_type = self._get_scheduler_config_value(scheduler, "variance_type")
|
|
1159
|
+
if model_output.shape[1] == inputs.shape[1] * 2 and variance_type in ["learned", "learned_range"]:
|
|
1064
1160
|
model_output, predicted_variance = torch.split(model_output, inputs.shape[1], dim=1)
|
|
1065
1161
|
else:
|
|
1066
1162
|
predicted_variance = None
|
|
@@ -1073,15 +1169,17 @@ class DiffusionInferer(Inferer):
|
|
|
1073
1169
|
|
|
1074
1170
|
# 2. compute predicted original sample from predicted noise also called
|
|
1075
1171
|
# "predicted x_0" of formula (15) from https://arxiv.org/pdf/2006.11239.pdf
|
|
1076
|
-
|
|
1172
|
+
prediction_type = self._get_scheduler_config_value(scheduler, "prediction_type")
|
|
1173
|
+
if prediction_type == "epsilon":
|
|
1077
1174
|
pred_original_sample = (noisy_image - beta_prod_t ** (0.5) * model_output) / alpha_prod_t ** (0.5)
|
|
1078
|
-
elif
|
|
1175
|
+
elif prediction_type == "sample":
|
|
1079
1176
|
pred_original_sample = model_output
|
|
1080
|
-
elif
|
|
1177
|
+
elif prediction_type == "v_prediction":
|
|
1081
1178
|
pred_original_sample = (alpha_prod_t**0.5) * noisy_image - (beta_prod_t**0.5) * model_output
|
|
1082
1179
|
# 3. Clip "predicted x_0"
|
|
1083
|
-
if scheduler
|
|
1084
|
-
|
|
1180
|
+
if self._get_scheduler_config_value(scheduler, "clip_sample"):
|
|
1181
|
+
clip_sample_range = self._get_scheduler_config_value(scheduler, "clip_sample_range", 1.0)
|
|
1182
|
+
pred_original_sample = torch.clamp(pred_original_sample, -clip_sample_range, clip_sample_range)
|
|
1085
1183
|
|
|
1086
1184
|
# 4. Compute coefficients for pred_original_sample x_0 and current sample x_t
|
|
1087
1185
|
# See formula (7) from https://arxiv.org/pdf/2006.11239.pdf
|
|
@@ -1093,11 +1191,15 @@ class DiffusionInferer(Inferer):
|
|
|
1093
1191
|
predicted_mean = pred_original_sample_coeff * pred_original_sample + current_sample_coeff * noisy_image
|
|
1094
1192
|
|
|
1095
1193
|
# get the posterior mean and variance
|
|
1096
|
-
posterior_mean =
|
|
1097
|
-
posterior_variance =
|
|
1194
|
+
posterior_mean = self._get_posterior_mean(scheduler=scheduler, timestep=t, x_0=inputs, x_t=noisy_image)
|
|
1195
|
+
posterior_variance = self._get_posterior_variance(
|
|
1196
|
+
scheduler=scheduler, timestep=t, predicted_variance=predicted_variance
|
|
1197
|
+
)
|
|
1098
1198
|
|
|
1099
1199
|
log_posterior_variance = torch.log(posterior_variance)
|
|
1100
|
-
log_predicted_variance =
|
|
1200
|
+
log_predicted_variance = (
|
|
1201
|
+
torch.log(predicted_variance) if predicted_variance is not None else log_posterior_variance
|
|
1202
|
+
)
|
|
1101
1203
|
|
|
1102
1204
|
if t == 0:
|
|
1103
1205
|
# compute -log p(x_0|x_1)
|
|
@@ -1510,7 +1612,12 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1510
1612
|
scheduler = self.scheduler
|
|
1511
1613
|
image = input_noise
|
|
1512
1614
|
|
|
1513
|
-
all_next_timesteps = torch.cat(
|
|
1615
|
+
all_next_timesteps = torch.cat(
|
|
1616
|
+
(
|
|
1617
|
+
scheduler.timesteps[1:],
|
|
1618
|
+
torch.tensor([0], dtype=scheduler.timesteps.dtype, device=scheduler.timesteps.device),
|
|
1619
|
+
)
|
|
1620
|
+
)
|
|
1514
1621
|
if verbose and has_tqdm:
|
|
1515
1622
|
progress_bar = tqdm(
|
|
1516
1623
|
zip(scheduler.timesteps, all_next_timesteps),
|
|
@@ -1584,10 +1691,9 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1584
1691
|
model_output = model_output_uncond + cfg * (model_output_cond - model_output_uncond)
|
|
1585
1692
|
|
|
1586
1693
|
# 3. compute previous image: x_t -> x_t-1
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
image, _ = scheduler.step(model_output, t, image, next_t) # type: ignore
|
|
1694
|
+
image = self._scheduler_step(
|
|
1695
|
+
scheduler=scheduler, model_output=model_output, timestep=t, sample=image, next_timestep=next_t
|
|
1696
|
+
)
|
|
1591
1697
|
|
|
1592
1698
|
if save_intermediates and t % intermediate_steps == 0:
|
|
1593
1699
|
intermediates.append(image)
|
|
@@ -1632,10 +1738,10 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1632
1738
|
|
|
1633
1739
|
if not scheduler:
|
|
1634
1740
|
scheduler = self.scheduler
|
|
1635
|
-
|
|
1741
|
+
scheduler_name = self._get_scheduler_name(scheduler)
|
|
1742
|
+
if scheduler_name != "DDPMScheduler":
|
|
1636
1743
|
raise NotImplementedError(
|
|
1637
|
-
f"Likelihood computation is only compatible with DDPMScheduler,"
|
|
1638
|
-
f" you are using {scheduler._get_name()}"
|
|
1744
|
+
f"Likelihood computation is only compatible with DDPMScheduler, you are using {scheduler_name}."
|
|
1639
1745
|
)
|
|
1640
1746
|
if mode not in ["crossattn", "concat"]:
|
|
1641
1747
|
raise NotImplementedError(f"{mode} condition is not supported")
|
|
@@ -1648,7 +1754,7 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1648
1754
|
total_kl = torch.zeros(inputs.shape[0]).to(inputs.device)
|
|
1649
1755
|
for t in progress_bar:
|
|
1650
1756
|
timesteps = torch.full(inputs.shape[:1], t, device=inputs.device).long()
|
|
1651
|
-
noisy_image =
|
|
1757
|
+
noisy_image = scheduler.add_noise(original_samples=inputs, noise=noise, timesteps=timesteps)
|
|
1652
1758
|
|
|
1653
1759
|
diffuse = diffusion_model
|
|
1654
1760
|
if isinstance(diffusion_model, SPADEDiffusionModelUNet):
|
|
@@ -1681,7 +1787,8 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1681
1787
|
mid_block_additional_residual=mid_block_res_sample,
|
|
1682
1788
|
)
|
|
1683
1789
|
# get the model's predicted mean, and variance if it is predicted
|
|
1684
|
-
|
|
1790
|
+
variance_type = self._get_scheduler_config_value(scheduler, "variance_type")
|
|
1791
|
+
if model_output.shape[1] == inputs.shape[1] * 2 and variance_type in ["learned", "learned_range"]:
|
|
1685
1792
|
model_output, predicted_variance = torch.split(model_output, inputs.shape[1], dim=1)
|
|
1686
1793
|
else:
|
|
1687
1794
|
predicted_variance = None
|
|
@@ -1694,15 +1801,17 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1694
1801
|
|
|
1695
1802
|
# 2. compute predicted original sample from predicted noise also called
|
|
1696
1803
|
# "predicted x_0" of formula (15) from https://arxiv.org/pdf/2006.11239.pdf
|
|
1697
|
-
|
|
1804
|
+
prediction_type = self._get_scheduler_config_value(scheduler, "prediction_type")
|
|
1805
|
+
if prediction_type == "epsilon":
|
|
1698
1806
|
pred_original_sample = (noisy_image - beta_prod_t ** (0.5) * model_output) / alpha_prod_t ** (0.5)
|
|
1699
|
-
elif
|
|
1807
|
+
elif prediction_type == "sample":
|
|
1700
1808
|
pred_original_sample = model_output
|
|
1701
|
-
elif
|
|
1809
|
+
elif prediction_type == "v_prediction":
|
|
1702
1810
|
pred_original_sample = (alpha_prod_t**0.5) * noisy_image - (beta_prod_t**0.5) * model_output
|
|
1703
1811
|
# 3. Clip "predicted x_0"
|
|
1704
|
-
if scheduler
|
|
1705
|
-
|
|
1812
|
+
if self._get_scheduler_config_value(scheduler, "clip_sample"):
|
|
1813
|
+
clip_sample_range = self._get_scheduler_config_value(scheduler, "clip_sample_range", 1.0)
|
|
1814
|
+
pred_original_sample = torch.clamp(pred_original_sample, -clip_sample_range, clip_sample_range)
|
|
1706
1815
|
|
|
1707
1816
|
# 4. Compute coefficients for pred_original_sample x_0 and current sample x_t
|
|
1708
1817
|
# See formula (7) from https://arxiv.org/pdf/2006.11239.pdf
|
|
@@ -1714,11 +1823,15 @@ class ControlNetDiffusionInferer(DiffusionInferer):
|
|
|
1714
1823
|
predicted_mean = pred_original_sample_coeff * pred_original_sample + current_sample_coeff * noisy_image
|
|
1715
1824
|
|
|
1716
1825
|
# get the posterior mean and variance
|
|
1717
|
-
posterior_mean =
|
|
1718
|
-
posterior_variance =
|
|
1826
|
+
posterior_mean = self._get_posterior_mean(scheduler=scheduler, timestep=t, x_0=inputs, x_t=noisy_image)
|
|
1827
|
+
posterior_variance = self._get_posterior_variance(
|
|
1828
|
+
scheduler=scheduler, timestep=t, predicted_variance=predicted_variance
|
|
1829
|
+
)
|
|
1719
1830
|
|
|
1720
1831
|
log_posterior_variance = torch.log(posterior_variance)
|
|
1721
|
-
log_predicted_variance =
|
|
1832
|
+
log_predicted_variance = (
|
|
1833
|
+
torch.log(predicted_variance) if predicted_variance is not None else log_posterior_variance
|
|
1834
|
+
)
|
|
1722
1835
|
|
|
1723
1836
|
if t == 0:
|
|
1724
1837
|
# compute -log p(x_0|x_1)
|
|
@@ -2281,7 +2281,8 @@ def squarepulse(sig, duty: float = 0.5):
|
|
|
2281
2281
|
w = convert_to_tensor(w)
|
|
2282
2282
|
t = convert_to_tensor(t)
|
|
2283
2283
|
|
|
2284
|
-
|
|
2284
|
+
out_dtype = t.dtype if t.is_floating_point() else torch.get_default_dtype()
|
|
2285
|
+
y = torch.zeros_like(t, dtype=out_dtype)
|
|
2285
2286
|
|
|
2286
2287
|
mask1 = (w > 1) | (w < 0)
|
|
2287
2288
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
|
+
from .compare_sources import SKIP_EXTS, files_considered_equal, sources_equal
|
|
14
15
|
from .component_store import ComponentStore
|
|
15
16
|
from .decorators import MethodReplacer, RestartGenerator
|
|
16
17
|
from .deprecate_utils import DeprecatedError, deprecated, deprecated_arg, deprecated_arg_default
|
|
@@ -0,0 +1,107 @@
|
|
|
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
|
+
"""
|
|
13
|
+
This module is used in Github Actions to determine if a Python source file has been modified in a PR.
|
|
14
|
+
"""
|
|
15
|
+
|
|
16
|
+
from __future__ import annotations
|
|
17
|
+
|
|
18
|
+
import ast
|
|
19
|
+
import os
|
|
20
|
+
import sys
|
|
21
|
+
from os.path import splitext
|
|
22
|
+
|
|
23
|
+
PathLike = str | os.PathLike # needs to be duplicated here to avoid importing anything from MONAI inside actions
|
|
24
|
+
|
|
25
|
+
SKIP_EXTS = (".md", ".rst", ".cff")
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
class RemoveDocstrings(ast.NodeTransformer):
|
|
29
|
+
"""
|
|
30
|
+
Strips docstrings from source files so that they aren't used for comparing ASTs.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def visit(self, node: ast.AST) -> ast.AST:
|
|
34
|
+
try:
|
|
35
|
+
# remove docstrings from the files
|
|
36
|
+
if ast.get_docstring(node) is not None:
|
|
37
|
+
del node.body[0]
|
|
38
|
+
except TypeError:
|
|
39
|
+
pass
|
|
40
|
+
return super().visit(node)
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def sources_equal(src1: str, src2: str) -> bool:
|
|
44
|
+
"""
|
|
45
|
+
Compare Python source texts at the AST level without docstrings or comments. If two texts are equal except for
|
|
46
|
+
changes to docstrings or comments, they will be considered equal by this function. Any other changes will appear
|
|
47
|
+
as differences in the AST representations, which are compared inefficiently by comparing tree string dumps.
|
|
48
|
+
|
|
49
|
+
Args:
|
|
50
|
+
src1: first Python source text.
|
|
51
|
+
src2: second Python source text.
|
|
52
|
+
|
|
53
|
+
Returns:
|
|
54
|
+
True if the texts `src1` and `src2` are equal with docstrings and comments removed, False otherwise.
|
|
55
|
+
"""
|
|
56
|
+
remdoc = RemoveDocstrings()
|
|
57
|
+
|
|
58
|
+
m1 = ast.parse(src1)
|
|
59
|
+
m2 = ast.parse(src2)
|
|
60
|
+
remdoc.visit(m1)
|
|
61
|
+
remdoc.visit(m2)
|
|
62
|
+
|
|
63
|
+
list1 = list(ast.walk(m1))
|
|
64
|
+
list2 = list(ast.walk(m2))
|
|
65
|
+
|
|
66
|
+
if len(list1) != len(list2) or any(type(n1) is not type(n2) for n1, n2 in zip(list1, list2)):
|
|
67
|
+
return False
|
|
68
|
+
|
|
69
|
+
return ast.dump(m1) == ast.dump(m2)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
def files_considered_equal(file1: PathLike, file2: PathLike) -> bool:
|
|
73
|
+
"""
|
|
74
|
+
Returns True if the files are considered equal, that is they are doc files or differ only in docstrings or comments.
|
|
75
|
+
|
|
76
|
+
Args:
|
|
77
|
+
file1: first file path to compare.
|
|
78
|
+
file2: second file path to compare.
|
|
79
|
+
|
|
80
|
+
Returns:
|
|
81
|
+
True if the files have the same extension, and either this extension is in `SKIP_EXTS`, or is ".py" with the
|
|
82
|
+
files having the same content according to `sources_equal`. If the extensions differ, or are both ".py" but the
|
|
83
|
+
file contents differ, returns False.
|
|
84
|
+
"""
|
|
85
|
+
_, ext1 = splitext(str(file1))
|
|
86
|
+
_, ext2 = splitext(str(file2))
|
|
87
|
+
|
|
88
|
+
# if extensions aren't equal then definitely different (which shouldn't happen anyway)
|
|
89
|
+
if ext1 != ext2:
|
|
90
|
+
return False
|
|
91
|
+
|
|
92
|
+
# if extensions are an ignored type, ie. docs, don't compare at all
|
|
93
|
+
if ext1 in SKIP_EXTS:
|
|
94
|
+
return True
|
|
95
|
+
|
|
96
|
+
# if not Python source files, they aren't doc files at this point so assume different
|
|
97
|
+
if ext1 != ".py":
|
|
98
|
+
return False
|
|
99
|
+
|
|
100
|
+
# compare the actual parsed contents of the source files
|
|
101
|
+
with open(file1) as o1, open(file2) as o2:
|
|
102
|
+
return sources_equal(o1.read(), o2.read())
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
if __name__ == "__main__":
|
|
106
|
+
_, file1, file2 = sys.argv
|
|
107
|
+
sys.exit(0 if files_considered_equal(file1, file2) else 1)
|
|
@@ -71,6 +71,13 @@ def safe_eval(
|
|
|
71
71
|
expressions with constants and names can be evaluated, so excludes attribute access, indexing, and calls. Code
|
|
72
72
|
injection is infeasible through such expressions, so this is a safe and secure way of evaluating simple expressions.
|
|
73
73
|
|
|
74
|
+
Names are resolved only against `globals_vars` and `locals_vars`, so an expression naming anything the caller did
|
|
75
|
+
not supply raises a `NameError` rather than silently resolving to a builtin or to a module imported here. Two
|
|
76
|
+
names resolve without being supplied: `__builtins__`, which is bound to an empty mapping so that nothing can be
|
|
77
|
+
reached through it, and `np`, which `rewrite_np` adds because the rewritten constants need it. This matters when
|
|
78
|
+
`allowed_types` is widened beyond `SAFE_TYPES`, since node types such as `ast.Attribute` and `ast.Call` would
|
|
79
|
+
otherwise make the builtins and this module's imports reachable.
|
|
80
|
+
|
|
74
81
|
If `rewrite_np` is True, int and float constants in the given expression will be wrapped with Numpy types as given
|
|
75
82
|
by `int_type_str` and `float_type_str`. These are expected to be constructor names prefixed with `np.` as Numpy
|
|
76
83
|
will be present in the expression global variables under that name. The values can be changed to other types if
|
|
@@ -79,7 +86,8 @@ def safe_eval(
|
|
|
79
86
|
|
|
80
87
|
Args:
|
|
81
88
|
expr: expression to evaluate, this will be stripped before parsing to avoid indentation complaints
|
|
82
|
-
globals_vars: global variable mapping, this will be treated as read-only for this function, unlike `eval
|
|
89
|
+
globals_vars: global variable mapping, this will be treated as read-only for this function, unlike `eval`.
|
|
90
|
+
An empty `__builtins__` is added to the copy unless the mapping provides its own value for that key
|
|
83
91
|
locals_vars: local variable mapping
|
|
84
92
|
allowed_types: sequence of allowed AST types which can be found in `expr` when parsed
|
|
85
93
|
rewrite_np: if True, wrap int or float literals in Numpy types
|
|
@@ -88,6 +96,8 @@ def safe_eval(
|
|
|
88
96
|
|
|
89
97
|
Raises:
|
|
90
98
|
ValueError: raised when any node in the AST parsed from `expr` has a type not in `allowed_types`
|
|
99
|
+
NameError: raised when `expr` names a variable not present in `globals_vars` or `locals_vars`, other than
|
|
100
|
+
`__builtins__` and, when `rewrite_np` is True, `np`
|
|
91
101
|
|
|
92
102
|
Returns:
|
|
93
103
|
The evaluated expression value, using `eval` with `globals_vars` and `locals_vars`
|
|
@@ -105,4 +115,9 @@ def safe_eval(
|
|
|
105
115
|
ast.fix_missing_locations(parsed)
|
|
106
116
|
locals_vars = {**(locals_vars or {}), "np": np}
|
|
107
117
|
|
|
108
|
-
|
|
118
|
+
# an explicit globals mapping stops `eval` from falling back to this module's globals, and an empty
|
|
119
|
+
# `__builtins__` keeps the builtins out of scope, so only names the caller supplied can be resolved
|
|
120
|
+
eval_globals: dict[str, Any] = dict(globals_vars) if globals_vars else {}
|
|
121
|
+
eval_globals.setdefault("__builtins__", {})
|
|
122
|
+
|
|
123
|
+
return eval(compile(parsed, "<safe_eval>", "eval"), eval_globals, locals_vars)
|
|
@@ -426,6 +426,7 @@ monai/transforms/utility/__init__.py
|
|
|
426
426
|
monai/transforms/utility/array.py
|
|
427
427
|
monai/transforms/utility/dictionary.py
|
|
428
428
|
monai/utils/__init__.py
|
|
429
|
+
monai/utils/compare_sources.py
|
|
429
430
|
monai/utils/component_store.py
|
|
430
431
|
monai/utils/decorators.py
|
|
431
432
|
monai/utils/deprecate_utils.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/_extensions/gmm/gmm_cuda_linalg.cuh
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/auto3dseg/ensemble_builder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/metrics/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/metrics/matching.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/networks/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/array.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/box_ops.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/transforms/dictionary.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/ATSS_matcher.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/__init__.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/anchor_utils.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/box_coder.py
RENAMED
|
File without changes
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2639}/monai/apps/detection/utils/box_selector.py
RENAMED
|
File without changes
|