monai-weekly 1.7.dev2639__tar.gz → 1.7.dev2641__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/PKG-INFO +1 -1
  2. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/__init__.py +1 -1
  3. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/loader.py +3 -1
  4. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_version.py +3 -3
  5. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/bundle_gen.py +1 -1
  6. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/matching.py +1 -1
  7. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/dictionary.py +7 -5
  8. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/dictionary.py +2 -2
  9. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/dataset_summary.py +16 -3
  10. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/image_writer.py +3 -2
  11. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/synthetic.py +1 -1
  12. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/utils.py +17 -5
  13. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/calibration.py +2 -2
  14. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/mlflow_handler.py +119 -0
  15. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/inferers/inferer.py +3 -3
  16. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/__init__.py +1 -0
  17. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/barlow_twins.py +1 -1
  18. monai_weekly-1.7.dev2641/monai/losses/calibration.py +379 -0
  19. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/image_dissimilarity.py +25 -6
  20. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/calibration.py +4 -4
  21. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/hausdorff_distance.py +47 -3
  22. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/utils.py +15 -16
  23. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/pos_embed_utils.py +1 -1
  24. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/warp.py +17 -2
  25. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/dints.py +44 -6
  26. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/patchgan_discriminator.py +1 -1
  27. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/ddpm.py +1 -1
  28. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/array.py +135 -9
  29. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/dictionary.py +24 -2
  30. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/dictionary.py +9 -14
  31. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/functional.py +11 -2
  32. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/PKG-INFO +1 -1
  33. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/SOURCES.txt +1 -0
  34. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/setup.py +5 -1
  35. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/LICENSE +0 -0
  36. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/MANIFEST.in +0 -0
  37. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/README.md +0 -0
  38. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/__init__.py +0 -0
  39. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm.cpp +0 -0
  40. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm.h +0 -0
  41. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  42. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  43. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  44. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/__init__.py +0 -0
  45. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/__init__.py +0 -0
  46. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/__main__.py +0 -0
  47. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/auto_runner.py +0 -0
  48. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  49. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  50. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  51. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/transforms.py +0 -0
  52. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/utils.py +0 -0
  53. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/datasets.py +0 -0
  54. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/__init__.py +0 -0
  55. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/interaction.py +0 -0
  56. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/transforms.py +0 -0
  57. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/__init__.py +0 -0
  58. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/dataset.py +0 -0
  59. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/interaction.py +0 -0
  60. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/transforms.py +0 -0
  61. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/__init__.py +0 -0
  62. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/__init__.py +0 -0
  63. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/coco.py +0 -0
  64. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/__init__.py +0 -0
  65. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/retinanet_detector.py +0 -0
  66. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/retinanet_network.py +0 -0
  67. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/__init__.py +0 -0
  68. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/array.py +0 -0
  69. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/box_ops.py +0 -0
  70. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  71. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/__init__.py +0 -0
  72. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/anchor_utils.py +0 -0
  73. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/box_coder.py +0 -0
  74. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/box_selector.py +0 -0
  75. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/detector_utils.py +0 -0
  76. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  77. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/predict_utils.py +0 -0
  78. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/generation/__init__.py +0 -0
  79. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/__init__.py +0 -0
  80. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  81. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  82. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  83. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  84. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/mmars/__init__.py +0 -0
  85. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/mmars/mmars.py +0 -0
  86. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/mmars/model_desc.py +0 -0
  87. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/__init__.py +0 -0
  88. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/__main__.py +0 -0
  89. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  90. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  91. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/utils.py +0 -0
  92. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nuclick/__init__.py +0 -0
  93. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/nuclick/transforms.py +0 -0
  94. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/__init__.py +0 -0
  95. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/engines/__init__.py +0 -0
  96. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/engines/utils.py +0 -0
  97. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/handlers/__init__.py +0 -0
  98. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/handlers/utils.py +0 -0
  99. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/inferers/__init__.py +0 -0
  100. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/inferers/inferer.py +0 -0
  101. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/losses/__init__.py +0 -0
  102. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  103. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/metrics/__init__.py +0 -0
  104. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  105. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/__init__.py +0 -0
  106. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  107. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/array.py +0 -0
  108. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  109. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/array.py +0 -0
  110. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  111. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/pathology/utils.py +0 -0
  112. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/__init__.py +0 -0
  113. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/complex_utils.py +0 -0
  114. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  115. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/mri_utils.py +0 -0
  116. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/__init__.py +0 -0
  117. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  118. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  119. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  120. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  121. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  122. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  123. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  124. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  125. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/array.py +0 -0
  126. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  127. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/tcia/__init__.py +0 -0
  128. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/tcia/label_desc.py +0 -0
  129. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/tcia/utils.py +0 -0
  130. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/utils.py +0 -0
  131. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/__init__.py +0 -0
  132. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/inferer.py +0 -0
  133. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/sampler.py +0 -0
  134. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/transforms.py +0 -0
  135. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/auto3dseg/__init__.py +0 -0
  136. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/auto3dseg/algo_gen.py +0 -0
  137. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/auto3dseg/analyzer.py +0 -0
  138. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/auto3dseg/operations.py +0 -0
  139. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/auto3dseg/seg_summarizer.py +0 -0
  140. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/auto3dseg/utils.py +0 -0
  141. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/__init__.py +0 -0
  142. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/__main__.py +0 -0
  143. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/config_item.py +0 -0
  144. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/config_parser.py +0 -0
  145. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/properties.py +0 -0
  146. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/reference_resolver.py +0 -0
  147. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/scripts.py +0 -0
  148. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/utils.py +0 -0
  149. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/bundle/workflows.py +0 -0
  150. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/config/__init__.py +0 -0
  151. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/config/__main__.py +0 -0
  152. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/config/check_env.py +0 -0
  153. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/config/deviceconfig.py +0 -0
  154. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/config/print_dependencies.py +0 -0
  155. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/config/type_definitions.py +0 -0
  156. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/__init__.py +0 -0
  157. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/box_utils.py +0 -0
  158. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/csv_saver.py +0 -0
  159. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/dataloader.py +0 -0
  160. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/dataset.py +0 -0
  161. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/decathlon_datalist.py +0 -0
  162. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/fft_utils.py +0 -0
  163. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/folder_layout.py +0 -0
  164. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/grid_dataset.py +0 -0
  165. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/image_dataset.py +0 -0
  166. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/image_reader.py +0 -0
  167. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/iterable_dataset.py +0 -0
  168. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/itk_torch_bridge.py +0 -0
  169. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/meta_obj.py +0 -0
  170. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/meta_tensor.py +0 -0
  171. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/nvimgcodec_pydicom_plugin.py +0 -0
  172. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/samplers.py +0 -0
  173. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/test_time_augmentation.py +0 -0
  174. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/thread_buffer.py +0 -0
  175. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/torchscript_utils.py +0 -0
  176. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/ultrasound_confidence_map.py +0 -0
  177. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/video_dataset.py +0 -0
  178. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/wsi_datasets.py +0 -0
  179. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/data/wsi_reader.py +0 -0
  180. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/engines/__init__.py +0 -0
  181. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/engines/evaluator.py +0 -0
  182. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/engines/trainer.py +0 -0
  183. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/engines/utils.py +0 -0
  184. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/engines/workflow.py +0 -0
  185. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/__init__.py +0 -0
  186. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/client/__init__.py +0 -0
  187. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/client/client_algo.py +0 -0
  188. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/client/monai_algo.py +0 -0
  189. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/utils/__init__.py +0 -0
  190. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/utils/constants.py +0 -0
  191. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/utils/exchange_object.py +0 -0
  192. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/fl/utils/filters.py +0 -0
  193. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/__init__.py +0 -0
  194. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/average_precision.py +0 -0
  195. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/checkpoint_loader.py +0 -0
  196. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/checkpoint_saver.py +0 -0
  197. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/classification_saver.py +0 -0
  198. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/clearml_handlers.py +0 -0
  199. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/confusion_matrix.py +0 -0
  200. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/decollate_batch.py +0 -0
  201. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/earlystop_handler.py +0 -0
  202. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/garbage_collector.py +0 -0
  203. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/hausdorff_distance.py +0 -0
  204. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/ignite_metric.py +0 -0
  205. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/logfile_handler.py +0 -0
  206. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/lr_schedule_handler.py +0 -0
  207. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/mean_dice.py +0 -0
  208. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/mean_iou.py +0 -0
  209. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/metric_logger.py +0 -0
  210. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/metrics_reloaded_handler.py +0 -0
  211. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/metrics_saver.py +0 -0
  212. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/nvtx_handlers.py +0 -0
  213. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/panoptic_quality.py +0 -0
  214. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/parameter_scheduler.py +0 -0
  215. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/postprocessing.py +0 -0
  216. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/probability_maps.py +0 -0
  217. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/regression_metrics.py +0 -0
  218. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/roc_auc.py +0 -0
  219. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/smartcache_handler.py +0 -0
  220. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/stats_handler.py +0 -0
  221. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/surface_distance.py +0 -0
  222. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/tensorboard_handlers.py +0 -0
  223. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/trt_handler.py +0 -0
  224. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/utils.py +0 -0
  225. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/handlers/validation_handler.py +0 -0
  226. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/inferers/__init__.py +0 -0
  227. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/inferers/merger.py +0 -0
  228. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/inferers/splitter.py +0 -0
  229. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/inferers/utils.py +0 -0
  230. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/adversarial_loss.py +0 -0
  231. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/aucm_loss.py +0 -0
  232. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/boundary_loss.py +0 -0
  233. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/cldice.py +0 -0
  234. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/contrastive.py +0 -0
  235. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/deform.py +0 -0
  236. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/dice.py +0 -0
  237. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/ds_loss.py +0 -0
  238. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/focal_loss.py +0 -0
  239. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/giou_loss.py +0 -0
  240. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/hausdorff_loss.py +0 -0
  241. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/mcc_loss.py +0 -0
  242. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/multi_scale.py +0 -0
  243. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/nacl_loss.py +0 -0
  244. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/perceptual.py +0 -0
  245. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/spatial_mask.py +0 -0
  246. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/spectral_loss.py +0 -0
  247. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/ssim_loss.py +0 -0
  248. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/sure_loss.py +0 -0
  249. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/tversky.py +0 -0
  250. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/unified_focal_loss.py +0 -0
  251. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/losses/utils.py +0 -0
  252. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/__init__.py +0 -0
  253. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/absolute_volume_difference.py +0 -0
  254. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/active_learning_metrics.py +0 -0
  255. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/average_precision.py +0 -0
  256. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/confusion_matrix.py +0 -0
  257. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/cumulative_average.py +0 -0
  258. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/embedding_collapse.py +0 -0
  259. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/f_beta_score.py +0 -0
  260. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/fid.py +0 -0
  261. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/froc.py +0 -0
  262. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/generalized_dice.py +0 -0
  263. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/loss_metric.py +0 -0
  264. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/meandice.py +0 -0
  265. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/meaniou.py +0 -0
  266. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/metric.py +0 -0
  267. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/mmd.py +0 -0
  268. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/panoptic_quality.py +0 -0
  269. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/regression.py +0 -0
  270. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/rocauc.py +0 -0
  271. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/surface_dice.py +0 -0
  272. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/surface_distance.py +0 -0
  273. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/metrics/wrapper.py +0 -0
  274. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/__init__.py +0 -0
  275. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/__init__.py +0 -0
  276. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/acti_norm.py +0 -0
  277. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/activation.py +0 -0
  278. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/activation_checkpointing.py +0 -0
  279. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/aspp.py +0 -0
  280. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/attention_utils.py +0 -0
  281. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  282. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/cablock.py +0 -0
  283. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/convolutions.py +0 -0
  284. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/crf.py +0 -0
  285. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/crossattention.py +0 -0
  286. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/denseblock.py +0 -0
  287. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/dints_block.py +0 -0
  288. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/downsample.py +0 -0
  289. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/dynunet_block.py +0 -0
  290. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/encoder.py +0 -0
  291. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/fcn.py +0 -0
  292. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  293. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/fft_utils_t.py +0 -0
  294. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/hyena.py +0 -0
  295. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/localnet_block.py +0 -0
  296. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/mednext_block.py +0 -0
  297. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/mlp.py +0 -0
  298. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/patchembedding.py +0 -0
  299. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/regunet_block.py +0 -0
  300. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  301. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/segresnet_block.py +0 -0
  302. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/selfattention.py +0 -0
  303. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/spade_norm.py +0 -0
  304. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/spatialattention.py +0 -0
  305. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  306. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/text_embedding.py +0 -0
  307. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/transformerblock.py +0 -0
  308. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/unetr_block.py +0 -0
  309. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/blocks/upsample.py +0 -0
  310. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/__init__.py +0 -0
  311. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/conjugate_gradient.py +0 -0
  312. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/convutils.py +0 -0
  313. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/drop_path.py +0 -0
  314. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/factories.py +0 -0
  315. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/filtering.py +0 -0
  316. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/gmm.py +0 -0
  317. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/simplelayers.py +0 -0
  318. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/spatial_transforms.py +0 -0
  319. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/utils.py +0 -0
  320. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/vector_quantizer.py +0 -0
  321. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/layers/weight_init.py +0 -0
  322. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/__init__.py +0 -0
  323. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/ahnet.py +0 -0
  324. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/attentionunet.py +0 -0
  325. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/autoencoder.py +0 -0
  326. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/autoencoderkl.py +0 -0
  327. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/basic_unet.py +0 -0
  328. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/basic_unetplusplus.py +0 -0
  329. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  330. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/classifier.py +0 -0
  331. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/controlnet.py +0 -0
  332. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/daf3d.py +0 -0
  333. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/densenet.py +0 -0
  334. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/diffusion_model_unet.py +0 -0
  335. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/dynunet.py +0 -0
  336. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/efficientnet.py +0 -0
  337. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/flexible_unet.py +0 -0
  338. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/fullyconnectednet.py +0 -0
  339. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/generator.py +0 -0
  340. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/highresnet.py +0 -0
  341. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/hovernet.py +0 -0
  342. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/hyena_nd_unetr.py +0 -0
  343. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  344. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/mednext.py +0 -0
  345. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/milmodel.py +0 -0
  346. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/navit.py +0 -0
  347. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/netadapter.py +0 -0
  348. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/quicknat.py +0 -0
  349. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/regressor.py +0 -0
  350. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/regunet.py +0 -0
  351. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/resnet.py +0 -0
  352. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/restormer.py +0 -0
  353. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/segresnet.py +0 -0
  354. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/segresnet_ds.py +0 -0
  355. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/senet.py +0 -0
  356. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  357. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  358. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_network.py +0 -0
  359. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/swin_unetr.py +0 -0
  360. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/torchvision_fc.py +0 -0
  361. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/transchex.py +0 -0
  362. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/transformer.py +0 -0
  363. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/unet.py +0 -0
  364. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/unetr.py +0 -0
  365. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/varautoencoder.py +0 -0
  366. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/vista3d.py +0 -0
  367. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/vit.py +0 -0
  368. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/vitautoenc.py +0 -0
  369. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/vnet.py +0 -0
  370. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/voxelmorph.py +0 -0
  371. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/nets/vqvae.py +0 -0
  372. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/__init__.py +0 -0
  373. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/ddim.py +0 -0
  374. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/pndm.py +0 -0
  375. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/rectified_flow.py +0 -0
  376. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/scheduler.py +0 -0
  377. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/trt_compiler.py +0 -0
  378. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/networks/utils.py +0 -0
  379. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/optimizers/__init__.py +0 -0
  380. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/optimizers/lr_finder.py +0 -0
  381. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/optimizers/lr_scheduler.py +0 -0
  382. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/optimizers/novograd.py +0 -0
  383. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/optimizers/utils.py +0 -0
  384. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/py.typed +0 -0
  385. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/__init__.py +0 -0
  386. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/adaptors.py +0 -0
  387. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/compose.py +0 -0
  388. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/__init__.py +0 -0
  389. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/array.py +0 -0
  390. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/batch.py +0 -0
  391. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/dictionary.py +0 -0
  392. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/functional.py +0 -0
  393. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/__init__.py +0 -0
  394. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/inverse.py +0 -0
  395. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/inverse_batch_transform.py +0 -0
  396. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/io/__init__.py +0 -0
  397. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/io/array.py +0 -0
  398. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/io/dictionary.py +0 -0
  399. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/__init__.py +0 -0
  400. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/array.py +0 -0
  401. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/dictionary.py +0 -0
  402. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/functional.py +0 -0
  403. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/utils.py +0 -0
  404. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/meta_utility/__init__.py +0 -0
  405. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/meta_utility/dictionary.py +0 -0
  406. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/nvtx.py +0 -0
  407. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/post/__init__.py +0 -0
  408. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/post/array.py +0 -0
  409. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/post/dictionary.py +0 -0
  410. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/__init__.py +0 -0
  411. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/array.py +0 -0
  412. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/dictionary.py +0 -0
  413. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/signal/__init__.py +0 -0
  414. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/signal/array.py +0 -0
  415. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/signal/dictionary.py +0 -0
  416. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/__init__.py +0 -0
  417. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/array.py +0 -0
  418. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/dictionary.py +0 -0
  419. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/__init__.py +0 -0
  420. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/array.py +0 -0
  421. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/traits.py +0 -0
  422. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/transform.py +0 -0
  423. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utility/__init__.py +0 -0
  424. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utility/array.py +0 -0
  425. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utility/dictionary.py +0 -0
  426. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utils.py +0 -0
  427. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utils_create_transform_ims.py +0 -0
  428. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utils_morphological_ops.py +0 -0
  429. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  430. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/__init__.py +0 -0
  431. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/compare_sources.py +0 -0
  432. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/component_store.py +0 -0
  433. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/decorators.py +0 -0
  434. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/deprecate_utils.py +0 -0
  435. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/dist.py +0 -0
  436. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/enums.py +0 -0
  437. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/jupyter_utils.py +0 -0
  438. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/misc.py +0 -0
  439. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/module.py +0 -0
  440. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/nvtx.py +0 -0
  441. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/ordering.py +0 -0
  442. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/profiling.py +0 -0
  443. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/safeeval.py +0 -0
  444. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/state_cacher.py +0 -0
  445. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/tf32.py +0 -0
  446. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/utils/type_conversion.py +0 -0
  447. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/__init__.py +0 -0
  448. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/class_activation_maps.py +0 -0
  449. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/gradient_based.py +0 -0
  450. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/img2tensorboard.py +0 -0
  451. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/occlusion_sensitivity.py +0 -0
  452. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/utils.py +0 -0
  453. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai/visualize/visualizer.py +0 -0
  454. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/dependency_links.txt +0 -0
  455. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/not-zip-safe +0 -0
  456. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/requires.txt +0 -0
  457. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/top_level.txt +0 -0
  458. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/pyproject.toml +0 -0
  459. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/setup.cfg +0 -0
  460. {monai_weekly-1.7.dev2639 → monai_weekly-1.7.dev2641}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monai-weekly
