monai-weekly 1.7.dev2636__tar.gz → 1.7.dev2637__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 (457) hide show
  1. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/MANIFEST.in +1 -0
  2. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/PKG-INFO +1 -1
  3. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/__init__.py +1 -1
  4. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_version.py +3 -3
  5. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/auto_runner.py +15 -3
  6. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/networks/retinanet_detector.py +10 -6
  7. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/utils.py +1 -1
  8. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/__init__.py +0 -1
  9. monai_weekly-1.7.dev2637/monai/config/__main__.py +15 -0
  10. monai_weekly-1.7.dev2637/monai/config/check_env.py +184 -0
  11. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/deviceconfig.py +33 -32
  12. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/inferer.py +1 -1
  13. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/dice.py +17 -1
  14. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/focal_loss.py +58 -18
  15. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/tversky.py +17 -1
  16. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/unified_focal_loss.py +78 -23
  17. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/utils.py +13 -0
  18. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/confusion_matrix.py +46 -5
  19. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/embedding_collapse.py +4 -1
  20. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/generalized_dice.py +71 -25
  21. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/hausdorff_distance.py +44 -6
  22. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/meandice.py +34 -3
  23. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/meaniou.py +38 -3
  24. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/surface_dice.py +40 -5
  25. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/surface_distance.py +37 -4
  26. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/utils.py +110 -14
  27. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/fullyconnectednet.py +23 -3
  28. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/quicknat.py +24 -3
  29. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/varautoencoder.py +24 -4
  30. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/utils.py +1 -1
  31. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/inverse.py +12 -3
  32. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/post/dictionary.py +110 -7
  33. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/PKG-INFO +1 -1
  34. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/SOURCES.txt +2 -0
  35. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/pyproject.toml +2 -0
  36. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/LICENSE +0 -0
  37. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/README.md +0 -0
  38. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/__init__.py +0 -0
  39. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm.cpp +0 -0
  40. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm.h +0 -0
  41. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  42. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  43. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  44. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/_extensions/loader.py +0 -0
  45. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/__init__.py +0 -0
  46. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/__init__.py +0 -0
  47. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/__main__.py +0 -0
  48. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/bundle_gen.py +0 -0
  49. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  50. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  51. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  52. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/transforms.py +0 -0
  53. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/auto3dseg/utils.py +0 -0
  54. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/datasets.py +0 -0
  55. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepedit/__init__.py +0 -0
  56. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepedit/interaction.py +0 -0
  57. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepedit/transforms.py +0 -0
  58. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/__init__.py +0 -0
  59. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/dataset.py +0 -0
  60. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/interaction.py +0 -0
  61. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/deepgrow/transforms.py +0 -0
  62. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/__init__.py +0 -0
  63. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/metrics/__init__.py +0 -0
  64. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/metrics/coco.py +0 -0
  65. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/metrics/matching.py +0 -0
  66. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/networks/__init__.py +0 -0
  67. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/networks/retinanet_network.py +0 -0
  68. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/__init__.py +0 -0
  69. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/array.py +0 -0
  70. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/box_ops.py +0 -0
  71. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/transforms/dictionary.py +0 -0
  72. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  73. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/__init__.py +0 -0
  74. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/anchor_utils.py +0 -0
  75. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/box_coder.py +0 -0
  76. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/box_selector.py +0 -0
  77. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/detector_utils.py +0 -0
  78. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  79. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/detection/utils/predict_utils.py +0 -0
  80. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/__init__.py +0 -0
  81. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/__init__.py +0 -0
  82. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  83. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  84. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  85. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  86. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/mmars/__init__.py +0 -0
  87. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/mmars/mmars.py +0 -0
  88. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/mmars/model_desc.py +0 -0
  89. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/__init__.py +0 -0
  90. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/__main__.py +0 -0
  91. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  92. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  93. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nnunet/utils.py +0 -0
  94. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nuclick/__init__.py +0 -0
  95. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/nuclick/transforms.py +0 -0
  96. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/__init__.py +0 -0
  97. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/engines/__init__.py +0 -0
  98. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/engines/utils.py +0 -0
  99. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/handlers/__init__.py +0 -0
  100. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/handlers/utils.py +0 -0
  101. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/inferers/__init__.py +0 -0
  102. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/inferers/inferer.py +0 -0
  103. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/losses/__init__.py +0 -0
  104. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  105. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/metrics/__init__.py +0 -0
  106. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  107. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/__init__.py +0 -0
  108. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  109. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/post/array.py +0 -0
  110. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
  111. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  112. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/stain/array.py +0 -0
  113. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  114. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/pathology/utils.py +0 -0
  115. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/__init__.py +0 -0
  116. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/complex_utils.py +0 -0
  117. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  118. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/mri_utils.py +0 -0
  119. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/__init__.py +0 -0
  120. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  121. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  122. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  123. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  124. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  125. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  126. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  127. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  128. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/transforms/array.py +0 -0
  129. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  130. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/tcia/__init__.py +0 -0
  131. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/tcia/label_desc.py +0 -0
  132. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/tcia/utils.py +0 -0
  133. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/__init__.py +0 -0
  134. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/inferer.py +0 -0
  135. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/sampler.py +0 -0
  136. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/apps/vista3d/transforms.py +0 -0
  137. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/__init__.py +0 -0
  138. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/algo_gen.py +0 -0
  139. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/analyzer.py +0 -0
  140. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/operations.py +0 -0
  141. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/seg_summarizer.py +0 -0
  142. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/auto3dseg/utils.py +0 -0
  143. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/__init__.py +0 -0
  144. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/__main__.py +0 -0
  145. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/config_item.py +0 -0
  146. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/config_parser.py +0 -0
  147. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/properties.py +0 -0
  148. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/reference_resolver.py +0 -0
  149. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/scripts.py +0 -0
  150. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/utils.py +0 -0
  151. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/bundle/workflows.py +0 -0
  152. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/print_dependencies.py +0 -0
  153. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/config/type_definitions.py +0 -0
  154. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/__init__.py +0 -0
  155. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/box_utils.py +0 -0
  156. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/csv_saver.py +0 -0
  157. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/dataloader.py +0 -0
  158. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/dataset.py +0 -0
  159. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/dataset_summary.py +0 -0
  160. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/decathlon_datalist.py +0 -0
  161. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/fft_utils.py +0 -0
  162. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/folder_layout.py +0 -0
  163. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/grid_dataset.py +0 -0
  164. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/image_dataset.py +0 -0
  165. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/image_reader.py +0 -0
  166. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/image_writer.py +0 -0
  167. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/iterable_dataset.py +0 -0
  168. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/itk_torch_bridge.py +0 -0
  169. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/meta_obj.py +0 -0
  170. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/meta_tensor.py +0 -0
  171. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/samplers.py +0 -0
  172. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/synthetic.py +0 -0
  173. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/test_time_augmentation.py +0 -0
  174. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/thread_buffer.py +0 -0
  175. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/torchscript_utils.py +0 -0
  176. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/ultrasound_confidence_map.py +0 -0
  177. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/utils.py +0 -0
  178. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/video_dataset.py +0 -0
  179. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/wsi_datasets.py +0 -0
  180. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/data/wsi_reader.py +0 -0
  181. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/__init__.py +0 -0
  182. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/evaluator.py +0 -0
  183. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/trainer.py +0 -0
  184. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/utils.py +0 -0
  185. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/engines/workflow.py +0 -0
  186. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/__init__.py +0 -0
  187. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/client/__init__.py +0 -0
  188. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/client/client_algo.py +0 -0
  189. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/client/monai_algo.py +0 -0
  190. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/__init__.py +0 -0
  191. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/constants.py +0 -0
  192. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/exchange_object.py +0 -0
  193. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/fl/utils/filters.py +0 -0
  194. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/__init__.py +0 -0
  195. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/average_precision.py +0 -0
  196. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/calibration.py +0 -0
  197. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/checkpoint_loader.py +0 -0
  198. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/checkpoint_saver.py +0 -0
  199. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/classification_saver.py +0 -0
  200. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/clearml_handlers.py +0 -0
  201. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/confusion_matrix.py +0 -0
  202. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/decollate_batch.py +0 -0
  203. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/earlystop_handler.py +0 -0
  204. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/garbage_collector.py +0 -0
  205. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/hausdorff_distance.py +0 -0
  206. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/ignite_metric.py +0 -0
  207. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/logfile_handler.py +0 -0
  208. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/lr_schedule_handler.py +0 -0
  209. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/mean_dice.py +0 -0
  210. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/mean_iou.py +0 -0
  211. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/metric_logger.py +0 -0
  212. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/metrics_reloaded_handler.py +0 -0
  213. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/metrics_saver.py +0 -0
  214. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/mlflow_handler.py +0 -0
  215. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/nvtx_handlers.py +0 -0
  216. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/panoptic_quality.py +0 -0
  217. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/parameter_scheduler.py +0 -0
  218. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/postprocessing.py +0 -0
  219. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/probability_maps.py +0 -0
  220. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/regression_metrics.py +0 -0
  221. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/roc_auc.py +0 -0
  222. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/smartcache_handler.py +0 -0
  223. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/stats_handler.py +0 -0
  224. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/surface_distance.py +0 -0
  225. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/tensorboard_handlers.py +0 -0
  226. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/trt_handler.py +0 -0
  227. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/utils.py +0 -0
  228. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/handlers/validation_handler.py +0 -0
  229. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/__init__.py +0 -0
  230. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/merger.py +0 -0
  231. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/splitter.py +0 -0
  232. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/inferers/utils.py +0 -0
  233. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/__init__.py +0 -0
  234. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/adversarial_loss.py +0 -0
  235. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/aucm_loss.py +0 -0
  236. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/barlow_twins.py +0 -0
  237. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/boundary_loss.py +0 -0
  238. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/cldice.py +0 -0
  239. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/contrastive.py +0 -0
  240. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/deform.py +0 -0
  241. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/ds_loss.py +0 -0
  242. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/giou_loss.py +0 -0
  243. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/hausdorff_loss.py +0 -0
  244. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/image_dissimilarity.py +0 -0
  245. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/mcc_loss.py +0 -0
  246. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/multi_scale.py +0 -0
  247. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/nacl_loss.py +0 -0
  248. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/perceptual.py +0 -0
  249. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/spatial_mask.py +0 -0
  250. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/spectral_loss.py +0 -0
  251. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/ssim_loss.py +0 -0
  252. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/losses/sure_loss.py +0 -0
  253. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/__init__.py +0 -0
  254. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/absolute_volume_difference.py +0 -0
  255. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/active_learning_metrics.py +0 -0
  256. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/average_precision.py +0 -0
  257. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/calibration.py +0 -0
  258. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/cumulative_average.py +0 -0
  259. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/f_beta_score.py +0 -0
  260. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/fid.py +0 -0
  261. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/froc.py +0 -0
  262. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/loss_metric.py +0 -0
  263. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/metric.py +0 -0
  264. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/mmd.py +0 -0
  265. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/panoptic_quality.py +0 -0
  266. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/regression.py +0 -0
  267. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/rocauc.py +0 -0
  268. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/metrics/wrapper.py +0 -0
  269. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/__init__.py +0 -0
  270. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/__init__.py +0 -0
  271. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/acti_norm.py +0 -0
  272. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/activation.py +0 -0
  273. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/activation_checkpointing.py +0 -0
  274. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/aspp.py +0 -0
  275. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/attention_utils.py +0 -0
  276. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  277. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/cablock.py +0 -0
  278. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/convolutions.py +0 -0
  279. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/crf.py +0 -0
  280. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/crossattention.py +0 -0
  281. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/denseblock.py +0 -0
  282. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/dints_block.py +0 -0
  283. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/downsample.py +0 -0
  284. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/dynunet_block.py +0 -0
  285. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/encoder.py +0 -0
  286. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/fcn.py +0 -0
  287. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  288. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/fft_utils_t.py +0 -0
  289. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/hyena.py +0 -0
  290. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/localnet_block.py +0 -0
  291. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/mednext_block.py +0 -0
  292. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/mlp.py +0 -0
  293. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/patchembedding.py +0 -0
  294. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/pos_embed_utils.py +0 -0
  295. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/regunet_block.py +0 -0
  296. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  297. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/segresnet_block.py +0 -0
  298. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/selfattention.py +0 -0
  299. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/spade_norm.py +0 -0
  300. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/spatialattention.py +0 -0
  301. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  302. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/text_embedding.py +0 -0
  303. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/transformerblock.py +0 -0
  304. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/unetr_block.py +0 -0
  305. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/upsample.py +0 -0
  306. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/blocks/warp.py +0 -0
  307. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/__init__.py +0 -0
  308. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/conjugate_gradient.py +0 -0
  309. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/convutils.py +0 -0
  310. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/drop_path.py +0 -0
  311. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/factories.py +0 -0
  312. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/filtering.py +0 -0
  313. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/gmm.py +0 -0
  314. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/simplelayers.py +0 -0
  315. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/spatial_transforms.py +0 -0
  316. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/utils.py +0 -0
  317. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/vector_quantizer.py +0 -0
  318. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/layers/weight_init.py +0 -0
  319. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/__init__.py +0 -0
  320. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/ahnet.py +0 -0
  321. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/attentionunet.py +0 -0
  322. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/autoencoder.py +0 -0
  323. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/autoencoderkl.py +0 -0
  324. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/basic_unet.py +0 -0
  325. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/basic_unetplusplus.py +0 -0
  326. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  327. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/classifier.py +0 -0
  328. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/controlnet.py +0 -0
  329. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/daf3d.py +0 -0
  330. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/densenet.py +0 -0
  331. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/diffusion_model_unet.py +0 -0
  332. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/dints.py +0 -0
  333. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/dynunet.py +0 -0
  334. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/efficientnet.py +0 -0
  335. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/flexible_unet.py +0 -0
  336. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/generator.py +0 -0
  337. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/highresnet.py +0 -0
  338. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/hovernet.py +0 -0
  339. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/hyena_nd_unetr.py +0 -0
  340. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  341. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/mednext.py +0 -0
  342. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/milmodel.py +0 -0
  343. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/navit.py +0 -0
  344. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/netadapter.py +0 -0
  345. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/patchgan_discriminator.py +0 -0
  346. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/regressor.py +0 -0
  347. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/regunet.py +0 -0
  348. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/resnet.py +0 -0
  349. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/restormer.py +0 -0
  350. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/segresnet.py +0 -0
  351. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/segresnet_ds.py +0 -0
  352. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/senet.py +0 -0
  353. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  354. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  355. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/spade_network.py +0 -0
  356. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/swin_unetr.py +0 -0
  357. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/torchvision_fc.py +0 -0
  358. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/transchex.py +0 -0
  359. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/transformer.py +0 -0
  360. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/unet.py +0 -0
  361. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/unetr.py +0 -0
  362. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vista3d.py +0 -0
  363. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vit.py +0 -0
  364. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vitautoenc.py +0 -0
  365. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vnet.py +0 -0
  366. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/voxelmorph.py +0 -0
  367. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/nets/vqvae.py +0 -0
  368. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/__init__.py +0 -0
  369. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/ddim.py +0 -0
  370. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/ddpm.py +0 -0
  371. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/pndm.py +0 -0
  372. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/rectified_flow.py +0 -0
  373. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/schedulers/scheduler.py +0 -0
  374. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/networks/trt_compiler.py +0 -0
  375. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/__init__.py +0 -0
  376. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/lr_finder.py +0 -0
  377. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/lr_scheduler.py +0 -0
  378. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/novograd.py +0 -0
  379. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/optimizers/utils.py +0 -0
  380. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/py.typed +0 -0
  381. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/__init__.py +0 -0
  382. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/adaptors.py +0 -0
  383. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/compose.py +0 -0
  384. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/__init__.py +0 -0
  385. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/array.py +0 -0
  386. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/batch.py +0 -0
  387. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/dictionary.py +0 -0
  388. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/croppad/functional.py +0 -0
  389. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/intensity/__init__.py +0 -0
  390. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/intensity/array.py +0 -0
  391. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/intensity/dictionary.py +0 -0
  392. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/inverse_batch_transform.py +0 -0
  393. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/io/__init__.py +0 -0
  394. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/io/array.py +0 -0
  395. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/io/dictionary.py +0 -0
  396. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/__init__.py +0 -0
  397. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/array.py +0 -0
  398. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/dictionary.py +0 -0
  399. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/functional.py +0 -0
  400. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/lazy/utils.py +0 -0
  401. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/meta_utility/__init__.py +0 -0
  402. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/meta_utility/dictionary.py +0 -0
  403. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/nvtx.py +0 -0
  404. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/post/__init__.py +0 -0
  405. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/post/array.py +0 -0
  406. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/regularization/__init__.py +0 -0
  407. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/regularization/array.py +0 -0
  408. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/regularization/dictionary.py +0 -0
  409. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/signal/__init__.py +0 -0
  410. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/signal/array.py +0 -0
  411. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/signal/dictionary.py +0 -0
  412. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/smooth_field/__init__.py +0 -0
  413. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/smooth_field/array.py +0 -0
  414. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/smooth_field/dictionary.py +0 -0
  415. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/__init__.py +0 -0
  416. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/array.py +0 -0
  417. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/dictionary.py +0 -0
  418. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/spatial/functional.py +0 -0
  419. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/traits.py +0 -0
  420. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/transform.py +0 -0
  421. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utility/__init__.py +0 -0
  422. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utility/array.py +0 -0
  423. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utility/dictionary.py +0 -0
  424. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils.py +0 -0
  425. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils_create_transform_ims.py +0 -0
  426. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils_morphological_ops.py +0 -0
  427. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  428. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/__init__.py +0 -0
  429. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/component_store.py +0 -0
  430. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/decorators.py +0 -0
  431. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/deprecate_utils.py +0 -0
  432. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/dist.py +0 -0
  433. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/enums.py +0 -0
  434. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/jupyter_utils.py +0 -0
  435. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/misc.py +0 -0
  436. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/module.py +0 -0
  437. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/nvtx.py +0 -0
  438. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/ordering.py +0 -0
  439. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/profiling.py +0 -0
  440. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/safeeval.py +0 -0
  441. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/state_cacher.py +0 -0
  442. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/tf32.py +0 -0
  443. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/utils/type_conversion.py +0 -0
  444. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/__init__.py +0 -0
  445. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/class_activation_maps.py +0 -0
  446. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/gradient_based.py +0 -0
  447. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/img2tensorboard.py +0 -0
  448. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/occlusion_sensitivity.py +0 -0
  449. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/utils.py +0 -0
  450. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai/visualize/visualizer.py +0 -0
  451. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/dependency_links.txt +0 -0
  452. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/not-zip-safe +0 -0
  453. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/requires.txt +0 -0
  454. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/monai_weekly.egg-info/top_level.txt +0 -0
  455. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/setup.cfg +0 -0
  456. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/setup.py +0 -0
  457. {monai_weekly-1.7.dev2636 → monai_weekly-1.7.dev2637}/versioneer.py +0 -0
