monai-weekly 1.7.dev2638__tar.gz → 1.7.dev2640__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.dev2640}/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/__init__.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_version.py +3 -3
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/bundle_gen.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/matching.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/dictionary.py +7 -5
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/post/dictionary.py +2 -2
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/dataset_summary.py +16 -3
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/image_writer.py +3 -2
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/synthetic.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/inferer.py +152 -39
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/barlow_twins.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/utils.py +14 -15
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/pos_embed_utils.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/patchgan_discriminator.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/ddpm.py +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/dictionary.py +9 -14
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/functional.py +11 -2
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils.py +2 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/__init__.py +1 -0
- monai_weekly-1.7.dev2640/monai/utils/compare_sources.py +107 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/safeeval.py +17 -2
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/PKG-INFO +1 -1
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/SOURCES.txt +1 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/LICENSE +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/MANIFEST.in +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/README.md +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm.cpp +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm.h +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/loader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/auto_runner.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/data_analyzer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/hpo_gen.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/datasets.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepedit/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepedit/interaction.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepedit/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/interaction.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/coco.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/networks/retinanet_detector.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/networks/retinanet_network.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/box_ops.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/anchor_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/box_coder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/box_selector.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/detector_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/predict_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/mmars/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/mmars/mmars.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/mmars/model_desc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/nnunet_bundle.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nuclick/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nuclick/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/inferers/inferer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/stain/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/complex_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/fastmri_reader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/mri_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/transforms/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/tcia/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/tcia/label_desc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/tcia/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/inferer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/sampler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/algo_gen.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/analyzer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/operations.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/seg_summarizer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/config_item.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/config_parser.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/properties.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/reference_resolver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/scripts.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/workflows.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/__main__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/check_env.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/deviceconfig.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/print_dependencies.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/type_definitions.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/box_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/csv_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/dataloader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/decathlon_datalist.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/fft_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/folder_layout.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/grid_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/image_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/image_reader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/iterable_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/itk_torch_bridge.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/meta_obj.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/meta_tensor.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/nvimgcodec_pydicom_plugin.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/samplers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/test_time_augmentation.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/thread_buffer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/torchscript_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/ultrasound_confidence_map.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/video_dataset.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/wsi_datasets.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/wsi_reader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/evaluator.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/trainer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/workflow.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/client/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/client/client_algo.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/client/monai_algo.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/constants.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/exchange_object.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/filters.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/average_precision.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/calibration.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/checkpoint_loader.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/checkpoint_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/classification_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/clearml_handlers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/decollate_batch.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/earlystop_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/garbage_collector.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/ignite_metric.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/logfile_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/lr_schedule_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/mean_dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/mean_iou.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/metric_logger.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/metrics_reloaded_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/metrics_saver.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/mlflow_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/nvtx_handlers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/parameter_scheduler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/postprocessing.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/probability_maps.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/regression_metrics.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/roc_auc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/smartcache_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/stats_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/tensorboard_handlers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/trt_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/validation_handler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/merger.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/splitter.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/adversarial_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/aucm_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/boundary_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/cldice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/contrastive.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/deform.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/ds_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/focal_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/giou_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/hausdorff_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/image_dissimilarity.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/mcc_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/multi_scale.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/nacl_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/perceptual.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/spatial_mask.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/spectral_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/ssim_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/sure_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/tversky.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/unified_focal_loss.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/absolute_volume_difference.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/active_learning_metrics.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/average_precision.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/calibration.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/confusion_matrix.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/cumulative_average.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/embedding_collapse.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/f_beta_score.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/fid.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/froc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/generalized_dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/hausdorff_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/loss_metric.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/meandice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/meaniou.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/metric.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/mmd.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/panoptic_quality.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/regression.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/rocauc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/surface_dice.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/surface_distance.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/wrapper.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/acti_norm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/activation.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/activation_checkpointing.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/aspp.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/attention_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/cablock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/convolutions.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/crf.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/crossattention.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/denseblock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/dints_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/downsample.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/dynunet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/encoder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/fcn.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/feature_pyramid_network.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/fft_utils_t.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/hyena.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/localnet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/mednext_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/mlp.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/patchembedding.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/regunet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/rel_pos_embedding.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/segresnet_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/selfattention.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/spade_norm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/spatialattention.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/text_embedding.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/transformerblock.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/unetr_block.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/upsample.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/warp.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/conjugate_gradient.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/convutils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/drop_path.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/factories.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/filtering.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/gmm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/simplelayers.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/spatial_transforms.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/vector_quantizer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/weight_init.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/ahnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/attentionunet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/autoencoder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/basic_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/basic_unetplusplus.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/cell_sam_wrapper.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/classifier.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/controlnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/daf3d.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/densenet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/dints.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/dynunet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/efficientnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/flexible_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/fullyconnectednet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/generator.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/highresnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/hovernet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/hyena_nd_unetr.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/mednext.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/milmodel.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/navit.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/netadapter.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/quicknat.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/regressor.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/regunet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/resnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/restormer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/segresnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/segresnet_ds.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/senet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/spade_autoencoderkl.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/spade_network.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/swin_unetr.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/torchvision_fc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/transchex.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/transformer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/unet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/unetr.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/varautoencoder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vista3d.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vit.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vitautoenc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vnet.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/voxelmorph.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vqvae.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/ddim.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/pndm.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/rectified_flow.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/scheduler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/trt_compiler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/lr_finder.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/lr_scheduler.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/novograd.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/py.typed +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/adaptors.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/compose.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/batch.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/functional.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/intensity/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/intensity/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/intensity/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/inverse.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/inverse_batch_transform.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/io/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/io/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/io/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/functional.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/meta_utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/meta_utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/nvtx.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/post/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/post/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/post/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/regularization/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/regularization/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/regularization/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/signal/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/signal/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/signal/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/smooth_field/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/smooth_field/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/smooth_field/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/traits.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/transform.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utility/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utility/array.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utility/dictionary.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils_create_transform_ims.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils_morphological_ops.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/component_store.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/decorators.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/deprecate_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/dist.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/enums.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/jupyter_utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/misc.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/module.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/nvtx.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/ordering.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/profiling.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/state_cacher.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/tf32.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/type_conversion.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/__init__.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/class_activation_maps.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/gradient_based.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/img2tensorboard.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/occlusion_sensitivity.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/utils.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/visualizer.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/dependency_links.txt +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/not-zip-safe +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/requires.txt +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/top_level.txt +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/pyproject.toml +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/setup.cfg +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/setup.py +0 -0
- {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/versioneer.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2026-
|
|
11
|
+
"date": "2026-10-04T02:49:09+0000",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "1.7.
|
|
14
|
+
"full-revisionid": "e06f55fca00aba1d14a62c329e1f16d77b871297",
|
|
15
|
+
"version": "1.7.dev2640"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -491,7 +491,7 @@ class BundleGen(AlgoGen):
|
|
|
491
491
|
mlflow_tracking_uri: a tracking URI for MLflow server which could be local directory or address of
|
|
492
492
|
the remote tracking Server; MLflow runs will be recorded locally in algorithms' model folder if
|
|
493
493
|
the value is None.
|
|
494
|
-
|
|
494
|
+
mlflow_experiment_name: a string to specify the experiment name for MLflow server.
|
|
495
495
|
.. code-block:: bash
|
|
496
496
|
|
|
497
497
|
python -m monai.apps.auto3dseg BundleGen generate --data_stats_filename="../algorithms/datastats.yaml"
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/matching.py
RENAMED
|
@@ -193,7 +193,7 @@ def _matching_no_gt(
|
|
|
193
193
|
|
|
194
194
|
Args:
|
|
195
195
|
iou_thresholds: defined which IoU thresholds should be evaluated
|
|
196
|
-
|
|
196
|
+
pred_scores: predicted scores
|
|
197
197
|
max_detections: maximum number of allowed detections per image.
|
|
198
198
|
This functions uses this parameter to stay consistent with
|
|
199
199
|
the actual matching function which needs this limit.
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/dictionary.py
RENAMED
|
@@ -37,7 +37,6 @@ from monai.apps.detection.transforms.array import (
|
|
|
37
37
|
StandardizeEmptyBox,
|
|
38
38
|
ZoomBox,
|
|
39
39
|
)
|
|
40
|
-
from monai.apps.detection.transforms.box_ops import convert_box_to_mask
|
|
41
40
|
from monai.config import KeysCollection, SequenceStr
|
|
42
41
|
from monai.config.type_definitions import DtypeLike, NdarrayOrTensor
|
|
43
42
|
from monai.data.box_utils import COMPUTE_DTYPE, BoxMode, clip_boxes_to_image
|
|
@@ -1154,10 +1153,13 @@ class RandCropBoxByPosNegLabeld(Randomizable, MapTransform):
|
|
|
1154
1153
|
# As along as the cropped patch contains a box, it is considered as a foreground patch.
|
|
1155
1154
|
# Positions within extended_boxes are crop centers for foreground patches
|
|
1156
1155
|
extended_boxes_np = self.generate_fg_center_boxes_np(boxes, image_size)
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
)
|
|
1160
|
-
|
|
1156
|
+
spatial_dims = len(image_size)
|
|
1157
|
+
mask_img = np.zeros((1,) + tuple(image_size), dtype=np.int16)
|
|
1158
|
+
for b in range(extended_boxes_np.shape[0]):
|
|
1159
|
+
slicing = (0,) + tuple(
|
|
1160
|
+
slice(extended_boxes_np[b, d], extended_boxes_np[b, d + spatial_dims]) for d in range(spatial_dims)
|
|
1161
|
+
)
|
|
1162
|
+
mask_img[slicing] = 1
|
|
1161
1163
|
fg_indices_, bg_indices_ = map_binary_to_indices(mask_img, thresh_image, self.image_threshold)
|
|
1162
1164
|
else:
|
|
1163
1165
|
fg_indices_ = fg_indices
|
|
@@ -536,7 +536,7 @@ class HoVerNetInstanceMapPostProcessingd(Transform):
|
|
|
536
536
|
|
|
537
537
|
for k in [self.instance_info_key, self.instance_map_key]:
|
|
538
538
|
if k in d:
|
|
539
|
-
raise ValueError("The output key ['{k}'] already exists in the input dictionary!")
|
|
539
|
+
raise ValueError(f"The output key ['{k}'] already exists in the input dictionary!")
|
|
540
540
|
|
|
541
541
|
d[self.instance_info_key], d[self.instance_map_key] = self.instance_map_post_process(
|
|
542
542
|
d[self.nuclear_prediction_key], d[self.hover_map_key]
|
|
@@ -590,7 +590,7 @@ class HoVerNetNuclearTypePostProcessingd(Transform):
|
|
|
590
590
|
)
|
|
591
591
|
if self.return_type_map:
|
|
592
592
|
if self.type_map_key in d:
|
|
593
|
-
raise ValueError("The output key ['{self.type_map_key}'] already exists in the input dictionary!")
|
|
593
|
+
raise ValueError(f"The output key ['{self.type_map_key}'] already exists in the input dictionary!")
|
|
594
594
|
d[self.type_map_key] = type_map
|
|
595
595
|
|
|
596
596
|
return d
|
|
@@ -159,6 +159,8 @@ class DatasetSummary:
|
|
|
159
159
|
label, *_ = convert_data_type(data=label, output_type=torch.Tensor)
|
|
160
160
|
|
|
161
161
|
image_foreground = image[torch.where(label > foreground_threshold)]
|
|
162
|
+
if image_foreground.numel() == 0:
|
|
163
|
+
continue
|
|
162
164
|
|
|
163
165
|
voxel_max.append(image_foreground.max().item())
|
|
164
166
|
voxel_min.append(image_foreground.min().item())
|
|
@@ -166,6 +168,11 @@ class DatasetSummary:
|
|
|
166
168
|
voxel_sum += image_foreground.sum()
|
|
167
169
|
voxel_square_sum += torch.square(image_foreground).sum()
|
|
168
170
|
|
|
171
|
+
if voxel_ct == 0:
|
|
172
|
+
raise ValueError(
|
|
173
|
+
f"No foreground voxels found in any sample with {foreground_threshold=}; "
|
|
174
|
+
"set foreground_threshold=-1 to compute statistics over whole images."
|
|
175
|
+
)
|
|
169
176
|
self.data_max, self.data_min = max(voxel_max), min(voxel_min)
|
|
170
177
|
self.data_mean = (voxel_sum / voxel_ct).item()
|
|
171
178
|
self.data_std = (torch.sqrt(voxel_square_sum / voxel_ct - self.data_mean**2)).item()
|
|
@@ -204,11 +211,17 @@ class DatasetSummary:
|
|
|
204
211
|
label, *_ = convert_data_type(data=label, output_type=torch.Tensor)
|
|
205
212
|
|
|
206
213
|
intensities = image[torch.where(label > foreground_threshold)].tolist()
|
|
207
|
-
if
|
|
208
|
-
|
|
209
|
-
|
|
214
|
+
if intensities:
|
|
215
|
+
if sampling_flag:
|
|
216
|
+
intensities = intensities[::interval]
|
|
217
|
+
all_intensities.append(intensities)
|
|
210
218
|
|
|
211
219
|
all_intensities = list(chain(*all_intensities))
|
|
220
|
+
if not all_intensities:
|
|
221
|
+
raise ValueError(
|
|
222
|
+
f"No foreground voxels found in any sample with {foreground_threshold=}; "
|
|
223
|
+
"set foreground_threshold=-1 to compute statistics over whole images."
|
|
224
|
+
)
|
|
212
225
|
self.data_min_percentile, self.data_max_percentile = np.percentile(
|
|
213
226
|
all_intensities, [min_percentile, max_percentile]
|
|
214
227
|
)
|
|
@@ -266,12 +266,13 @@ class ImageWriter:
|
|
|
266
266
|
The output data type of this method is always ``np.float32``.
|
|
267
267
|
"""
|
|
268
268
|
orig_type = type(data_array)
|
|
269
|
-
|
|
269
|
+
# Add the channel dimension before setting the affine so spatial_ndim is inferred correctly.
|
|
270
|
+
data_array = convert_to_tensor(data_array, track_meta=True)[None]
|
|
270
271
|
if affine is not None:
|
|
271
272
|
data_array.affine = convert_to_tensor(affine, track_meta=False) # type: ignore
|
|
272
273
|
resampler = SpatialResample(mode=mode, padding_mode=padding_mode, align_corners=align_corners, dtype=dtype)
|
|
273
274
|
output_array = resampler(
|
|
274
|
-
data_array
|
|
275
|
+
data_array, dst_affine=target_affine, spatial_size=output_spatial_shape # type: ignore
|
|
275
276
|
)
|
|
276
277
|
# convert back at the end
|
|
277
278
|
if isinstance(output_array, MetaTensor):
|
|
@@ -133,7 +133,7 @@ def create_test_image_3d(
|
|
|
133
133
|
if rad_max <= rad_min:
|
|
134
134
|
raise ValueError(f"`rad_min` {rad_min} should be less than `rad_max` {rad_max}.")
|
|
135
135
|
if rad_min < 1:
|
|
136
|
-
raise ValueError("
|
|
136
|
+
raise ValueError(f"`rad_min` {rad_min} should be no less than 1.")
|
|
137
137
|
min_size = min(height, width, depth)
|
|
138
138
|
if min_size <= 2 * rad_max:
|
|
139
139
|
raise ValueError(f"the minimal size {min_size} of the image should be larger than `2 * rad_max` 2x{rad_max}.")
|
|
@@ -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)
|
|
@@ -1149,7 +1251,7 @@ class DiffusionInferer(Inferer):
|
|
|
1149
1251
|
given image. Code adapted from https://github.com/openai/improved-diffusion.
|
|
1150
1252
|
|
|
1151
1253
|
Args:
|
|
1152
|
-
|
|
1254
|
+
inputs: the target images. It is assumed that this was uint8 values,
|
|
1153
1255
|
rescaled to the range [-1, 1].
|
|
1154
1256
|
means: the Gaussian mean Tensor.
|
|
1155
1257
|
log_scales: the Gaussian log stddev Tensor.
|
|
@@ -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)
|
|
@@ -1874,8 +1987,8 @@ class ControlNetLatentDiffusionInferer(ControlNetDiffusionInferer):
|
|
|
1874
1987
|
and autoencoder_model.decoder.label_nc != diffusion_model.label_nc
|
|
1875
1988
|
):
|
|
1876
1989
|
raise ValueError(
|
|
1877
|
-
"If both autoencoder_model and diffusion_model implement SPADE, the number of semantic"
|
|
1878
|
-
"labels for each must be compatible. Got {autoencoder_model.decoder.label_nc} and {diffusion_model.label_nc}"
|
|
1990
|
+
"If both autoencoder_model and diffusion_model implement SPADE, the number of semantic "
|
|
1991
|
+
f"labels for each must be compatible. Got {autoencoder_model.decoder.label_nc} and {diffusion_model.label_nc}"
|
|
1879
1992
|
)
|
|
1880
1993
|
|
|
1881
1994
|
if cn_cond.shape[2:] != input_noise.shape[2:]:
|
|
@@ -78,7 +78,7 @@ class BarlowTwinsLoss(_Loss):
|
|
|
78
78
|
c = torch.mm(input_norm.t(), target_norm) / batch_size # input_norm.t() is FxB, target_norm is BxF so c is FxF
|
|
79
79
|
|
|
80
80
|
# loss
|
|
81
|
-
c_diff = (c - torch.eye(c.size(0), device=c.device)).pow_(2) # FxF
|
|
81
|
+
c_diff = (c - torch.eye(c.size(0), dtype=c.dtype, device=c.device)).pow_(2) # FxF
|
|
82
82
|
c_diff[~torch.eye(c.size(0), device=c.device).bool()] *= lambd_tensor
|
|
83
83
|
|
|
84
84
|
return c_diff.sum()
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
from __future__ import annotations
|
|
13
13
|
|
|
14
14
|
import warnings
|
|
15
|
-
from collections.abc import
|
|
15
|
+
from collections.abc import Sequence
|
|
16
16
|
from functools import cache, partial
|
|
17
17
|
from types import ModuleType
|
|
18
18
|
from typing import Any, overload
|
|
@@ -515,23 +515,22 @@ def remap_instance_id(pred: torch.Tensor, by_size: bool = False) -> torch.Tensor
|
|
|
515
515
|
value of the tensor should be an integer, and represents the prediction of its corresponding instance id.
|
|
516
516
|
by_size: if True, largest instance will be assigned a smaller id.
|
|
517
517
|
|
|
518
|
+
Returns:
|
|
519
|
+
tensor of the same shape as ``pred`` with ids remapped to ``1..K`` (``torch.int`` dtype),
|
|
520
|
+
or ``pred`` unchanged (original dtype) when it contains no foreground ids.
|
|
518
521
|
"""
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
if not pred_id:
|
|
522
|
+
uniq, inverse = torch.unique(pred, return_inverse=True)
|
|
523
|
+
order = torch.nonzero(uniq != 0).flatten()
|
|
524
|
+
if order.numel() == 0:
|
|
524
525
|
return pred
|
|
525
526
|
if by_size:
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
new_pred[pred == instance_id] = idx + 1
|
|
534
|
-
return new_pred
|
|
527
|
+
counts = torch.bincount(inverse.flatten(), minlength=uniq.numel())[order]
|
|
528
|
+
# stable sort keeps ascending-id order for equal-size instances, matching the
|
|
529
|
+
# original python `sorted` tie-breaking
|
|
530
|
+
order = order[torch.argsort(counts, descending=True, stable=True)]
|
|
531
|
+
lut = torch.zeros(uniq.numel(), dtype=torch.int, device=pred.device)
|
|
532
|
+
lut[order] = torch.arange(1, order.numel() + 1, dtype=torch.int, device=pred.device)
|
|
533
|
+
return lut[inverse]
|
|
535
534
|
|
|
536
535
|
|
|
537
536
|
def prepare_spacing(
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/pos_embed_utils.py
RENAMED
|
@@ -150,7 +150,7 @@ def build_sincos_position_embedding(
|
|
|
150
150
|
dim=1,
|
|
151
151
|
)[None, :, :]
|
|
152
152
|
else:
|
|
153
|
-
raise NotImplementedError("Spatial Dimension Size {spatial_dims} Not Implemented!")
|
|
153
|
+
raise NotImplementedError(f"Spatial Dimension Size {spatial_dims} Not Implemented!")
|
|
154
154
|
|
|
155
155
|
pos_embed = nn.Parameter(pos_emb)
|
|
156
156
|
pos_embed.requires_grad = False
|
{monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/patchgan_discriminator.py
RENAMED
|
@@ -126,7 +126,7 @@ class PatchDiscriminator(nn.Sequential):
|
|
|
126
126
|
out_channels: number of output channels
|
|
127
127
|
num_layers_d: number of Convolution layers (Conv + activation + normalisation + [dropout]) in the discriminator.
|
|
128
128
|
kernel_size: kernel size of the convolution layers
|
|
129
|
-
|
|
129
|
+
activation: activation type and arguments. Defaults to LeakyReLU.
|
|
130
130
|
norm: feature normalization type and arguments. Defaults to batch norm.
|
|
131
131
|
bias: whether to have a bias term in convolution blocks. Defaults to False.
|
|
132
132
|
padding: padding to be applied to the convolutional layers
|