3
- Version: 1.7.dev2639
3
+ Version: 1.7.dev2641
4
4
  Summary: AI Toolkit for Healthcare Imaging
5
5
  Author-email: MONAI Consortium <monai.contact@gmail.com>
6
6
  License: Apache License 2.0
@@ -136,4 +136,4 @@ except Exception:
136
136
 
137
137
  if MONAIEnvVars.debug():
138
138
  raise
139
- __commit_id__ = "25847e7570361fc93261509943b21c1639ab9f04"
139
+ __commit_id__ = "eedf5fad1e1c802e8ade5736c8ecf071f9dca0b7"
@@ -75,7 +75,9 @@ def load_module(
75
75
  source = glob(path.join(module_dir, "**", "*.cpp"), recursive=True)
76
76
  if torch.cuda.is_available():
77
77
  source += glob(path.join(module_dir, "**", "*.cu"), recursive=True)
78
- platform_str += f"_{torch.version.cuda}"
78
+ # `torch.version.cuda` is None on a ROCm build, which would make every ROCm
79
+ # toolkit version share a single cache entry. Key on whichever is populated.
80
+ platform_str += f"_{torch.version.cuda or f'hip{torch.version.hip}'}"
79
81
 
80
82
  # Constructing compilation argument list.
81
83
  define_args = [] if not defines else [f"-D {key}={defines[key]}" for key in defines]
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-09-27T02:18:34+0000",
11
+ "date": "2026-10-11T02:25:27+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "5cfc144e2f41cc448085b59758dd2ab1d335f3d1",
15
- "version": "1.7.dev2639"
14
+ "full-revisionid": "7bfe671ffaf469a0b2a44c800abe101d1f3447b4",
15
+ "version": "1.7.dev2641"
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
- mlfow_experiment_name: a string to specify the experiment name for MLflow server.
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"
@@ -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
- dt_scores: predicted scores
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.
@@ -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
- mask_img = convert_box_to_mask(
1158
- extended_boxes_np, np.ones(extended_boxes_np.shape[0]), image_size, bg_label=0, ellipse_mask=False
1159
- )
1160
- mask_img = np.amax(mask_img, axis=0, keepdims=True)[0:1, ...]
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 sampling_flag:
208
- intensities = intensities[::interval]
209
- all_intensities.append(intensities)
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
- data_array = convert_to_tensor(data_array, track_meta=True)
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[None], dst_affine=target_affine, spatial_size=output_spatial_shape # type: ignore
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("f`rad_min` {rad_min} should be no less than 1.")
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}.")
@@ -686,28 +686,40 @@ def worker_init_fn(worker_id: int) -> None:
686
686
  set_rnd(worker_info.dataset, seed=worker_info.seed) # type: ignore[union-attr]