@@ -1,5 +1,6 @@
1
1
  include versioneer.py
2
2
  include monai/_version.py
3
+ include monai/config/check_env.py
3
4
 
4
5
  include README.md
5
6
  include LICENSE
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monai-weekly
3
- Version: 1.7.dev2636
3
+ Version: 1.7.dev2637
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__ = "d1306f6d1996cffeb9d10984dd1c056b7fe2ed1d"
139
+ __commit_id__ = "3103fe7c3bed7952685ff05956fb85f112389a4f"
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-09-06T02:14:40+0000",
11
+ "date": "2026-09-13T02:14:44+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "917231cf0496c0a06cc1fe4c78822d570f8a2899",
15
- "version": "1.7.dev2636"
14
+ "full-revisionid": "d127996ee583969c8495840104c3c3326c0614ff",
15
+ "version": "1.7.dev2637"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -202,7 +202,7 @@ class AutoRunner:
202
202
 
203
203
  For the datalist file format, see the description under :py:func:`monai.data.load_decathlon_datalist`.
204
204
  Note that the AutoRunner will use the "validation" key in the datalist file if it exists, otherwise
205
- it will do cross-validation, by default with five folds (this is hardcoded).
205
+ It will do cross-validation with the configured `num_fold` number of folds (default 5).
206
206
  """
207
207
 
208
208
  analyze_params: dict | None
@@ -398,8 +398,15 @@ class AutoRunner:
398
398
  Args:
399
399
  datalist_filename: path to the datalist file.
400
400
 
401
+ Returns:
402
+ Number of existing or generated folds, or 1 when using a validation list.
403
+
404
+ Raises:
405
+ ValueError: If training data is missing, fold IDs are not continuous from zero,
406
+ or the automatic fold count is outside [2, number of training items].
407
+
401
408
  Notes:
402
- If the fold key is not provided, it auto generates 5 folds assignments in the training key list.
409
+ If the fold key is not provided, it generates the configured num_fold assignments (default 5).
403
410
  If validation key list is available, then it assumes a single fold validation.
404
411
  """
