monai-weekly 1.7.dev2640__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.dev2640 → monai_weekly-1.7.dev2641}/PKG-INFO +1 -1
  2. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/__init__.py +1 -1
  3. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/loader.py +3 -1
  4. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_version.py +3 -3
  5. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/utils.py +17 -5
  6. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/calibration.py +2 -2
  7. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/mlflow_handler.py +119 -0
  8. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/__init__.py +1 -0
  9. monai_weekly-1.7.dev2641/monai/losses/calibration.py +379 -0
  10. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/image_dissimilarity.py +25 -6
  11. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/calibration.py +4 -4
  12. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/hausdorff_distance.py +47 -3
  13. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/utils.py +1 -1
  14. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/warp.py +17 -2
  15. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/dints.py +44 -6
  16. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/array.py +135 -9
  17. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/dictionary.py +24 -2
  18. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/PKG-INFO +1 -1
  19. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/SOURCES.txt +1 -0
  20. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/setup.py +5 -1
  21. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/LICENSE +0 -0
  22. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/MANIFEST.in +0 -0
  23. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/README.md +0 -0
  24. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/__init__.py +0 -0
  25. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm.cpp +0 -0
  26. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm.h +0 -0
  27. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  28. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  29. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  30. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/__init__.py +0 -0
  31. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/__init__.py +0 -0
  32. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/__main__.py +0 -0
  33. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/auto_runner.py +0 -0
  34. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/bundle_gen.py +0 -0
  35. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  36. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  37. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  38. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/transforms.py +0 -0
  39. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/auto3dseg/utils.py +0 -0
  40. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/datasets.py +0 -0
  41. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/__init__.py +0 -0
  42. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/interaction.py +0 -0
  43. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepedit/transforms.py +0 -0
  44. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/__init__.py +0 -0
  45. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/dataset.py +0 -0
  46. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/interaction.py +0 -0
  47. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/deepgrow/transforms.py +0 -0
  48. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/__init__.py +0 -0
  49. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/__init__.py +0 -0
  50. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/coco.py +0 -0
  51. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/metrics/matching.py +0 -0
  52. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/__init__.py +0 -0
  53. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/retinanet_detector.py +0 -0
  54. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/networks/retinanet_network.py +0 -0
  55. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/__init__.py +0 -0
  56. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/array.py +0 -0
  57. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/box_ops.py +0 -0
  58. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/transforms/dictionary.py +0 -0
  59. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  60. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/__init__.py +0 -0
  61. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/anchor_utils.py +0 -0
  62. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/box_coder.py +0 -0
  63. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/box_selector.py +0 -0
  64. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/detector_utils.py +0 -0
  65. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  66. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/detection/utils/predict_utils.py +0 -0
  67. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/__init__.py +0 -0
  68. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/__init__.py +0 -0
  69. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  70. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  71. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  72. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  73. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/mmars/__init__.py +0 -0
  74. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/mmars/mmars.py +0 -0
  75. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/mmars/model_desc.py +0 -0
  76. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/__init__.py +0 -0
  77. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/__main__.py +0 -0
  78. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  79. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  80. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nnunet/utils.py +0 -0
  81. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nuclick/__init__.py +0 -0
  82. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/nuclick/transforms.py +0 -0
  83. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/__init__.py +0 -0
  84. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/engines/__init__.py +0 -0
  85. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/engines/utils.py +0 -0
  86. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/handlers/__init__.py +0 -0
  87. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/handlers/utils.py +0 -0
  88. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/inferers/__init__.py +0 -0
  89. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/inferers/inferer.py +0 -0
  90. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/losses/__init__.py +0 -0
  91. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  92. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/metrics/__init__.py +0 -0
  93. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  94. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/__init__.py +0 -0
  95. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  96. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/array.py +0 -0
  97. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
  98. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  99. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/array.py +0 -0
  100. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  101. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/pathology/utils.py +0 -0
  102. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/__init__.py +0 -0
  103. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/complex_utils.py +0 -0
  104. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  105. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/mri_utils.py +0 -0
  106. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/__init__.py +0 -0
  107. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  108. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  109. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  110. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  111. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  112. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  113. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  114. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  115. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/array.py +0 -0
  116. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  117. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/tcia/__init__.py +0 -0
  118. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/tcia/label_desc.py +0 -0
  119. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/tcia/utils.py +0 -0
  120. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/utils.py +0 -0
  121. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/__init__.py +0 -0
  122. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/inferer.py +0 -0
  123. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/sampler.py +0 -0
  124. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/apps/vista3d/transforms.py +0 -0
  125. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/__init__.py +0 -0
  126. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/algo_gen.py +0 -0
  127. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/analyzer.py +0 -0
  128. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/operations.py +0 -0
  129. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/seg_summarizer.py +0 -0
  130. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/auto3dseg/utils.py +0 -0
  131. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/__init__.py +0 -0
  132. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/__main__.py +0 -0
  133. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/config_item.py +0 -0
  134. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/config_parser.py +0 -0
  135. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/properties.py +0 -0
  136. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/reference_resolver.py +0 -0
  137. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/scripts.py +0 -0
  138. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/utils.py +0 -0
  139. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/bundle/workflows.py +0 -0
  140. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/__init__.py +0 -0
  141. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/__main__.py +0 -0
  142. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/check_env.py +0 -0
  143. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/deviceconfig.py +0 -0
  144. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/print_dependencies.py +0 -0
  145. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/config/type_definitions.py +0 -0
  146. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/__init__.py +0 -0
  147. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/box_utils.py +0 -0
  148. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/csv_saver.py +0 -0
  149. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/dataloader.py +0 -0
  150. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/dataset.py +0 -0
  151. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/dataset_summary.py +0 -0
  152. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/decathlon_datalist.py +0 -0
  153. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/fft_utils.py +0 -0
  154. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/folder_layout.py +0 -0
  155. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/grid_dataset.py +0 -0
  156. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/image_dataset.py +0 -0
  157. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/image_reader.py +0 -0
  158. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/image_writer.py +0 -0
  159. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/iterable_dataset.py +0 -0
  160. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/itk_torch_bridge.py +0 -0
  161. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/meta_obj.py +0 -0
  162. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/meta_tensor.py +0 -0
  163. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/nvimgcodec_pydicom_plugin.py +0 -0
  164. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/samplers.py +0 -0
  165. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/synthetic.py +0 -0
  166. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/test_time_augmentation.py +0 -0
  167. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/thread_buffer.py +0 -0
  168. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/torchscript_utils.py +0 -0
  169. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/ultrasound_confidence_map.py +0 -0
  170. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/video_dataset.py +0 -0
  171. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/wsi_datasets.py +0 -0
  172. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/data/wsi_reader.py +0 -0
  173. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/__init__.py +0 -0
  174. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/evaluator.py +0 -0
  175. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/trainer.py +0 -0
  176. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/utils.py +0 -0
  177. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/engines/workflow.py +0 -0
  178. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/__init__.py +0 -0
  179. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/client/__init__.py +0 -0
  180. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/client/client_algo.py +0 -0
  181. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/client/monai_algo.py +0 -0
  182. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/__init__.py +0 -0
  183. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/constants.py +0 -0
  184. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/exchange_object.py +0 -0
  185. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/fl/utils/filters.py +0 -0
  186. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/__init__.py +0 -0
  187. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/average_precision.py +0 -0
  188. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/checkpoint_loader.py +0 -0
  189. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/checkpoint_saver.py +0 -0
  190. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/classification_saver.py +0 -0
  191. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/clearml_handlers.py +0 -0
  192. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/confusion_matrix.py +0 -0
  193. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/decollate_batch.py +0 -0
  194. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/earlystop_handler.py +0 -0
  195. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/garbage_collector.py +0 -0
  196. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/hausdorff_distance.py +0 -0
  197. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/ignite_metric.py +0 -0
  198. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/logfile_handler.py +0 -0
  199. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/lr_schedule_handler.py +0 -0
  200. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/mean_dice.py +0 -0
  201. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/mean_iou.py +0 -0
  202. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/metric_logger.py +0 -0
  203. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/metrics_reloaded_handler.py +0 -0
  204. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/metrics_saver.py +0 -0
  205. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/nvtx_handlers.py +0 -0
  206. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/panoptic_quality.py +0 -0
  207. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/parameter_scheduler.py +0 -0
  208. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/postprocessing.py +0 -0
  209. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/probability_maps.py +0 -0
  210. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/regression_metrics.py +0 -0
  211. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/roc_auc.py +0 -0
  212. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/smartcache_handler.py +0 -0
  213. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/stats_handler.py +0 -0
  214. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/surface_distance.py +0 -0
  215. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/tensorboard_handlers.py +0 -0
  216. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/trt_handler.py +0 -0
  217. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/utils.py +0 -0
  218. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/handlers/validation_handler.py +0 -0
  219. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/__init__.py +0 -0
  220. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/inferer.py +0 -0
  221. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/merger.py +0 -0
  222. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/splitter.py +0 -0
  223. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/inferers/utils.py +0 -0
  224. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/adversarial_loss.py +0 -0
  225. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/aucm_loss.py +0 -0
  226. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/barlow_twins.py +0 -0
  227. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/boundary_loss.py +0 -0
  228. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/cldice.py +0 -0
  229. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/contrastive.py +0 -0
  230. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/deform.py +0 -0
  231. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/dice.py +0 -0
  232. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/ds_loss.py +0 -0
  233. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/focal_loss.py +0 -0
  234. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/giou_loss.py +0 -0
  235. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/hausdorff_loss.py +0 -0
  236. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/mcc_loss.py +0 -0
  237. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/multi_scale.py +0 -0
  238. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/nacl_loss.py +0 -0
  239. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/perceptual.py +0 -0
  240. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/spatial_mask.py +0 -0
  241. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/spectral_loss.py +0 -0
  242. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/ssim_loss.py +0 -0
  243. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/sure_loss.py +0 -0
  244. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/tversky.py +0 -0
  245. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/unified_focal_loss.py +0 -0
  246. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/losses/utils.py +0 -0
  247. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/__init__.py +0 -0
  248. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/absolute_volume_difference.py +0 -0
  249. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/active_learning_metrics.py +0 -0
  250. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/average_precision.py +0 -0
  251. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/confusion_matrix.py +0 -0
  252. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/cumulative_average.py +0 -0
  253. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/embedding_collapse.py +0 -0
  254. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/f_beta_score.py +0 -0
  255. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/fid.py +0 -0
  256. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/froc.py +0 -0
  257. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/generalized_dice.py +0 -0
  258. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/loss_metric.py +0 -0
  259. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/meandice.py +0 -0
  260. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/meaniou.py +0 -0
  261. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/metric.py +0 -0
  262. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/mmd.py +0 -0
  263. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/panoptic_quality.py +0 -0
  264. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/regression.py +0 -0
  265. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/rocauc.py +0 -0
  266. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/surface_dice.py +0 -0
  267. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/surface_distance.py +0 -0
  268. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/metrics/wrapper.py +0 -0
  269. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/__init__.py +0 -0
  270. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/__init__.py +0 -0
  271. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/acti_norm.py +0 -0
  272. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/activation.py +0 -0
  273. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/activation_checkpointing.py +0 -0
  274. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/aspp.py +0 -0
  275. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/attention_utils.py +0 -0
  276. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  277. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/cablock.py +0 -0
  278. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/convolutions.py +0 -0
  279. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/crf.py +0 -0
  280. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/crossattention.py +0 -0
  281. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/denseblock.py +0 -0
  282. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/dints_block.py +0 -0
  283. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/downsample.py +0 -0
  284. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/dynunet_block.py +0 -0
  285. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/encoder.py +0 -0
  286. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/fcn.py +0 -0
  287. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  288. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/fft_utils_t.py +0 -0
  289. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/hyena.py +0 -0
  290. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/localnet_block.py +0 -0
  291. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/mednext_block.py +0 -0
  292. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/mlp.py +0 -0
  293. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/patchembedding.py +0 -0
  294. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/pos_embed_utils.py +0 -0
  295. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/regunet_block.py +0 -0
  296. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  297. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/segresnet_block.py +0 -0
  298. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/selfattention.py +0 -0
  299. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/spade_norm.py +0 -0
  300. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/spatialattention.py +0 -0
  301. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  302. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/text_embedding.py +0 -0
  303. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/transformerblock.py +0 -0
  304. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/unetr_block.py +0 -0
  305. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/blocks/upsample.py +0 -0
  306. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/__init__.py +0 -0
  307. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/conjugate_gradient.py +0 -0
  308. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/convutils.py +0 -0
  309. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/drop_path.py +0 -0
  310. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/factories.py +0 -0
  311. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/filtering.py +0 -0
  312. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/gmm.py +0 -0
  313. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/simplelayers.py +0 -0
  314. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/spatial_transforms.py +0 -0
  315. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/utils.py +0 -0
  316. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/vector_quantizer.py +0 -0
  317. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/layers/weight_init.py +0 -0
  318. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/__init__.py +0 -0
  319. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/ahnet.py +0 -0
  320. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/attentionunet.py +0 -0
  321. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/autoencoder.py +0 -0
  322. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/autoencoderkl.py +0 -0
  323. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/basic_unet.py +0 -0
  324. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/basic_unetplusplus.py +0 -0
  325. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  326. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/classifier.py +0 -0
  327. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/controlnet.py +0 -0
  328. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/daf3d.py +0 -0
  329. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/densenet.py +0 -0
  330. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/diffusion_model_unet.py +0 -0
  331. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/dynunet.py +0 -0
  332. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/efficientnet.py +0 -0
  333. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/flexible_unet.py +0 -0
  334. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/fullyconnectednet.py +0 -0
  335. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/generator.py +0 -0
  336. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/highresnet.py +0 -0
  337. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/hovernet.py +0 -0
  338. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/hyena_nd_unetr.py +0 -0
  339. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  340. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/mednext.py +0 -0
  341. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/milmodel.py +0 -0
  342. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/navit.py +0 -0
  343. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/netadapter.py +0 -0
  344. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/patchgan_discriminator.py +0 -0
  345. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/quicknat.py +0 -0
  346. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/regressor.py +0 -0
  347. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/regunet.py +0 -0
  348. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/resnet.py +0 -0
  349. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/restormer.py +0 -0
  350. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/segresnet.py +0 -0
  351. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/segresnet_ds.py +0 -0
  352. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/senet.py +0 -0
  353. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  354. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  355. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/spade_network.py +0 -0
  356. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/swin_unetr.py +0 -0
  357. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/torchvision_fc.py +0 -0
  358. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/transchex.py +0 -0
  359. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/transformer.py +0 -0
  360. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/unet.py +0 -0
  361. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/unetr.py +0 -0
  362. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/varautoencoder.py +0 -0
  363. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vista3d.py +0 -0
  364. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vit.py +0 -0
  365. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vitautoenc.py +0 -0
  366. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vnet.py +0 -0
  367. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/voxelmorph.py +0 -0
  368. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/nets/vqvae.py +0 -0
  369. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/__init__.py +0 -0
  370. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/ddim.py +0 -0
  371. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/ddpm.py +0 -0
  372. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/pndm.py +0 -0
  373. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/rectified_flow.py +0 -0
  374. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/schedulers/scheduler.py +0 -0
  375. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/trt_compiler.py +0 -0
  376. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/networks/utils.py +0 -0
  377. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/__init__.py +0 -0
  378. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/lr_finder.py +0 -0
  379. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/lr_scheduler.py +0 -0
  380. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/novograd.py +0 -0
  381. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/optimizers/utils.py +0 -0
  382. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/py.typed +0 -0
  383. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/__init__.py +0 -0
  384. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/adaptors.py +0 -0
  385. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/compose.py +0 -0
  386. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/__init__.py +0 -0
  387. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/array.py +0 -0
  388. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/batch.py +0 -0
  389. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/dictionary.py +0 -0
  390. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/croppad/functional.py +0 -0
  391. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/intensity/__init__.py +0 -0
  392. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/inverse.py +0 -0
  393. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/inverse_batch_transform.py +0 -0
  394. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/io/__init__.py +0 -0
  395. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/io/array.py +0 -0
  396. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/io/dictionary.py +0 -0
  397. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/__init__.py +0 -0
  398. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/array.py +0 -0
  399. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/dictionary.py +0 -0
  400. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/functional.py +0 -0
  401. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/lazy/utils.py +0 -0
  402. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/meta_utility/__init__.py +0 -0
  403. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/meta_utility/dictionary.py +0 -0
  404. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/nvtx.py +0 -0
  405. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/post/__init__.py +0 -0
  406. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/post/array.py +0 -0
  407. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/post/dictionary.py +0 -0
  408. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/__init__.py +0 -0
  409. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/array.py +0 -0
  410. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/regularization/dictionary.py +0 -0
  411. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/signal/__init__.py +0 -0
  412. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/signal/array.py +0 -0
  413. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/signal/dictionary.py +0 -0
  414. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/__init__.py +0 -0
  415. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/array.py +0 -0
  416. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/smooth_field/dictionary.py +0 -0
  417. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/__init__.py +0 -0
  418. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/array.py +0 -0
  419. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/dictionary.py +0 -0
  420. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/spatial/functional.py +0 -0
  421. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/traits.py +0 -0
  422. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/transform.py +0 -0
  423. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utility/__init__.py +0 -0
  424. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utility/array.py +0 -0
  425. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utility/dictionary.py +0 -0
  426. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils.py +0 -0
  427. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils_create_transform_ims.py +0 -0
  428. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils_morphological_ops.py +0 -0
  429. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  430. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/__init__.py +0 -0
  431. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/compare_sources.py +0 -0
  432. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/component_store.py +0 -0
  433. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/decorators.py +0 -0
  434. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/deprecate_utils.py +0 -0
  435. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/dist.py +0 -0
  436. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/enums.py +0 -0
  437. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/jupyter_utils.py +0 -0
  438. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/misc.py +0 -0
  439. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/module.py +0 -0
  440. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/nvtx.py +0 -0
  441. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/ordering.py +0 -0
  442. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/profiling.py +0 -0
  443. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/safeeval.py +0 -0
  444. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/state_cacher.py +0 -0
  445. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/tf32.py +0 -0
  446. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/utils/type_conversion.py +0 -0
  447. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/__init__.py +0 -0
  448. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/class_activation_maps.py +0 -0
  449. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/gradient_based.py +0 -0
  450. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/img2tensorboard.py +0 -0
  451. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/occlusion_sensitivity.py +0 -0
  452. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/utils.py +0 -0
  453. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai/visualize/visualizer.py +0 -0
  454. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/dependency_links.txt +0 -0
  455. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/not-zip-safe +0 -0
  456. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/requires.txt +0 -0
  457. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/monai_weekly.egg-info/top_level.txt +0 -0
  458. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/pyproject.toml +0 -0
  459. {monai_weekly-1.7.dev2640 → monai_weekly-1.7.dev2641}/setup.cfg +0 -0
  460. {monai_weekly-1.7.dev2640 → 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.dev2640
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__ = "b229330ff12ea9a60b52f6ebfed256331aec71e0"
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-10-04T02:49:09+0000",
11
+ "date": "2026-10-11T02:25:27+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "e06f55fca00aba1d14a62c329e1f16d77b871297",
15
- "version": "1.7.dev2640"
14
+ "full-revisionid": "7bfe671ffaf469a0b2a44c800abe101d1f3447b4",
15
+ "version": "1.7.dev2641"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -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)
@@ -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