687
687
 
688
688
 
689
- def set_rnd(obj, seed: int) -> int:
689
+ def set_rnd(obj, seed: int, _seen: set[int] | None = None) -> int:
690
690
  """
691
691
  Set seed or random state for all randomizable properties of obj.
692
692
 
693
693
  Args:
694
694
  obj: object to set seed or random state for.
695
695
  seed: set the random state with an integer seed.
696
+ _seen: internal set of already-visited object ids, used to guard against
697
+ infinite recursion on cyclic object graphs (e.g. OmegaConf/Hydra
698
+ configs whose child nodes back-reference their parent, see issue #8087).
696
699
  """
700
+ if _seen is None:
701
+ _seen = set()
697
702
  if isinstance(obj, (tuple, list)): # ZipDataset.data is a list
698
- _seed = seed
703
+ if id(obj) in _seen:
704
+ return seed
705
+ _seen.add(id(obj))
706
+ has_randomizable = False
699
707
  for item in obj:
700
- _seed = set_rnd(item, seed=seed)
701
- return seed if _seed == seed else seed + 1 # return a different seed if there are randomizable items
708
+ item_seed = set_rnd(item, seed=seed, _seen=_seen)
709
+ has_randomizable = has_randomizable or item_seed != seed
710
+ return seed + 1 if has_randomizable else seed
702
711
  if not hasattr(obj, "__dict__"):