405
412
 
@@ -440,7 +447,12 @@ class AutoRunner:
440
447
  num_fold = 1
441
448
 
442
449
  else:
443
- num_fold = 5
450
+ num_fold = int(self.data_src_cfg.get("num_fold", 5))
451
+ if not 2 <= num_fold <= len(datalist["training"]):
452
+ raise ValueError(
453
+ "num_fold must be at least 2 and no greater than the number of training items "
454
+ "when AutoRunner generates folds."
455
+ )
444
456
 
445
457
  warnings.warn(
446
458
  f"Datalist has no folds specified {datalist_filename}..."
@@ -41,7 +41,7 @@ from __future__ import annotations
41
41
 
42
42
  import warnings
43
43
  from collections.abc import Callable, Sequence
44
- from typing import Any
44
+ from typing import TYPE_CHECKING, Any
45
45
 
46
46
  import torch
47
47
  from torch import Tensor, nn
@@ -59,10 +59,13 @@ from monai.inferers import SlidingWindowInferer
59
59
  from monai.networks.nets import resnet
60
60
  from monai.utils import BlendMode, PytorchPadMode, ensure_tuple_rep, optional_import
61
61
 
62
- BalancedPositiveNegativeSampler, _ = optional_import(
63
- "torchvision.models.detection._utils", name="BalancedPositiveNegativeSampler"
64
- )
65
- Matcher, _ = optional_import("torchvision.models.detection._utils", name="Matcher")
62
+ if TYPE_CHECKING:
63
+ from torchvision.models.detection._utils import BalancedPositiveNegativeSampler, Matcher
64
+ else:
65
+ BalancedPositiveNegativeSampler, _ = optional_import(
66
+ "torchvision.models.detection._utils", name="BalancedPositiveNegativeSampler"
67
+ )
68
+ Matcher, _ = optional_import("torchvision.models.detection._utils", name="Matcher")
66
69
 
67
70
 
68
71
  class RetinaNetDetector(nn.Module):
@@ -769,10 +772,11 @@ class RetinaNetDetector(nn.Module):
769
772
  # BELOW_LOW_THRESHOLD = -1, BETWEEN_THRESHOLDS = -2
770
773
  if isinstance(self.proposal_matcher, Matcher):
771
774
  # if torchvision matcher
775
+ matcher: Matcher = self.proposal_matcher
772
776
  match_quality_matrix = self.box_overlap_metric(
773
777
  targets_per_image[self.target_box_key].to(anchors_per_image.device), anchors_per_image
774
778
  )
775
- matched_idxs_per_image = self.proposal_matcher(match_quality_matrix)
779
+ matched_idxs_per_image = matcher(match_quality_matrix)
776
780
  elif isinstance(self.proposal_matcher, ATSSMatcher):
777
781
  # if monai ATSS matcher
778
782
  match_quality_matrix, matched_idxs_per_image = self.proposal_matcher(
@@ -378,7 +378,7 @@ def get_filename_from_url(data_url: str) -> str:
378
378
  filename = re.findall('filename="?([^";]+)"?', content_disposition)
379
379
  if filename:
380
380
  return str(filename[0])
381
- if "drive.google.com" in data_url:
381
+ if urlparse(data_url).netloc == "drive.google.com":
382
382
  response = requests.get(data_url)
383
383
  if "text/html" in response.headers.get("Content-Type", ""):
384
384
  soup = BeautifulSoup(response.text, "html.parser")
@@ -14,7 +14,6 @@ from __future__ import annotations
14
14
  from .deviceconfig import (
15
15
  USE_COMPILED,
16
16
  USE_META_DICT,
17
- IgniteInfo,
18
17
  get_config_values,
19
18
  get_gpu_info,
20
19
  get_optional_config_values,
@@ -0,0 +1,15 @@
1
+ # Copyright (c) MONAI Consortium
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ if __name__ == "__main__":
13
+ import monai
14
+
15
+ monai.config.print_debug_info() # type: ignore
@@ -0,0 +1,184 @@
1
+ #! /usr/bin/env python
2
+
3
+ # Copyright (c) MONAI Consortium
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ # Unless required by applicable law or agreed to in writing, software
9
+ # distributed under the License is distributed on an "AS IS" BASIS,
10
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
11
+ # See the License for the specific language governing permissions and
12
+ # limitations under the License.
13
+
14
+ """
15
+ Script for checking various elements of the runtime environment and printing a large amount of diagnostic information.
16
+
17
+ This is meant to be used for debugging environments used with MONAI, but doesn't directly need MONAI itself. It will
18
+ print information about the environment, including trying to get installed packages, test PyTorch with CUDA, and then
19
+ have MONAI print its debugging information if no errors encountered. If MONAI is not installed this script should still
20
+ work and produce useful information. Only standard libraries are needed in case a bare environment is being used.
21
+
22
+ This can be run as a program with the following options to see all outputs:
23
+
24
+ python check_env.py --env --monai
25
+
26
+ With no options at all this can be used to test that PyTorch is installed and can move a tensor to a device. This is
27
+ useful when creating a fresh test environment and MONAI isn't present yet but it's good practice to valid PyTorch.
28
+ Environment variables can be printed by using `--envars` with `--env`, however the output from this is not checked for
29
+ secrets so users
30
+
31
+ This can also be used remotely with only Python installed to get current environment diagnostic info:
32
+
33
+ curl https://raw.githubusercontent.com/Project-MONAI/MONAI/refs/heads/dev/monai/config/check_env.py | python
34
+ """
35
+
36
+ from __future__ import annotations
37
+
38
+ import argparse
39
+ import getpass
40
+ import multiprocessing
41
+ import os
42
+ import platform
43
+ import shutil
44
+ import subprocess
45
+ import sys
46
+ from functools import partial
47
+
48
+ DESC = """
49
+ Script for checking various elements of the runtime environment and printing a large amount of diagnostic information.
50
+ This is used for debugging your environment by printing out various system statistics and diagnostic information. It
51
+ checks PyTorch and MONAI are installed and functioning. A typical use case is with the `--env` and `--monai` options.
52
+ """
53
+
54
+ USER = getpass.getuser()
55
+ HOST = platform.node()
56
+ efprint = partial(print, flush=True, file=sys.stderr)
57
+
58
+
59
+ def fprint(*args, **kwargs):
60
+ """
61
+ Print with flushing, replacing the username and hostname values with placeholders for better anonymization.
62
+ """
63
+ kwargs["flush"] = True
64
+ content = " ".join(map(str, args))
65
+ content = content.replace(USER, "<user>").replace(HOST, "<host>")
66
+ print(content, **kwargs)
67
+
68
+
69
+ def print_platform():
70
+ """
71
+ Print basic platform information.
72
+ """
73
+ fprint(platform.platform())
74
+ fprint("uname:", list(platform.uname()))
75
+ fprint("CPU:", platform.processor(), "Count:", multiprocessing.cpu_count())
76
+ fprint("Python:", sys.executable, platform.python_implementation(), platform.python_version())
77
+
78
+
79
+ def print_environment_vars():
80
+ """
81
+ Print all environment variables other than a few known pointless ones.
82
+ """
83
+ fprint("Environment:")
84
+ for k, v in os.environ.items():
85
+ if k not in ("LS_COLORS", "PS1", "PS2"):
86
+ fprint(f" {k}:", v)
87
+
88
+
89
+ def print_environment():
90
+ """
91
+ Print the installed environment using `conda` or `pip`, fail if neither are present.
92
+ """
93
+ try:
94
+ cmd = ("conda", "env", "export") if shutil.which("conda") else ("pip", "list")
95
+
96
+ result = subprocess.check_output(cmd, stderr=subprocess.STDOUT)
97
+ fprint(result.decode())
98
+ return True
99
+ except Exception as e:
100
+ efprint(f"Exception encountered getting environment with conda/pip: {e}")
101
+ return False
102
+
103
+
104
+ def check_torch():
105
+ """
106
+ Check PyTorch is installed and a tensor can be created.
107
+ """
108
+ try:
109
+ import torch
110
+
111
+ t = torch.rand(2, 3) * 5
112
+ fprint("PyTorch:", torch.__version__, torch.__path__)
113
+ fprint("Test tensor:", t.flatten())
114
+ return True
115
+ except ImportError:
116
+ efprint("PyTorch not installed")
117
+ return False
118
+
119
+
120
+ def check_torch_cuda():
121
+ """
122
+ Check CUDA capability in PyTorch by moving a tensor to each available device.
123
+ """
124
+ import torch
125
+
126
+ fprint("CUDA version:", torch.version.cuda)
127
+
128
+ try:
129
+ dcount = torch.cuda.device_count()
130
+ fprint("PyTorch GPU Count:", dcount)
131
+
132
+ for d in range(dcount):
133
+ fprint(f" {torch.cuda.get_device_properties(d)}")
134
+ t = torch.rand(2, 3).to(torch.device(f"cuda:{d}")) * 5
135
+ fprint("Test tensor:", t.flatten())
136
+ return True
137
+ except Exception as e:
138
+ efprint(f"PyTorch encountered exception creating GPU tensor on device {d}: {e}")
139
+ return False
140
+
141
+
142
+ def check_monai():
143
+ """
144
+ Check MONAI by importing it then printing its debug info.
145
+ """
146
+ try:
147
+ import monai
148
+
149
+ monai.config.print_debug_info() # type: ignore
150
+ return True
151
+ except ImportError:
152
+ efprint("MONAI not installed")
153
+ return False
154
+
155
+
156
+ if __name__ == "__main__":
157
+ parser = argparse.ArgumentParser(prog="check_env.py", description=DESC.strip())
158
+ parser.add_argument("--env", default=False, action="store_true", help="Print environment info")
159
+ parser.add_argument("--envvars", default=False, action="store_true", help="Include environment variables")
160
+ parser.add_argument("--monai", default=False, action="store_true", help="Print MONAI info")
161
+ args = parser.parse_args()
162
+
163
+ fprint("=" * 10, "Platform Info", "=" * 10)
164
+ print_platform()
165
+
166
+ if args.env:
167
+ fprint("=" * 10, "Checking Environment", "=" * 10)
168
+ if args.envvars:
169
+ print_environment_vars()
170
+ print_environment()
171
+
172
+ fprint("=" * 10, "Checking PyTorch", "=" * 10)
173
+
174
+ if not check_torch():
175
+ efprint("Exiting early, no valid PyTorch install found.")
176
+ sys.exit(1)
177
+
178
+ if not check_torch_cuda():
179
+ efprint("Exiting early, PyTorch encountered CUDA error.")
180
+ sys.exit(1)
181
+
182
+ if args.monai:
183
+ fprint("=" * 10, "Checking MONAI", "=" * 10)
184
+ check_monai()
@@ -23,8 +23,6 @@ import numpy as np
23
23
  import torch
24
24
 
25
25
  import monai
26
- from monai.utils.deprecate_utils import deprecated
27
- from monai.utils.enums import IgniteInfo as _IgniteInfo
28
26
  from monai.utils.module import OptionalImportError, get_package_version, optional_import
29
27
 
30
28
  try:
@@ -47,9 +45,21 @@ __all__ = [
47
45
  "print_debug_info",
48
46
  "USE_COMPILED",
49
47
  "USE_META_DICT",
50
- "IgniteInfo",
51
48
  ]
52
49
 
50
+ USER = getpass.getuser()
51
+ HOST = platform.node()
52
+
53
+
54
+ def fprint(*args, **kwargs):
55
+ """
56
+ Print with flushing, replacing the username and hostname values with placeholders for better anonymization.
57
+ """
58
+ kwargs["flush"] = True
59
+ content = " ".join(map(str, args))
60
+ content = content.replace(USER, "<user>").replace(HOST, "<host>")
61
+ print(content, **kwargs)
62
+
53
63
 
54
64
  def get_config_values():
55
65
  """
@@ -100,17 +110,15 @@ def print_config(file=sys.stdout):
100
110
  file: `print()` text stream file. Defaults to `sys.stdout`.
101
111
  """
102
112
  for k, v in get_config_values().items():
103
- print(f"{k} version: {v}", file=file, flush=True)
104
- print(f"MONAI flags: HAS_EXT = {HAS_EXT}, USE_COMPILED = {USE_COMPILED}, USE_META_DICT = {USE_META_DICT}")
105
- print(f"MONAI rev id: {monai.__revision_id__}")
106
- username = getpass.getuser()
107
- masked_file_path = re.sub(username, "<username>", monai.__file__)
108
- print(f"MONAI __file__: {masked_file_path}", file=file, flush=True)
109
- print("\nOptional dependencies:", file=file, flush=True)
113
+ fprint(f"{k} version: {v}", file=file)
114
+ fprint(f"MONAI flags: {HAS_EXT=}, {USE_COMPILED=}, {USE_META_DICT=}", file=file)
115
+ fprint(f"MONAI rev id: {monai.__revision_id__}", file=file)
116
+ fprint(f"MONAI __file__: {monai.__file__}", file=file)
117
+ fprint("\nOptional dependencies:", file=file)
110
118
  for k, v in get_optional_config_values().items():
111
- print(f"{k} version: {v}", file=file, flush=True)
112
- print("\nFor details about installing the optional dependencies, please visit:", file=file, flush=True)
113
- print(
119
+ fprint(f"{k} version: {v}", file=file)
120
+ fprint("\nFor details about installing the optional dependencies, please visit:", file=file)
121
+ fprint(
114
122
  " https://monai.readthedocs.io/en/latest/installation.html#installing-the-recommended-dependencies\n",
115
123
  file=file,
116
124
  flush=True,
@@ -191,10 +199,10 @@ def print_system_info(file: TextIO = sys.stdout) -> None:
191
199
  file: `print()` text stream file. Defaults to `sys.stdout`.
192
200
  """
193
201
  if not has_psutil:
194
- print("`psutil` required for `print_system_info`", file=file, flush=True)
202
+ fprint("`psutil` required for `print_system_info`", file=file)
195
203
  else:
196
204
  for k, v in get_system_info().items():
197
- print(f"{k}: {v}", file=file, flush=True)
205
+ fprint(f"{k}: {v}", file=file)
198
206
 
199
207
 
200
208
  def get_gpu_info() -> OrderedDict:
@@ -239,7 +247,7 @@ def print_gpu_info(file: TextIO = sys.stdout) -> None:
239
247
  file: `print()` text stream file. Defaults to `sys.stdout`.
240
248
  """
241
249
  for k, v in get_gpu_info().items():
242
- print(f"{k}: {v}", file=file, flush=True)
250
+ fprint(f"{k}: {v}", file=file)
243
251
 
244
252
 
245
253
  def print_debug_info(file: TextIO = sys.stdout) -> None:
@@ -249,26 +257,19 @@ def print_debug_info(file: TextIO = sys.stdout) -> None:
249
257
  Args:
250
258
  file: `print()` text stream file. Defaults to `sys.stdout`.
251
259
  """
252
- print("================================", file=file, flush=True)
253
- print("Printing MONAI config...", file=file, flush=True)
254
- print("================================", file=file, flush=True)
260
+ fprint("================================", file=file)
261
+ fprint("Printing MONAI config...", file=file)
262
+ fprint("================================", file=file)
255
263
  print_config(file)
256
- print("\n================================", file=file, flush=True)
257
- print("Printing system config...")
258
- print("================================", file=file, flush=True)
264
+ fprint("\n================================", file=file)
265
+ fprint("Printing system config...", file=file)
266
+ fprint("================================", file=file)
259
267
  print_system_info(file)
260
- print("\n================================", file=file, flush=True)
261
- print("Printing GPU config...")
262
- print("================================", file=file, flush=True)
268
+ fprint("\n================================", file=file)
269
+ fprint("Printing GPU config...", file=file)
270
+ fprint("================================", file=file)
263
271
  print_gpu_info(file)
264
272
 
265
273
 
266
- @deprecated(since="1.4.0", removed="1.6.0", msg_suffix="Please use `monai.utils.enums.IgniteInfo` instead.")
267
- class IgniteInfo:
268
- """Deprecated Import of IgniteInfo enum, which was moved to `monai.utils.enums.IgniteInfo`."""
269
-
270
- OPT_IMPORT_VERSION = _IgniteInfo.OPT_IMPORT_VERSION
271
-
272
-
273
274
  if __name__ == "__main__":
274
275
  print_debug_info()
@@ -1773,7 +1773,7 @@ class ControlNetLatentDiffusionInferer(ControlNetDiffusionInferer):
1773
1773
  super().__init__(scheduler=scheduler)
1774
1774
  self.scale_factor = scale_factor
1775
1775
  if (ldm_latent_shape is None) ^ (autoencoder_latent_shape is None):
1776
- raise ValueError("If ldm_latent_shape is None, autoencoder_latent_shape must be None" "and vice versa.")
1776
+ raise ValueError("If ldm_latent_shape is None, autoencoder_latent_shape must be None and vice versa.")
1777
1777
  self.ldm_latent_shape = ldm_latent_shape
1778
1778
  self.autoencoder_latent_shape = autoencoder_latent_shape
1779
1779
  if self.ldm_latent_shape is not None and self.autoencoder_latent_shape is not None:
@@ -22,7 +22,8 @@ from torch.nn.modules.loss import _Loss
22
22
 
23
23
  from monai.losses.focal_loss import FocalLoss
24
24
  from monai.losses.spatial_mask import MaskedLoss
25
- from monai.losses.utils import compute_tp_fp_fn
25
+ from monai.losses.utils import compute_tp_fp_fn, mask_loss_inputs
26
+ from monai.metrics.utils import create_ignore_mask
26
27
  from monai.networks import one_hot
27
28
  from monai.utils import DiceCEReduction, LossReduction, Weight, look_up_option
28
29
 
@@ -67,6 +68,7 @@ class DiceLoss(_Loss):
67
68
  batch: bool = False,
68
69
  weight: Sequence[float] | float | int | torch.Tensor | None = None,
69
70
  soft_label: bool = False,
71
+ ignore_index: int | None = None,
70
72
  ) -> None:
71
73
  """
72
74
  Args:
@@ -100,6 +102,10 @@ class DiceLoss(_Loss):
100
102
  The value/values should be no less than 0. Defaults to None.
101
103
  soft_label: whether the target contains non-binary values (soft labels) or not.
102
104
  If True a soft label formulation of the loss will be used.
105
+ ignore_index: single integer class index (or sentinel value) to ignore from the loss computation.
106
+ Voxels with this label are excluded from the loss, which is useful for padding, unlabeled regions,
107
+ or boundary artifacts. For federated or aggregated settings, ensure all clients use the same
108
+ ignore_index to keep loss values comparable.
103
109
 
104
110
  Raises:
105
111
  TypeError: When ``other_act`` is not an ``Optional[Callable]``.
@@ -122,6 +128,7 @@ class DiceLoss(_Loss):
122
128
  self.smooth_nr = float(smooth_nr)
123
129
  self.smooth_dr = float(smooth_dr)
124
130
  self.batch = batch
131
+ self.ignore_index = ignore_index
125
132
  weight = torch.as_tensor(weight) if weight is not None else None
126
133
  self.register_buffer("class_weight", weight)
127
134
  self.class_weight: None | torch.Tensor
@@ -163,10 +170,15 @@ class DiceLoss(_Loss):
163
170
  if self.other_act is not None:
164
171
  input = self.other_act(input)
165
172
 
173
+ original_target = target
174
+
166
175
  if self.to_onehot_y:
167
176
  if n_pred_ch == 1:
168
177
  warnings.warn("single channel prediction, `to_onehot_y=True` ignored.", stacklevel=2)
169
178
  else:
179
+ if self.ignore_index is not None:
180
+ if self.ignore_index < 0 or self.ignore_index >= n_pred_ch:
181
+ target = torch.where(target == self.ignore_index, torch.zeros_like(target), target)
170
182
  target = one_hot(target, num_classes=n_pred_ch)
171
183
 
172
184
  if not self.include_background:
@@ -177,9 +189,13 @@ class DiceLoss(_Loss):
177
189
  target = target[:, 1:]
178
190
  input = input[:, 1:]
179
191
 
192
+ mask = create_ignore_mask(original_target, self.ignore_index)
193
+
180
194
  if target.shape != input.shape:
181
195
  raise AssertionError(f"ground truth has different shape ({target.shape}) from input ({input.shape})")
182
196
 
197
+ input, target = mask_loss_inputs(input, target, self.ignore_index, mask=mask)
198
+
183
199
  # reducing only spatial dimensions (not batch nor channels)
184
200
  reduce_axis: list[int] = torch.arange(2, len(input.shape)).tolist()
185
201
  if self.batch: