monai-weekly 1.7.dev2628__tar.gz → 1.7.dev2630__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.
Files changed (452) hide show
  1. {monai_weekly-1.7.dev2628/monai_weekly.egg-info → monai_weekly-1.7.dev2630}/PKG-INFO +1 -1
  2. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/__init__.py +1 -1
  3. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_version.py +3 -3
  4. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/utils.py +1 -1
  5. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/scripts.py +0 -1
  6. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/__init__.py +1 -0
  7. monai_weekly-1.7.dev2630/monai/losses/boundary_loss.py +233 -0
  8. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/warp.py +3 -2
  9. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/hovernet.py +2 -2
  10. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utils.py +9 -9
  11. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630/monai_weekly.egg-info}/PKG-INFO +1 -1
  12. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai_weekly.egg-info/SOURCES.txt +1 -0
  13. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/LICENSE +0 -0
  14. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/MANIFEST.in +0 -0
  15. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/README.md +0 -0
  16. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/__init__.py +0 -0
  17. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/gmm/gmm.cpp +0 -0
  18. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/gmm/gmm.h +0 -0
  19. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  20. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  21. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  22. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/_extensions/loader.py +0 -0
  23. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/__init__.py +0 -0
  24. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/__init__.py +0 -0
  25. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/__main__.py +0 -0
  26. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/auto_runner.py +0 -0
  27. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/bundle_gen.py +0 -0
  28. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  29. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  30. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  31. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/transforms.py +0 -0
  32. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/auto3dseg/utils.py +0 -0
  33. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/datasets.py +0 -0
  34. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepedit/__init__.py +0 -0
  35. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepedit/interaction.py +0 -0
  36. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepedit/transforms.py +0 -0
  37. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepgrow/__init__.py +0 -0
  38. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepgrow/dataset.py +0 -0
  39. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepgrow/interaction.py +0 -0
  40. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/deepgrow/transforms.py +0 -0
  41. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/__init__.py +0 -0
  42. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/metrics/__init__.py +0 -0
  43. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/metrics/coco.py +0 -0
  44. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/metrics/matching.py +0 -0
  45. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/networks/__init__.py +0 -0
  46. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/networks/retinanet_detector.py +0 -0
  47. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/networks/retinanet_network.py +0 -0
  48. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/transforms/__init__.py +0 -0
  49. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/transforms/array.py +0 -0
  50. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/transforms/box_ops.py +0 -0
  51. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/transforms/dictionary.py +0 -0
  52. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  53. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/__init__.py +0 -0
  54. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/anchor_utils.py +0 -0
  55. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/box_coder.py +0 -0
  56. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/box_selector.py +0 -0
  57. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/detector_utils.py +0 -0
  58. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  59. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/detection/utils/predict_utils.py +0 -0
  60. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/generation/__init__.py +0 -0
  61. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/generation/maisi/__init__.py +0 -0
  62. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  63. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  64. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  65. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  66. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/mmars/__init__.py +0 -0
  67. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/mmars/mmars.py +0 -0
  68. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/mmars/model_desc.py +0 -0
  69. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nnunet/__init__.py +0 -0
  70. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nnunet/__main__.py +0 -0
  71. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  72. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  73. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nnunet/utils.py +0 -0
  74. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nuclick/__init__.py +0 -0
  75. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/nuclick/transforms.py +0 -0
  76. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/__init__.py +0 -0
  77. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/engines/__init__.py +0 -0
  78. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/engines/utils.py +0 -0
  79. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/handlers/__init__.py +0 -0
  80. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/handlers/utils.py +0 -0
  81. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/inferers/__init__.py +0 -0
  82. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/inferers/inferer.py +0 -0
  83. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/losses/__init__.py +0 -0
  84. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  85. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/metrics/__init__.py +0 -0
  86. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  87. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/__init__.py +0 -0
  88. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  89. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/post/array.py +0 -0
  90. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
  91. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  92. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/stain/array.py +0 -0
  93. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  94. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/pathology/utils.py +0 -0
  95. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/__init__.py +0 -0
  96. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/complex_utils.py +0 -0
  97. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  98. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/mri_utils.py +0 -0
  99. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/__init__.py +0 -0
  100. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  101. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  102. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  103. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  104. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  105. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  106. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  107. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  108. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/transforms/array.py +0 -0
  109. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  110. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/tcia/__init__.py +0 -0
  111. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/tcia/label_desc.py +0 -0
  112. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/tcia/utils.py +0 -0
  113. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/vista3d/__init__.py +0 -0
  114. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/vista3d/inferer.py +0 -0
  115. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/vista3d/sampler.py +0 -0
  116. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/apps/vista3d/transforms.py +0 -0
  117. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/auto3dseg/__init__.py +0 -0
  118. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/auto3dseg/algo_gen.py +0 -0
  119. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/auto3dseg/analyzer.py +0 -0
  120. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/auto3dseg/operations.py +0 -0
  121. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/auto3dseg/seg_summarizer.py +0 -0
  122. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/auto3dseg/utils.py +0 -0
  123. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/__init__.py +0 -0
  124. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/__main__.py +0 -0
  125. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/config_item.py +0 -0
  126. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/config_parser.py +0 -0
  127. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/properties.py +0 -0
  128. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/reference_resolver.py +0 -0
  129. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/utils.py +0 -0
  130. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/bundle/workflows.py +0 -0
  131. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/config/__init__.py +0 -0
  132. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/config/deviceconfig.py +0 -0
  133. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/config/type_definitions.py +0 -0
  134. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/__init__.py +0 -0
  135. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/box_utils.py +0 -0
  136. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/csv_saver.py +0 -0
  137. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/dataloader.py +0 -0
  138. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/dataset.py +0 -0
  139. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/dataset_summary.py +0 -0
  140. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/decathlon_datalist.py +0 -0
  141. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/fft_utils.py +0 -0
  142. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/folder_layout.py +0 -0
  143. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/grid_dataset.py +0 -0
  144. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/image_dataset.py +0 -0
  145. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/image_reader.py +0 -0
  146. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/image_writer.py +0 -0
  147. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/iterable_dataset.py +0 -0
  148. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/itk_torch_bridge.py +0 -0
  149. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/meta_obj.py +0 -0
  150. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/meta_tensor.py +0 -0
  151. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/samplers.py +0 -0
  152. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/synthetic.py +0 -0
  153. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/test_time_augmentation.py +0 -0
  154. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/thread_buffer.py +0 -0
  155. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/torchscript_utils.py +0 -0
  156. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/ultrasound_confidence_map.py +0 -0
  157. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/utils.py +0 -0
  158. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/video_dataset.py +0 -0
  159. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/wsi_datasets.py +0 -0
  160. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/data/wsi_reader.py +0 -0
  161. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/engines/__init__.py +0 -0
  162. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/engines/evaluator.py +0 -0
  163. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/engines/trainer.py +0 -0
  164. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/engines/utils.py +0 -0
  165. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/engines/workflow.py +0 -0
  166. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/__init__.py +0 -0
  167. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/client/__init__.py +0 -0
  168. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/client/client_algo.py +0 -0
  169. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/client/monai_algo.py +0 -0
  170. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/utils/__init__.py +0 -0
  171. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/utils/constants.py +0 -0
  172. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/utils/exchange_object.py +0 -0
  173. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/fl/utils/filters.py +0 -0
  174. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/__init__.py +0 -0
  175. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/average_precision.py +0 -0
  176. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/calibration.py +0 -0
  177. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/checkpoint_loader.py +0 -0
  178. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/checkpoint_saver.py +0 -0
  179. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/classification_saver.py +0 -0
  180. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/clearml_handlers.py +0 -0
  181. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/confusion_matrix.py +0 -0
  182. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/decollate_batch.py +0 -0
  183. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/earlystop_handler.py +0 -0
  184. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/garbage_collector.py +0 -0
  185. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/hausdorff_distance.py +0 -0
  186. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/ignite_metric.py +0 -0
  187. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/logfile_handler.py +0 -0
  188. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/lr_schedule_handler.py +0 -0
  189. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/mean_dice.py +0 -0
  190. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/mean_iou.py +0 -0
  191. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/metric_logger.py +0 -0
  192. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/metrics_reloaded_handler.py +0 -0
  193. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/metrics_saver.py +0 -0
  194. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/mlflow_handler.py +0 -0
  195. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/nvtx_handlers.py +0 -0
  196. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/panoptic_quality.py +0 -0
  197. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/parameter_scheduler.py +0 -0
  198. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/postprocessing.py +0 -0
  199. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/probability_maps.py +0 -0
  200. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/regression_metrics.py +0 -0
  201. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/roc_auc.py +0 -0
  202. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/smartcache_handler.py +0 -0
  203. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/stats_handler.py +0 -0
  204. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/surface_distance.py +0 -0
  205. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/tensorboard_handlers.py +0 -0
  206. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/trt_handler.py +0 -0
  207. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/utils.py +0 -0
  208. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/handlers/validation_handler.py +0 -0
  209. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/inferers/__init__.py +0 -0
  210. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/inferers/inferer.py +0 -0
  211. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/inferers/merger.py +0 -0
  212. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/inferers/splitter.py +0 -0
  213. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/inferers/utils.py +0 -0
  214. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/adversarial_loss.py +0 -0
  215. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/aucm_loss.py +0 -0
  216. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/barlow_twins.py +0 -0
  217. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/cldice.py +0 -0
  218. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/contrastive.py +0 -0
  219. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/deform.py +0 -0
  220. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/dice.py +0 -0
  221. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/ds_loss.py +0 -0
  222. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/focal_loss.py +0 -0
  223. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/giou_loss.py +0 -0
  224. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/hausdorff_loss.py +0 -0
  225. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/image_dissimilarity.py +0 -0
  226. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/mcc_loss.py +0 -0
  227. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/multi_scale.py +0 -0
  228. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/nacl_loss.py +0 -0
  229. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/perceptual.py +0 -0
  230. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/spatial_mask.py +0 -0
  231. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/spectral_loss.py +0 -0
  232. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/ssim_loss.py +0 -0
  233. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/sure_loss.py +0 -0
  234. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/tversky.py +0 -0
  235. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/unified_focal_loss.py +0 -0
  236. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/losses/utils.py +0 -0
  237. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/__init__.py +0 -0
  238. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/absolute_volume_difference.py +0 -0
  239. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/active_learning_metrics.py +0 -0
  240. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/average_precision.py +0 -0
  241. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/calibration.py +0 -0
  242. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/confusion_matrix.py +0 -0
  243. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/cumulative_average.py +0 -0
  244. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/embedding_collapse.py +0 -0
  245. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/f_beta_score.py +0 -0
  246. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/fid.py +0 -0
  247. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/froc.py +0 -0
  248. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/generalized_dice.py +0 -0
  249. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/hausdorff_distance.py +0 -0
  250. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/loss_metric.py +0 -0
  251. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/meandice.py +0 -0
  252. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/meaniou.py +0 -0
  253. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/metric.py +0 -0
  254. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/mmd.py +0 -0
  255. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/panoptic_quality.py +0 -0
  256. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/regression.py +0 -0
  257. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/rocauc.py +0 -0
  258. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/surface_dice.py +0 -0
  259. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/surface_distance.py +0 -0
  260. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/utils.py +0 -0
  261. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/metrics/wrapper.py +0 -0
  262. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/__init__.py +0 -0
  263. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/__init__.py +0 -0
  264. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/acti_norm.py +0 -0
  265. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/activation.py +0 -0
  266. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/activation_checkpointing.py +0 -0
  267. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/aspp.py +0 -0
  268. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/attention_utils.py +0 -0
  269. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  270. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/cablock.py +0 -0
  271. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/convolutions.py +0 -0
  272. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/crf.py +0 -0
  273. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/crossattention.py +0 -0
  274. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/denseblock.py +0 -0
  275. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/dints_block.py +0 -0
  276. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/downsample.py +0 -0
  277. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/dynunet_block.py +0 -0
  278. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/encoder.py +0 -0
  279. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/fcn.py +0 -0
  280. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  281. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/fft_utils_t.py +0 -0
  282. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/hyena.py +0 -0
  283. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/localnet_block.py +0 -0
  284. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/mednext_block.py +0 -0
  285. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/mlp.py +0 -0
  286. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/patchembedding.py +0 -0
  287. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/pos_embed_utils.py +0 -0
  288. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/regunet_block.py +0 -0
  289. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  290. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/segresnet_block.py +0 -0
  291. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/selfattention.py +0 -0
  292. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/spade_norm.py +0 -0
  293. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/spatialattention.py +0 -0
  294. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  295. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/text_embedding.py +0 -0
  296. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/transformerblock.py +0 -0
  297. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/unetr_block.py +0 -0
  298. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/blocks/upsample.py +0 -0
  299. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/__init__.py +0 -0
  300. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/conjugate_gradient.py +0 -0
  301. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/convutils.py +0 -0
  302. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/drop_path.py +0 -0
  303. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/factories.py +0 -0
  304. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/filtering.py +0 -0
  305. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/gmm.py +0 -0
  306. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/simplelayers.py +0 -0
  307. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/spatial_transforms.py +0 -0
  308. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/utils.py +0 -0
  309. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/vector_quantizer.py +0 -0
  310. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/layers/weight_init.py +0 -0
  311. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/__init__.py +0 -0
  312. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/ahnet.py +0 -0
  313. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/attentionunet.py +0 -0
  314. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/autoencoder.py +0 -0
  315. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/autoencoderkl.py +0 -0
  316. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/basic_unet.py +0 -0
  317. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/basic_unetplusplus.py +0 -0
  318. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  319. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/classifier.py +0 -0
  320. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/controlnet.py +0 -0
  321. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/daf3d.py +0 -0
  322. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/densenet.py +0 -0
  323. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/diffusion_model_unet.py +0 -0
  324. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/dints.py +0 -0
  325. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/dynunet.py +0 -0
  326. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/efficientnet.py +0 -0
  327. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/flexible_unet.py +0 -0
  328. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/fullyconnectednet.py +0 -0
  329. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/generator.py +0 -0
  330. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/highresnet.py +0 -0
  331. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/hyena_nd_unetr.py +0 -0
  332. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  333. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/mednext.py +0 -0
  334. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/milmodel.py +0 -0
  335. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/netadapter.py +0 -0
  336. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/patchgan_discriminator.py +0 -0
  337. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/quicknat.py +0 -0
  338. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/regressor.py +0 -0
  339. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/regunet.py +0 -0
  340. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/resnet.py +0 -0
  341. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/restormer.py +0 -0
  342. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/segresnet.py +0 -0
  343. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/segresnet_ds.py +0 -0
  344. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/senet.py +0 -0
  345. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  346. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  347. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/spade_network.py +0 -0
  348. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/swin_unetr.py +0 -0
  349. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/torchvision_fc.py +0 -0
  350. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/transchex.py +0 -0
  351. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/transformer.py +0 -0
  352. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/unet.py +0 -0
  353. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/unetr.py +0 -0
  354. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/varautoencoder.py +0 -0
  355. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/vista3d.py +0 -0
  356. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/vit.py +0 -0
  357. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/vitautoenc.py +0 -0
  358. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/vnet.py +0 -0
  359. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/voxelmorph.py +0 -0
  360. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/nets/vqvae.py +0 -0
  361. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/schedulers/__init__.py +0 -0
  362. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/schedulers/ddim.py +0 -0
  363. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/schedulers/ddpm.py +0 -0
  364. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/schedulers/pndm.py +0 -0
  365. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/schedulers/rectified_flow.py +0 -0
  366. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/schedulers/scheduler.py +0 -0
  367. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/trt_compiler.py +0 -0
  368. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/networks/utils.py +0 -0
  369. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/optimizers/__init__.py +0 -0
  370. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/optimizers/lr_finder.py +0 -0
  371. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/optimizers/lr_scheduler.py +0 -0
  372. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/optimizers/novograd.py +0 -0
  373. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/optimizers/utils.py +0 -0
  374. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/py.typed +0 -0
  375. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/__init__.py +0 -0
  376. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/adaptors.py +0 -0
  377. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/compose.py +0 -0
  378. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/croppad/__init__.py +0 -0
  379. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/croppad/array.py +0 -0
  380. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/croppad/batch.py +0 -0
  381. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/croppad/dictionary.py +0 -0
  382. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/croppad/functional.py +0 -0
  383. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/intensity/__init__.py +0 -0
  384. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/intensity/array.py +0 -0
  385. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/intensity/dictionary.py +0 -0
  386. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/inverse.py +0 -0
  387. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/inverse_batch_transform.py +0 -0
  388. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/io/__init__.py +0 -0
  389. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/io/array.py +0 -0
  390. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/io/dictionary.py +0 -0
  391. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/lazy/__init__.py +0 -0
  392. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/lazy/array.py +0 -0
  393. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/lazy/dictionary.py +0 -0
  394. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/lazy/functional.py +0 -0
  395. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/lazy/utils.py +0 -0
  396. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/meta_utility/__init__.py +0 -0
  397. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/meta_utility/dictionary.py +0 -0
  398. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/nvtx.py +0 -0
  399. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/post/__init__.py +0 -0
  400. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/post/array.py +0 -0
  401. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/post/dictionary.py +0 -0
  402. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/regularization/__init__.py +0 -0
  403. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/regularization/array.py +0 -0
  404. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/regularization/dictionary.py +0 -0
  405. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/signal/__init__.py +0 -0
  406. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/signal/array.py +0 -0
  407. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/signal/dictionary.py +0 -0
  408. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/smooth_field/__init__.py +0 -0
  409. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/smooth_field/array.py +0 -0
  410. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/smooth_field/dictionary.py +0 -0
  411. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/spatial/__init__.py +0 -0
  412. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/spatial/array.py +0 -0
  413. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/spatial/dictionary.py +0 -0
  414. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/spatial/functional.py +0 -0
  415. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/traits.py +0 -0
  416. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/transform.py +0 -0
  417. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utility/__init__.py +0 -0
  418. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utility/array.py +0 -0
  419. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utility/dictionary.py +0 -0
  420. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utils_create_transform_ims.py +0 -0
  421. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utils_morphological_ops.py +0 -0
  422. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  423. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/__init__.py +0 -0
  424. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/component_store.py +0 -0
  425. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/decorators.py +0 -0
  426. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/deprecate_utils.py +0 -0
  427. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/dist.py +0 -0
  428. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/enums.py +0 -0
  429. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/jupyter_utils.py +0 -0
  430. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/misc.py +0 -0
  431. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/module.py +0 -0
  432. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/nvtx.py +0 -0
  433. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/ordering.py +0 -0
  434. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/profiling.py +0 -0
  435. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/state_cacher.py +0 -0
  436. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/tf32.py +0 -0
  437. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/utils/type_conversion.py +0 -0
  438. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/__init__.py +0 -0
  439. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/class_activation_maps.py +0 -0
  440. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/gradient_based.py +0 -0
  441. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/img2tensorboard.py +0 -0
  442. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/occlusion_sensitivity.py +0 -0
  443. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/utils.py +0 -0
  444. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai/visualize/visualizer.py +0 -0
  445. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai_weekly.egg-info/dependency_links.txt +0 -0
  446. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai_weekly.egg-info/not-zip-safe +0 -0
  447. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai_weekly.egg-info/requires.txt +0 -0
  448. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/monai_weekly.egg-info/top_level.txt +0 -0
  449. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/pyproject.toml +0 -0
  450. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/setup.cfg +0 -0
  451. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/setup.py +0 -0
  452. {monai_weekly-1.7.dev2628 → monai_weekly-1.7.dev2630}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monai-weekly