703
712
  return seed # no attribute
713
+ if id(obj) in _seen:
714
+ return seed # already visited: avoid infinite recursion on cyclic references
715
+ _seen.add(id(obj))
704
716
  if hasattr(obj, "set_random_state"):
705
717
  obj.set_random_state(seed=seed % MAX_SEED)
706
718
  return seed + 1 # a different seed for the next component
707
719
  for key in obj.__dict__:
708
720
  if key.startswith("__"): # skip the private methods
709
721
  continue
710
- seed = set_rnd(obj.__dict__[key], seed=seed)
722
+ seed = set_rnd(obj.__dict__[key], seed=seed, _seen=_seen)
711
723
  return seed
712
724
 
713
725
 
@@ -59,8 +59,8 @@ class CalibrationError(IgniteMetricHandler):
59
59
  - Guo, C., et al. "On Calibration of Modern Neural Networks." ICML 2017.
60
60
  https://proceedings.mlr.press/v70/guo17a.html
61
61
  - Barfoot, T., et al. "Average Calibration Losses for Reliable Uncertainty in
62
- Medical Image Segmentation." arXiv:2506.03942v3, 2025.
63
- https://arxiv.org/abs/2506.03942v3
62
+ Medical Image Segmentation." IEEE Transactions on Medical Imaging, 2026.
63
+ https://doi.org/10.1109/TMI.2026.3673118
64
64
 
65
65
  See Also:
66
66
  - :py:class:`~monai.metrics.CalibrationErrorMetric`: The underlying metric class.
@@ -12,6 +12,7 @@
12
12
  from __future__ import annotations
13
13
 
14
14
  import os
15
+ import threading
15
16
  import time
16
17
  import warnings
17
18
  from collections.abc import Callable, Mapping, Sequence
@@ -43,6 +44,9 @@ MlflowException, _ = optional_import(
43
44
  )
44
45
  pandas, _ = optional_import("pandas", descriptor="Please install pandas for recording the dataset.")
45
46
  tqdm, _ = optional_import("tqdm", "4.47.0", min_version, "tqdm")
47
+ SystemMetricsMonitor, has_system_metrics = optional_import(
48
+ "mlflow.system_metrics.system_metrics_monitor", name="SystemMetricsMonitor"
49
+ )
46
50
 
47
51
  if TYPE_CHECKING:
48
52
  from ignite.engine import Engine
@@ -136,6 +140,19 @@ class MLFlowHandler:
136
140
  or the ``MLFLOW_TRACKING_URI`` environment variable), it defaults to an ``mlruns`` directory
137
141
  next to the database file; for other backends ``None`` lets MLflow decide based on the
138
142
  ``tracking_uri``. Has no effect if the experiment already exists.