3
- Version: 1.7.dev2628
3
+ Version: 1.7.dev2630
4
4
  Summary: AI Toolkit for Healthcare Imaging
5
5
  Home-page: https://project-monai.github.io/
6
6
  Author: MONAI Consortium
@@ -136,4 +136,4 @@ except Exception:
136
136
 
137
137
  if MONAIEnvVars.debug():
138
138
  raise
139
- __commit_id__ = "3bd4c4f23c758cc4eea0fe9c27108982950c6c44"
139
+ __commit_id__ = "3ee058bdd16dd4a566d23d3f84687c3c35268a36"
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-07-12T03:05:12+0000",
11
+ "date": "2026-07-26T03:05:02+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "fefd2105dfb46d8321fafd96a482d83e430e372b",
15
- "version": "1.7.dev2628"
14
+ "full-revisionid": "82bbaeeb45e5490606c4ff4615dd85e0e83fce7c",
15
+ "version": "1.7.dev2630"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -240,7 +240,7 @@ def download_url(
240
240
  if urlparse(url).netloc == "drive.google.com":
241
241
  if not has_gdown:
242
242
  raise RuntimeError("To download files from Google Drive, please install the gdown dependency.")
243
- if "fuzzy" not in gdown_kwargs:
243
+ if "fuzzy" not in gdown_kwargs and not min_version(gdown, "6.0.0"): # "fuzzy" dropped in gdown 6.0.0
244
244
  gdown_kwargs["fuzzy"] = True # default to true for flexible url
245
245
  gdown.download(url, f"{tmp_name}", quiet=not progress, **gdown_kwargs)
246
246
  elif urlparse(url).netloc == "cloud-api.yandex.net":
@@ -2005,7 +2005,6 @@ def download_large_files(bundle_path: str | None = None, large_file_name: str |
2005
2005
  parser.read_config(large_file_path)
2006
2006
  large_files_list = parser.get()["large_files"]
2007
2007
  for lf_data in large_files_list:
2008
- lf_data["fuzzy"] = True
2009
2008
  if "hash_val" in lf_data and lf_data.get("hash_val", "") == "":
2010
2009
  lf_data.pop("hash_val")
2011
2010
  if "hash_type" in lf_data and lf_data.get("hash_type", "") == "":
@@ -14,6 +14,7 @@ from __future__ import annotations
14
14
  from .adversarial_loss import PatchAdversarialLoss
15
15
  from .aucm_loss import AUCMLoss
16
16
  from .barlow_twins import BarlowTwinsLoss
17
+ from .boundary_loss import BoundaryLoss
17
18
  from .cldice import SoftclDiceLoss, SoftDiceclDiceLoss
18
19
  from .contrastive import ContrastiveLoss
19
20
  from .deform import BendingEnergyLoss, DiffusionLoss
@@ -0,0 +1,233 @@
1
+ # Copyright (c) MONAI Consortium
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ from __future__ import annotations
13
+
14
+ import warnings
15
+ from collections.abc import Callable
16
+
17
+ import torch
18
+ from torch.nn.modules.loss import _Loss
19
+
20
+ from monai.networks import one_hot
21
+ from monai.transforms.utils import distance_transform_edt
22
+ from monai.utils import LossReduction
23
+
24
+ __all__ = ["BoundaryLoss"]
25
+
26
+
27
+ class BoundaryLoss(_Loss):
28
+ """
29
+ Compute the boundary loss for highly unbalanced segmentation.
30
+
31
+ The boundary loss is a distance-based loss that operates on the interface between segmentation
32
+ regions rather than on the regions themselves. This makes it particularly effective for
33
+ highly imbalanced segmentation tasks (e.g., small lesions, thin structures), where standard
34
+ Dice or Cross-Entropy losses struggle due to foreground-background imbalance.
35
+
36
+ The loss is formulated as a pixel-wise weighted sum of predicted probabilities and a
37
+ signed distance map derived from the ground truth. The signed distance map is negative
38
+ inside the foreground region and positive outside, with zero on the boundary.
39
+
40
+ The data `input` (BNHW[D] where N is number of classes) is compared with ground truth `target`
41
+ (BNHW[D]).
42
+ Note that axis N of `input` is expected to be logits or probabilities for each class, if passing logits as input,
43
+ must set `sigmoid=True` or `softmax=True`, or specifying `other_act`. And the same axis of `target`
44
+ can be 1 or N (one-hot format).
45
+
46
+ The original paper:
47
+ Kervadec, H. et al. (2019) Boundary loss for highly unbalanced segmentation. MIDL 2019.
48
+ https://arxiv.org/abs/1812.07032
49
+
50
+ Example:
51
+ >>> import torch
52
+ >>> from monai.losses import BoundaryLoss
53
+ >>> B, C, H, W = 2, 3, 5, 5
54
+ >>> input = torch.rand(B, C, H, W)
55
+ >>> target = torch.randint(0, C, size=(B, H, W))
56
+ >>> bl = BoundaryLoss(softmax=True, to_onehot_y=True)
57
+ >>> loss = bl(input, target)
58
+ """
59
+
60
+ def __init__(
61
+ self,
62
+ include_background: bool = True,
63
+ to_onehot_y: bool = False,
64
+ sigmoid: bool = False,
65
+ softmax: bool = False,
66
+ other_act: Callable | None = None,
67
+ reduction: LossReduction | str = LossReduction.MEAN,
68
+ batch: bool = False,
69
+ ) -> None:
70
+ """
71
+ Args:
72
+ include_background: if False, channel index 0 (background category) is excluded from the calculation.
73
+ if the non-background segmentations are small compared to the total image size they can get overwhelmed
74
+ by the signal from the background so excluding it in such cases helps convergence.
75
+ to_onehot_y: whether to convert the ``target`` into the one-hot format,
76
+ using the number of classes inferred from `input` (``input.shape[1]``). Defaults to False.
77
+ sigmoid: if True, apply a sigmoid function to the prediction.
78
+ softmax: if True, apply a softmax function to the prediction.
79
+ other_act: callable function to execute other activation layers, Defaults to ``None``. for example:
80
+ ``other_act = torch.tanh``.
81
+ reduction: {``"none"``, ``"mean"``, ``"sum"``}
82
+ Specifies the reduction to apply to the output. Defaults to ``"mean"``.
83
+
84
+ - ``"none"``: no reduction will be applied.
85
+ - ``"mean"``: the sum of the output will be divided by the number of elements in the output.
86
+ - ``"sum"``: the output will be summed.
87
+ batch: whether to compute the distance map and loss over the batch dimension before the dividing.
88
+ Defaults to False, a boundary loss value is computed independently from each item in the batch
89
+ before any `reduction`.
90
+
91
+ Raises:
92
+ TypeError: When ``other_act`` is not an ``Optional[Callable]``.
93
+ ValueError: When more than 1 of [``sigmoid=True``, ``softmax=True``, ``other_act is not None``].
94
+ Incompatible values.
95
+ """
96
+ super().__init__(reduction=LossReduction(reduction).value)
97
+ if other_act is not None and not callable(other_act):
98
+ raise TypeError(f"other_act must be None or callable but is {type(other_act).__name__}.")
99
+ if int(sigmoid) + int(softmax) + int(other_act is not None) > 1:
100
+ raise ValueError("Incompatible values: more than 1 of [sigmoid=True, softmax=True, other_act is not None].")
101
+
102
+ self.include_background = include_background
103
+ self.to_onehot_y = to_onehot_y
104
+ self.sigmoid = sigmoid
105
+ self.softmax = softmax
106
+ self.other_act = other_act
107
+ self.batch = batch
108
+
109
+ @torch.no_grad()
110
+ def compute_distance_map(self, target: torch.Tensor) -> torch.Tensor:
111
+ """
112
+ Compute the signed distance map for each class in the target.
113
+
114
+ The signed distance map is negative inside the foreground region and positive outside,
115
+ with zero on the boundary.
116
+
117
+ Args:
118
+ target: target tensor of shape BNHW[D], with values in {0, 1} (one-hot encoded).
119
+
120
+ Returns:
121
+ Signed distance map of the same shape as target.
122
+ """
123
+ if target.dim() not in (4, 5):
124
+ raise ValueError("Only 2D (BNHW) and 3D (BNHWD) supported")
125
+
126
+ distance_map = torch.zeros_like(target, dtype=torch.float32)
127
+
128
+ for batch_idx in range(target.shape[0]):
129
+ for channel_idx in range(target.shape[1]):
130
+ mask = target[batch_idx, channel_idx : channel_idx + 1] > 0.5
131
+
132
+ # Empty or full masks do not have a foreground/background interface.
133
+ if not mask.any() or mask.all():
134
+ continue
135
+
136
+ fg_dist: torch.Tensor = distance_transform_edt(mask) # type: ignore
137
+ bg_dist: torch.Tensor = distance_transform_edt(~mask) # type: ignore
138
+
139
+ signed = torch.zeros_like(mask, dtype=torch.float32)
140
+ signed[mask] = -(fg_dist[mask].to(torch.float32) - 1)
141
+ signed[~mask] = bg_dist[~mask].to(torch.float32)
142
+
143
+ distance_map[batch_idx, channel_idx] = signed[0]
144
+
145
+ return distance_map
146
+
147
+ def forward(self, input: torch.Tensor, target: torch.Tensor) -> torch.Tensor:
148
+ """
149
+ Args:
150
+ input: the shape should be BNHW[D], where N is the number of classes.
151
+ target: the shape should be BNHW[D] or B1HW[D], where N is the number of classes.
152
+
153
+ Raises:
154
+ ValueError: If the input is not 2D (BNHW) or 3D (BNHWD).
155
+ AssertionError: When input and target (after one hot transform if set)
156
+ have different shapes.
157
+ ValueError: When ``self.reduction`` is not one of ["mean", "sum", "none"].
158
+
159
+ Example:
160
+ >>> import torch
161
+ >>> from monai.losses import BoundaryLoss
162
+ >>> B, C, H, W = 2, 3, 5, 5
163
+ >>> input = torch.rand(B, C, H, W)
164
+ >>> target_idx = torch.randint(0, C, size=(B, H, W)).long()
165
+ >>> target = one_hot(target_idx[:, None, ...], num_classes=C)
166
+ >>> bl = BoundaryLoss(softmax=True)
167
+ >>> loss = bl(input, target)
168
+ """
169
+ if input.dim() not in (4, 5):
170
+ raise ValueError("Only 2D (BNHW) and 3D (BNHWD) supported")
171
+
172
+ n_pred_ch = input.shape[1]
173
+
174
+ # Apply activation to input
175
+ if self.sigmoid:
176
+ input = torch.sigmoid(input)
177
+
178
+ if self.softmax:
179
+ if n_pred_ch == 1:
180
+ warnings.warn("single channel prediction, `softmax=True` ignored.", stacklevel=2)
181
+ else:
182
+ input = torch.softmax(input, dim=1)
183
+
184
+ if self.other_act is not None:
185
+ input = self.other_act(input)
186
+
187
+ # Convert target to one-hot if needed
188
+ if self.to_onehot_y:
189
+ if n_pred_ch == 1:
190
+ warnings.warn("single channel prediction, `to_onehot_y=True` ignored.", stacklevel=2)
191
+ else:
192
+ if target.dim() == input.dim() - 1:
193
+ target = target.unsqueeze(dim=1)
194
+ target = one_hot(target, num_classes=n_pred_ch)
195
+
196
+ # Validate shapes match
197
+ if input.shape != target.shape:
198
+ raise AssertionError(f"input and target shapes do not match: {input.shape} vs {target.shape}")
199
+
200
+ # Exclude background if requested
201
+ if not self.include_background:
202
+ if n_pred_ch == 1:
203
+ warnings.warn("single channel prediction, `include_background=False` ignored.", stacklevel=2)
204
+ else:
205
+ input = input[:, 1:]
206
+ target = target[:, 1:]
207
+
208
+ # Compute signed distance maps from target
209
+ distance_map = self.compute_distance_map(target)
210
+
211
+ # Compute boundary loss: sum over spatial dimensions of (probabilities * distance_map)
212
+ # Then average over classes and batch
213
+ spatial_axes = list(range(2, input.dim()))
214
+
215
+ loss = torch.sum(input * distance_map, dim=spatial_axes)
216
+
217
+ # Normalize by number of pixels per class per batch element
218
+ num_pixels = torch.prod(torch.as_tensor(input.shape[2:], device=input.device))
219
+ loss = loss / num_pixels
220
+ if self.batch:
221
+ loss = loss.mean(dim=0)
222
+
223
+ if self.reduction == LossReduction.MEAN.value:
224
+ loss = loss.mean()
225
+ elif self.reduction == LossReduction.SUM.value:
226
+ loss = loss.sum()
227
+ elif self.reduction == LossReduction.NONE.value:
228
+ # Return shape (B, C') unless batch=True reduces the batch dimension first.
229
+ pass
230
+ else:
231
+ raise ValueError(f"Unsupported reduction: {self.reduction}")
232
+
233
+ return loss
@@ -121,12 +121,13 @@ class Warp(nn.Module):
121
121
  mesh_points = [torch.arange(0, dim) for dim in ddf.shape[2:]]
122
122
  grid = torch.stack(meshgrid_ij(*mesh_points), dim=0) # (spatial_dims, ...)
123
123
  grid = torch.stack([grid] * ddf.shape[0], dim=0) # (batch, spatial_dims, ...)
124
- self.ref_grid = grid.to(ddf)
124
+ grid = grid.to(ddf)
125
125
  if jitter:
126
126
  # Define reference grid on non-integer values
127
- with torch.random.fork_rng(enabled=seed):
127
+ with torch.random.fork_rng():
128
128
  torch.random.manual_seed(seed)
129
129
  grid += torch.rand_like(grid)
130
+ self.ref_grid = grid
130
131
  self.ref_grid.requires_grad = False
131
132
  return self.ref_grid
132
133
 
@@ -632,7 +632,7 @@ def _remap_preact_resnet_model(model_url: str):
632
632
  pattern_bna = re.compile(r"^(.+\.d\d+)\.blk_bna\.(.+)")
633
633
  # download the pretrained weights into torch hub's default dir
634
634
  weights_dir = os.path.join(torch.hub.get_dir(), "preact-resnet50.pth")
635
- download_url(model_url, fuzzy=True, filepath=weights_dir, progress=False)
635
+ download_url(model_url, filepath=weights_dir, progress=False)
636
636
  map_location = None if torch.cuda.is_available() else torch.device("cpu")
637
637
  state_dict = torch.load(weights_dir, map_location=map_location, weights_only=True)["desc"]
638
638
 
@@ -667,7 +667,7 @@ def _remap_standard_resnet_model(model_url: str, state_dict_key: str | None = No
667
667
  pattern_downsample1 = re.compile(r"^(res_blocks.d\d+).+\.downsample\.1\.(.+)")
668
668
  # download the pretrained weights into torch hub's default dir
669
669
  weights_dir = os.path.join(torch.hub.get_dir(), "resnet50.pth")
670
- download_url(model_url, fuzzy=True, filepath=weights_dir, progress=False)
670
+ download_url(model_url, filepath=weights_dir, progress=False)
671
671
  map_location = None if torch.cuda.is_available() else torch.device("cpu")
672
672
  state_dict = torch.load(weights_dir, map_location=map_location, weights_only=True)
673
673
  if state_dict_key is not None:
@@ -1224,15 +1224,15 @@ def get_largest_connected_component_mask(
1224
1224
  if num_features <= num_components:
1225
1225
  out = img_.astype(bool)
1226
1226
  else:
1227
- # ignore background
1228
- nonzeros = features[lib.nonzero(features)]
1229
- # get number voxels per feature (bincount). argsort[::-1] to get indices
1230
- # of largest components.
1231
- features_to_keep = lib.argsort(lib.bincount(nonzeros))[::-1]
1232
- # only keep the first n non-background indices
1233
- features_to_keep = features_to_keep[:num_components]
1234
- # generate labelfield. True if in list of features to keep
1235
- out = lib.isin(features, features_to_keep)
1227
+ # bincount counts every label; index 0 is background, so drop it before ranking
1228
+ counts = lib.bincount(features.reshape(-1))
1229
+ counts[0] = 0
1230
+ # argsort[::-1] gives labels of the largest components; keep the first n
1231
+ features_to_keep = lib.argsort(counts)[::-1][:num_components]
1232
+ # boolean lookup-table gather over the label field, cheaper than isin
1233
+ keep = lib.zeros(counts.shape[0], dtype=bool)
1234
+ keep[features_to_keep] = True
1235
+ out = keep[features]
1236
1236
 
1237
1237
  return convert_to_dst_type(out, dst=img, dtype=out.dtype)[0]
1238
1238
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monai-weekly
3
- Version: 1.7.dev2628
3
+ Version: 1.7.dev2630
4
4
  Summary: AI Toolkit for Healthcare Imaging
5
5
  Home-page: https://project-monai.github.io/
6
6
  Author: MONAI Consortium
@@ -212,6 +212,7 @@ monai/losses/__init__.py
212
212
  monai/losses/adversarial_loss.py
213
213
  monai/losses/aucm_loss.py
214
214
  monai/losses/barlow_twins.py
215
+ monai/losses/boundary_loss.py
215
216
  monai/losses/cldice.py
216
217
  monai/losses/contrastive.py
217
218
  monai/losses/deform.py