143
+ log_system_metrics: whether to record system resource usage (CPU, memory, disk, network and GPU)
144
+ while the workflow runs, default to False. The metrics are sampled in a background thread by
145
+ MLflow itself and stored in the same run as the workflow metrics, under the `system/` prefix.
146
+ Requires `psutil`, and `pynvml` in addition for the GPU metrics. Note that MLflow reads the
147
+ run through the global tracking URI to sample it, so this points the global tracking URI
148
+ (and with it `MLFLOW_TRACKING_URI`, which later handlers read in preference to their own
149
+ argument) at `tracking_uri` while the run is sampled, and puts the previous value back
150
+ when sampling stops.
151
+ system_metrics_sampling_interval: seconds between two samples of the system metrics, default to
152
+ `None`, which keeps the MLflow default (10 seconds). Only used if `log_system_metrics` is True.
153
+ system_metrics_samples_before_logging: number of samples to aggregate before they are logged,
154
+ default to `None`, which keeps the MLflow default (1 sample). Only used if `log_system_metrics`
155
+ is True.
139
156
 
140
157
  For more details of MLFlow usage, please refer to: https://mlflow.org/docs/latest/index.html.
141
158
 
@@ -144,6 +161,10 @@ class MLFlowHandler:
144
161
  # parameters that are logged at the start of training
145
162
  default_tracking_params = ["max_epochs", "epoch_length"]
146
163
 
164
+ # runs whose system metrics are being sampled, so that handlers sharing a run sample it once
165
+ _monitored_run_ids: set[str] = set()
166
+ _system_metrics_lock = threading.Lock()
167
+
147
168
  def __init__(
148
169
  self,
149
170
  tracking_uri: str | None = None,
@@ -165,6 +186,9 @@ class MLFlowHandler:
165
186
  optimizer_param_names: str | Sequence[str] = "lr",
166
187
  close_on_complete: bool = False,
167
188
  artifact_location: str | None = None,
189
+ log_system_metrics: bool = False,
190
+ system_metrics_sampling_interval: int | None = None,
191
+ system_metrics_samples_before_logging: int | None = None,
168
192
  ) -> None:
169
193
  self.iteration_log = iteration_log
170
194
  self.epoch_log = epoch_log
@@ -210,11 +234,27 @@ class MLFlowHandler:
210
234
  f"tracking_uri={effective_tracking_uri!r}. Use a SQLite URI "
211
235
  "(sqlite:///<path>/mlruns.db) or a remote tracking URI instead."
212
236
  )
237
+ # The system metrics monitor reads the run through the global tracking uri,
238
+ # so remember the uri that was actually settled on rather than the argument.
239
+ self.tracking_uri = effective_tracking_uri
213
240
  # Only the argument is passed to the client; when `MLFLOW_TRACKING_URI` took priority it
214
241
  # is left None so MLflow resolves the environment variable itself.
215
242
  self.client = mlflow.MlflowClient(tracking_uri=None if env_tracking_uri else tracking_uri)
216
243
  self.run_finish_status = mlflow.entities.RunStatus.to_string(mlflow.entities.RunStatus.FINISHED)
217
244
  self.close_on_complete = close_on_complete
245
+ self.log_system_metrics = log_system_metrics
246
+ for name, value in (
247
+ ("system_metrics_sampling_interval", system_metrics_sampling_interval),
248
+ ("system_metrics_samples_before_logging", system_metrics_samples_before_logging),
249
+ ):
250
+ if value is not None and value <= 0:
251
+ raise ValueError(f"`{name}` must be a positive number, got {value}.")
252
+ self.system_metrics_sampling_interval = system_metrics_sampling_interval
253
+ self.system_metrics_samples_before_logging = system_metrics_samples_before_logging
254
+ self.system_metrics_monitor = None
255
+ self._monitored_run_id: str | None = None
256
+ self._previous_tracking_uri: str | None = None
257
+ self._tracking_uri_overridden = False
218
258
  self.experiment = None
219
259
  self.cur_run = None
220
260
  self.dataset_dict = dataset_dict
@@ -295,6 +335,81 @@ class MLFlowHandler:
295
335
  else:
296
336
  self._default_dataset_log(self.dataset_dict)
297
337
 
338
+ if self.log_system_metrics:
339
+ self._start_system_metrics_monitor()
340
+
341
+ def _start_system_metrics_monitor(self) -> None:
342
+ """
343
+ Start sampling the system resource usage of the current run, if it is not sampled yet.
344
+
345
+ A workflow attaches one handler per engine, and those handlers share a run, so the run is
346
+ sampled by the first handler that starts and left alone by the other ones.
347
+ """
348
+ if self.system_metrics_monitor is not None or self.cur_run is None:
349
+ return
350
+
351
+ if not has_system_metrics:
352
+ warnings.warn("Please install mlflow>=2.8.0 to record the system metrics.")
353
+ return
354
+
355
+ run_id = self.cur_run.info.run_id
356
+ with MLFlowHandler._system_metrics_lock:
357
+ if run_id in MLFlowHandler._monitored_run_ids:
358
+ return
359
+
360
+ kwargs = {}
361
+ if self.system_metrics_sampling_interval is not None:
362
+ kwargs["sampling_interval"] = self.system_metrics_sampling_interval
363
+ if self.system_metrics_samples_before_logging is not None:
364
+ kwargs["samples_before_logging"] = self.system_metrics_samples_before_logging
365
+
366
+ # mlflow reads the run to sample through the global tracking uri, not through
367
+ # the client, so it has to be pointed at ours for as long as we sample. Setting
368
+ # it also writes MLFLOW_TRACKING_URI, which every later handler reads in
369
+ # preference to its own argument, so the previous value is put back when
370
+ # sampling stops. `None` is a meaningful previous value, meaning it was unset,
371
+ # and passing it back to mlflow restores exactly that.
372
+ previous_tracking_uri = os.environ.get("MLFLOW_TRACKING_URI")
373
+ overridden = False
374
+ try:
375
+ if self.tracking_uri:
376
+ mlflow.set_tracking_uri(self.tracking_uri)
377
+ overridden = True
378
+ monitor = SystemMetricsMonitor(run_id, **kwargs)
379
+ monitor.start()
380
+ except Exception as e:
381
+ # a workflow should not fail because its resource usage cannot be recorded
382
+ if overridden:
383
+ mlflow.set_tracking_uri(previous_tracking_uri)
384
+ warnings.warn(f"Failed to record the system metrics: {e}")
385
+ return
386
+ self._previous_tracking_uri = previous_tracking_uri
387
+ self._tracking_uri_overridden = overridden
388
+
389
+ MLFlowHandler._monitored_run_ids.add(run_id)
390
+ self.system_metrics_monitor = monitor
391
+ self._monitored_run_id = run_id
392
+
393
+ def _stop_system_metrics_monitor(self) -> None:
394
+ """
395
+ Stop sampling the system resource usage, if this handler is the one sampling it.
396
+ """
397
+ if self.system_metrics_monitor is None:
398
+ return
399
+
400
+ with MLFlowHandler._system_metrics_lock:
401
+ try:
402
+ self.system_metrics_monitor.finish()
403
+ except Exception as e:
404
+ warnings.warn(f"Failed to stop recording the system metrics: {e}")
405
+ if self._tracking_uri_overridden:
406
+ mlflow.set_tracking_uri(self._previous_tracking_uri)
407
+ self._tracking_uri_overridden = False
408
+ self._previous_tracking_uri = None
409
+ MLFlowHandler._monitored_run_ids.discard(self._monitored_run_id)
410
+ self.system_metrics_monitor = None
411
+ self._monitored_run_id = None
412
+
298
413
  def _set_experiment(self):
299
414
  experiment = self.experiment
300
415
  if not experiment:
@@ -394,6 +509,8 @@ class MLFlowHandler:
394
509
  """
395
510
  Handler for train or validation/evaluation completed Event.
396
511
  """
512
+ self._stop_system_metrics_monitor()
513
+
397
514
  if self.artifacts and self.cur_run:
398
515
  artifact_list = self._parse_artifacts()
399
516
  for artifact in artifact_list:
@@ -430,6 +547,8 @@ class MLFlowHandler:
430
547
  Stop current running logger of MLFlow and release local SQLite resources.
431
548
 
432
549
  """
550
+ self._stop_system_metrics_monitor()
551
+
433
552
  try:
434
553
  if self.cur_run:
435
554
  self.client.set_terminated(self.cur_run.info.run_id, self.run_finish_status)
@@ -1251,7 +1251,7 @@ class DiffusionInferer(Inferer):
1251
1251
  given image. Code adapted from https://github.com/openai/improved-diffusion.
1252
1252
 
1253
1253
  Args:
1254
- input: the target images. It is assumed that this was uint8 values,
1254
+ inputs: the target images. It is assumed that this was uint8 values,
1255
1255
  rescaled to the range [-1, 1].
1256
1256
  means: the Gaussian mean Tensor.
1257
1257
  log_scales: the Gaussian log stddev Tensor.
@@ -1987,8 +1987,8 @@ class ControlNetLatentDiffusionInferer(ControlNetDiffusionInferer):
1987
1987
  and autoencoder_model.decoder.label_nc != diffusion_model.label_nc
1988
1988
  ):
1989
1989
  raise ValueError(
1990
- "If both autoencoder_model and diffusion_model implement SPADE, the number of semantic"
1991
- "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}"
1992
1992
  )
1993
1993
 
1994
1994
  if cn_cond.shape[2:] != input_noise.shape[2:]:
@@ -15,6 +15,7 @@ from .adversarial_loss import PatchAdversarialLoss
15
15
  from .aucm_loss import AUCMLoss
16
16
  from .barlow_twins import BarlowTwinsLoss
17
17
  from .boundary_loss import BoundaryLoss
18
+ from .calibration import HardL1ACELoss, SoftL1ACELoss
18
19
  from .cldice import SoftclDiceLoss, SoftDiceclDiceLoss
19
20
  from .contrastive import ContrastiveLoss
20
21
  from .deform import BendingEnergyLoss, DiffusionLoss
@@ -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()