monai-weekly 1.7.dev2638__tar.gz → 1.7.dev2640__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (459) hide show
  1. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/PKG-INFO +1 -1
  2. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/__init__.py +1 -1
  3. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_version.py +3 -3
  4. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/bundle_gen.py +1 -1
  5. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/matching.py +1 -1
  6. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/dictionary.py +7 -5
  7. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/post/dictionary.py +2 -2
  8. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/dataset_summary.py +16 -3
  9. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/image_writer.py +3 -2
  10. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/synthetic.py +1 -1
  11. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/inferer.py +152 -39
  12. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/barlow_twins.py +1 -1
  13. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/utils.py +14 -15
  14. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/pos_embed_utils.py +1 -1
  15. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/patchgan_discriminator.py +1 -1
  16. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/ddpm.py +1 -1
  17. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/dictionary.py +9 -14
  18. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/functional.py +11 -2
  19. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils.py +2 -1
  20. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/__init__.py +1 -0
  21. monai_weekly-1.7.dev2640/monai/utils/compare_sources.py +107 -0
  22. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/safeeval.py +17 -2
  23. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/PKG-INFO +1 -1
  24. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/SOURCES.txt +1 -0
  25. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/LICENSE +0 -0
  26. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/MANIFEST.in +0 -0
  27. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/README.md +0 -0
  28. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/__init__.py +0 -0
  29. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm.cpp +0 -0
  30. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm.h +0 -0
  31. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  32. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  33. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  34. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/_extensions/loader.py +0 -0
  35. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/__init__.py +0 -0
  36. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/__init__.py +0 -0
  37. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/__main__.py +0 -0
  38. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/auto_runner.py +0 -0
  39. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  40. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  41. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  42. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/transforms.py +0 -0
  43. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/auto3dseg/utils.py +0 -0
  44. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/datasets.py +0 -0
  45. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepedit/__init__.py +0 -0
  46. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepedit/interaction.py +0 -0
  47. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepedit/transforms.py +0 -0
  48. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/__init__.py +0 -0
  49. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/dataset.py +0 -0
  50. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/interaction.py +0 -0
  51. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/deepgrow/transforms.py +0 -0
  52. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/__init__.py +0 -0
  53. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/__init__.py +0 -0
  54. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/metrics/coco.py +0 -0
  55. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/networks/__init__.py +0 -0
  56. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/networks/retinanet_detector.py +0 -0
  57. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/networks/retinanet_network.py +0 -0
  58. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/__init__.py +0 -0
  59. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/array.py +0 -0
  60. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/transforms/box_ops.py +0 -0
  61. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  62. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/__init__.py +0 -0
  63. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/anchor_utils.py +0 -0
  64. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/box_coder.py +0 -0
  65. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/box_selector.py +0 -0
  66. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/detector_utils.py +0 -0
  67. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  68. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/detection/utils/predict_utils.py +0 -0
  69. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/__init__.py +0 -0
  70. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/__init__.py +0 -0
  71. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  72. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  73. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  74. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  75. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/mmars/__init__.py +0 -0
  76. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/mmars/mmars.py +0 -0
  77. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/mmars/model_desc.py +0 -0
  78. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/__init__.py +0 -0
  79. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/__main__.py +0 -0
  80. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  81. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  82. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nnunet/utils.py +0 -0
  83. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nuclick/__init__.py +0 -0
  84. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/nuclick/transforms.py +0 -0
  85. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/__init__.py +0 -0
  86. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/engines/__init__.py +0 -0
  87. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/engines/utils.py +0 -0
  88. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/handlers/__init__.py +0 -0
  89. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/handlers/utils.py +0 -0
  90. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/inferers/__init__.py +0 -0
  91. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/inferers/inferer.py +0 -0
  92. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/losses/__init__.py +0 -0
  93. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  94. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/metrics/__init__.py +0 -0
  95. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  96. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/__init__.py +0 -0
  97. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  98. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/post/array.py +0 -0
  99. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  100. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/stain/array.py +0 -0
  101. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  102. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/pathology/utils.py +0 -0
  103. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/__init__.py +0 -0
  104. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/complex_utils.py +0 -0
  105. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  106. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/mri_utils.py +0 -0
  107. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/__init__.py +0 -0
  108. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  109. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  110. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  111. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  112. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  113. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  114. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  115. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  116. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/transforms/array.py +0 -0
  117. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  118. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/tcia/__init__.py +0 -0
  119. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/tcia/label_desc.py +0 -0
  120. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/tcia/utils.py +0 -0
  121. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/utils.py +0 -0
  122. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/__init__.py +0 -0
  123. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/inferer.py +0 -0
  124. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/sampler.py +0 -0
  125. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/apps/vista3d/transforms.py +0 -0
  126. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/__init__.py +0 -0
  127. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/algo_gen.py +0 -0
  128. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/analyzer.py +0 -0
  129. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/operations.py +0 -0
  130. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/seg_summarizer.py +0 -0
  131. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/auto3dseg/utils.py +0 -0
  132. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/__init__.py +0 -0
  133. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/__main__.py +0 -0
  134. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/config_item.py +0 -0
  135. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/config_parser.py +0 -0
  136. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/properties.py +0 -0
  137. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/reference_resolver.py +0 -0
  138. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/scripts.py +0 -0
  139. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/utils.py +0 -0
  140. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/bundle/workflows.py +0 -0
  141. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/__init__.py +0 -0
  142. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/__main__.py +0 -0
  143. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/check_env.py +0 -0
  144. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/deviceconfig.py +0 -0
  145. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/print_dependencies.py +0 -0
  146. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/config/type_definitions.py +0 -0
  147. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/__init__.py +0 -0
  148. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/box_utils.py +0 -0
  149. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/csv_saver.py +0 -0
  150. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/dataloader.py +0 -0
  151. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/dataset.py +0 -0
  152. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/decathlon_datalist.py +0 -0
  153. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/fft_utils.py +0 -0
  154. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/folder_layout.py +0 -0
  155. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/grid_dataset.py +0 -0
  156. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/image_dataset.py +0 -0
  157. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/image_reader.py +0 -0
  158. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/iterable_dataset.py +0 -0
  159. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/itk_torch_bridge.py +0 -0
  160. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/meta_obj.py +0 -0
  161. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/meta_tensor.py +0 -0
  162. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/nvimgcodec_pydicom_plugin.py +0 -0
  163. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/samplers.py +0 -0
  164. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/test_time_augmentation.py +0 -0
  165. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/thread_buffer.py +0 -0
  166. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/torchscript_utils.py +0 -0
  167. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/ultrasound_confidence_map.py +0 -0
  168. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/utils.py +0 -0
  169. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/video_dataset.py +0 -0
  170. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/wsi_datasets.py +0 -0
  171. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/data/wsi_reader.py +0 -0
  172. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/__init__.py +0 -0
  173. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/evaluator.py +0 -0
  174. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/trainer.py +0 -0
  175. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/utils.py +0 -0
  176. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/engines/workflow.py +0 -0
  177. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/__init__.py +0 -0
  178. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/client/__init__.py +0 -0
  179. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/client/client_algo.py +0 -0
  180. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/client/monai_algo.py +0 -0
  181. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/__init__.py +0 -0
  182. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/constants.py +0 -0
  183. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/exchange_object.py +0 -0
  184. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/fl/utils/filters.py +0 -0
  185. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/__init__.py +0 -0
  186. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/average_precision.py +0 -0
  187. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/calibration.py +0 -0
  188. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/checkpoint_loader.py +0 -0
  189. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/checkpoint_saver.py +0 -0
  190. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/classification_saver.py +0 -0
  191. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/clearml_handlers.py +0 -0
  192. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/confusion_matrix.py +0 -0
  193. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/decollate_batch.py +0 -0
  194. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/earlystop_handler.py +0 -0
  195. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/garbage_collector.py +0 -0
  196. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/hausdorff_distance.py +0 -0
  197. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/ignite_metric.py +0 -0
  198. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/logfile_handler.py +0 -0
  199. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/lr_schedule_handler.py +0 -0
  200. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/mean_dice.py +0 -0
  201. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/mean_iou.py +0 -0
  202. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/metric_logger.py +0 -0
  203. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/metrics_reloaded_handler.py +0 -0
  204. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/metrics_saver.py +0 -0
  205. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/mlflow_handler.py +0 -0
  206. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/nvtx_handlers.py +0 -0
  207. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/panoptic_quality.py +0 -0
  208. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/parameter_scheduler.py +0 -0
  209. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/postprocessing.py +0 -0
  210. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/probability_maps.py +0 -0
  211. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/regression_metrics.py +0 -0
  212. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/roc_auc.py +0 -0
  213. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/smartcache_handler.py +0 -0
  214. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/stats_handler.py +0 -0
  215. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/surface_distance.py +0 -0
  216. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/tensorboard_handlers.py +0 -0
  217. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/trt_handler.py +0 -0
  218. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/utils.py +0 -0
  219. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/handlers/validation_handler.py +0 -0
  220. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/__init__.py +0 -0
  221. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/merger.py +0 -0
  222. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/splitter.py +0 -0
  223. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/inferers/utils.py +0 -0
  224. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/__init__.py +0 -0
  225. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/adversarial_loss.py +0 -0
  226. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/aucm_loss.py +0 -0
  227. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/boundary_loss.py +0 -0
  228. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/cldice.py +0 -0
  229. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/contrastive.py +0 -0
  230. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/deform.py +0 -0
  231. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/dice.py +0 -0
  232. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/ds_loss.py +0 -0
  233. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/focal_loss.py +0 -0
  234. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/giou_loss.py +0 -0
  235. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/hausdorff_loss.py +0 -0
  236. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/image_dissimilarity.py +0 -0
  237. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/mcc_loss.py +0 -0
  238. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/multi_scale.py +0 -0
  239. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/nacl_loss.py +0 -0
  240. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/perceptual.py +0 -0
  241. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/spatial_mask.py +0 -0
  242. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/spectral_loss.py +0 -0
  243. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/ssim_loss.py +0 -0
  244. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/sure_loss.py +0 -0
  245. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/tversky.py +0 -0
  246. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/unified_focal_loss.py +0 -0
  247. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/losses/utils.py +0 -0
  248. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/__init__.py +0 -0
  249. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/absolute_volume_difference.py +0 -0
  250. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/active_learning_metrics.py +0 -0
  251. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/average_precision.py +0 -0
  252. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/calibration.py +0 -0
  253. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/confusion_matrix.py +0 -0
  254. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/cumulative_average.py +0 -0
  255. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/embedding_collapse.py +0 -0
  256. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/f_beta_score.py +0 -0
  257. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/fid.py +0 -0
  258. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/froc.py +0 -0
  259. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/generalized_dice.py +0 -0
  260. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/hausdorff_distance.py +0 -0
  261. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/loss_metric.py +0 -0
  262. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/meandice.py +0 -0
  263. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/meaniou.py +0 -0
  264. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/metric.py +0 -0
  265. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/mmd.py +0 -0
  266. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/panoptic_quality.py +0 -0
  267. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/regression.py +0 -0
  268. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/rocauc.py +0 -0
  269. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/surface_dice.py +0 -0
  270. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/surface_distance.py +0 -0
  271. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/metrics/wrapper.py +0 -0
  272. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/__init__.py +0 -0
  273. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/__init__.py +0 -0
  274. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/acti_norm.py +0 -0
  275. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/activation.py +0 -0
  276. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/activation_checkpointing.py +0 -0
  277. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/aspp.py +0 -0
  278. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/attention_utils.py +0 -0
  279. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  280. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/cablock.py +0 -0
  281. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/convolutions.py +0 -0
  282. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/crf.py +0 -0
  283. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/crossattention.py +0 -0
  284. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/denseblock.py +0 -0
  285. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/dints_block.py +0 -0
  286. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/downsample.py +0 -0
  287. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/dynunet_block.py +0 -0
  288. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/encoder.py +0 -0
  289. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/fcn.py +0 -0
  290. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  291. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/fft_utils_t.py +0 -0
  292. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/hyena.py +0 -0
  293. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/localnet_block.py +0 -0
  294. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/mednext_block.py +0 -0
  295. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/mlp.py +0 -0
  296. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/patchembedding.py +0 -0
  297. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/regunet_block.py +0 -0
  298. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  299. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/segresnet_block.py +0 -0
  300. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/selfattention.py +0 -0
  301. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/spade_norm.py +0 -0
  302. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/spatialattention.py +0 -0
  303. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  304. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/text_embedding.py +0 -0
  305. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/transformerblock.py +0 -0
  306. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/unetr_block.py +0 -0
  307. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/upsample.py +0 -0
  308. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/blocks/warp.py +0 -0
  309. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/__init__.py +0 -0
  310. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/conjugate_gradient.py +0 -0
  311. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/convutils.py +0 -0
  312. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/drop_path.py +0 -0
  313. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/factories.py +0 -0
  314. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/filtering.py +0 -0
  315. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/gmm.py +0 -0
  316. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/simplelayers.py +0 -0
  317. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/spatial_transforms.py +0 -0
  318. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/utils.py +0 -0
  319. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/vector_quantizer.py +0 -0
  320. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/layers/weight_init.py +0 -0
  321. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/__init__.py +0 -0
  322. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/ahnet.py +0 -0
  323. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/attentionunet.py +0 -0
  324. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/autoencoder.py +0 -0
  325. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/autoencoderkl.py +0 -0
  326. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/basic_unet.py +0 -0
  327. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/basic_unetplusplus.py +0 -0
  328. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  329. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/classifier.py +0 -0
  330. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/controlnet.py +0 -0
  331. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/daf3d.py +0 -0
  332. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/densenet.py +0 -0
  333. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/diffusion_model_unet.py +0 -0
  334. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/dints.py +0 -0
  335. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/dynunet.py +0 -0
  336. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/efficientnet.py +0 -0
  337. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/flexible_unet.py +0 -0
  338. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/fullyconnectednet.py +0 -0
  339. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/generator.py +0 -0
  340. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/highresnet.py +0 -0
  341. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/hovernet.py +0 -0
  342. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/hyena_nd_unetr.py +0 -0
  343. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  344. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/mednext.py +0 -0
  345. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/milmodel.py +0 -0
  346. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/navit.py +0 -0
  347. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/netadapter.py +0 -0
  348. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/quicknat.py +0 -0
  349. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/regressor.py +0 -0
  350. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/regunet.py +0 -0
  351. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/resnet.py +0 -0
  352. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/restormer.py +0 -0
  353. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/segresnet.py +0 -0
  354. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/segresnet_ds.py +0 -0
  355. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/senet.py +0 -0
  356. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  357. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  358. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/spade_network.py +0 -0
  359. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/swin_unetr.py +0 -0
  360. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/torchvision_fc.py +0 -0
  361. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/transchex.py +0 -0
  362. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/transformer.py +0 -0
  363. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/unet.py +0 -0
  364. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/unetr.py +0 -0
  365. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/varautoencoder.py +0 -0
  366. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vista3d.py +0 -0
  367. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vit.py +0 -0
  368. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vitautoenc.py +0 -0
  369. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vnet.py +0 -0
  370. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/voxelmorph.py +0 -0
  371. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/nets/vqvae.py +0 -0
  372. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/__init__.py +0 -0
  373. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/ddim.py +0 -0
  374. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/pndm.py +0 -0
  375. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/rectified_flow.py +0 -0
  376. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/schedulers/scheduler.py +0 -0
  377. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/trt_compiler.py +0 -0
  378. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/networks/utils.py +0 -0
  379. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/__init__.py +0 -0
  380. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/lr_finder.py +0 -0
  381. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/lr_scheduler.py +0 -0
  382. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/novograd.py +0 -0
  383. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/optimizers/utils.py +0 -0
  384. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/py.typed +0 -0
  385. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/__init__.py +0 -0
  386. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/adaptors.py +0 -0
  387. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/compose.py +0 -0
  388. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/__init__.py +0 -0
  389. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/array.py +0 -0
  390. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/batch.py +0 -0
  391. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/dictionary.py +0 -0
  392. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/croppad/functional.py +0 -0
  393. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/intensity/__init__.py +0 -0
  394. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/intensity/array.py +0 -0
  395. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/intensity/dictionary.py +0 -0
  396. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/inverse.py +0 -0
  397. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/inverse_batch_transform.py +0 -0
  398. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/io/__init__.py +0 -0
  399. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/io/array.py +0 -0
  400. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/io/dictionary.py +0 -0
  401. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/__init__.py +0 -0
  402. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/array.py +0 -0
  403. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/dictionary.py +0 -0
  404. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/functional.py +0 -0
  405. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/lazy/utils.py +0 -0
  406. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/meta_utility/__init__.py +0 -0
  407. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/meta_utility/dictionary.py +0 -0
  408. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/nvtx.py +0 -0
  409. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/post/__init__.py +0 -0
  410. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/post/array.py +0 -0
  411. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/post/dictionary.py +0 -0
  412. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/regularization/__init__.py +0 -0
  413. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/regularization/array.py +0 -0
  414. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/regularization/dictionary.py +0 -0
  415. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/signal/__init__.py +0 -0
  416. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/signal/array.py +0 -0
  417. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/signal/dictionary.py +0 -0
  418. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/smooth_field/__init__.py +0 -0
  419. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/smooth_field/array.py +0 -0
  420. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/smooth_field/dictionary.py +0 -0
  421. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/__init__.py +0 -0
  422. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/spatial/array.py +0 -0
  423. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/traits.py +0 -0
  424. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/transform.py +0 -0
  425. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utility/__init__.py +0 -0
  426. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utility/array.py +0 -0
  427. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utility/dictionary.py +0 -0
  428. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils_create_transform_ims.py +0 -0
  429. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils_morphological_ops.py +0 -0
  430. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  431. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/component_store.py +0 -0
  432. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/decorators.py +0 -0
  433. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/deprecate_utils.py +0 -0
  434. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/dist.py +0 -0
  435. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/enums.py +0 -0
  436. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/jupyter_utils.py +0 -0
  437. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/misc.py +0 -0
  438. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/module.py +0 -0
  439. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/nvtx.py +0 -0
  440. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/ordering.py +0 -0
  441. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/profiling.py +0 -0
  442. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/state_cacher.py +0 -0
  443. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/tf32.py +0 -0
  444. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/utils/type_conversion.py +0 -0
  445. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/__init__.py +0 -0
  446. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/class_activation_maps.py +0 -0
  447. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/gradient_based.py +0 -0
  448. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/img2tensorboard.py +0 -0
  449. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/occlusion_sensitivity.py +0 -0
  450. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/utils.py +0 -0
  451. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai/visualize/visualizer.py +0 -0
  452. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/dependency_links.txt +0 -0
  453. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/not-zip-safe +0 -0
  454. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/requires.txt +0 -0
  455. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/monai_weekly.egg-info/top_level.txt +0 -0
  456. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/pyproject.toml +0 -0
  457. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/setup.cfg +0 -0
  458. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/setup.py +0 -0
  459. {monai_weekly-1.7.dev2638 → monai_weekly-1.7.dev2640}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monai-weekly
3
- Version: 1.7.dev2638
3
+ Version: 1.7.dev2640
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__ = "f2ec87ae9b536baaeca1d6bcc2b6349369e2af8f"
139
+ __commit_id__ = "b229330ff12ea9a60b52f6ebfed256331aec71e0"
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-09-20T02:14:58+0000",
11
+ "date": "2026-10-04T02:49:09+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "43b604323beaeca5718d23b2ba4c130da08d84b8",
15
- "version": "1.7.dev2638"
14
+ "full-revisionid": "e06f55fca00aba1d14a62c329e1f16d77b871297",
15
+ "version": "1.7.dev2640"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -491,7 +491,7 @@ class BundleGen(AlgoGen):
491
491
  mlflow_tracking_uri: a tracking URI for MLflow server which could be local directory or address of
492
492
  the remote tracking Server; MLflow runs will be recorded locally in algorithms' model folder if
493
493
  the value is None.
494
- mlfow_experiment_name: a string to specify the experiment name for MLflow server.
494
+ mlflow_experiment_name: a string to specify the experiment name for MLflow server.
495
495
  .. code-block:: bash
496
496
 
497
497
  python -m monai.apps.auto3dseg BundleGen generate --data_stats_filename="../algorithms/datastats.yaml"
@@ -193,7 +193,7 @@ def _matching_no_gt(
193
193
 
194
194
  Args:
195
195
  iou_thresholds: defined which IoU thresholds should be evaluated
196
- dt_scores: predicted scores
196
+ pred_scores: predicted scores
197
197
  max_detections: maximum number of allowed detections per image.
198
198
  This functions uses this parameter to stay consistent with
199
199
  the actual matching function which needs this limit.
@@ -37,7 +37,6 @@ from monai.apps.detection.transforms.array import (
37
37
  StandardizeEmptyBox,
38
38
  ZoomBox,
39
39
  )
40
- from monai.apps.detection.transforms.box_ops import convert_box_to_mask
41
40
  from monai.config import KeysCollection, SequenceStr
42
41
  from monai.config.type_definitions import DtypeLike, NdarrayOrTensor
43
42
  from monai.data.box_utils import COMPUTE_DTYPE, BoxMode, clip_boxes_to_image
@@ -1154,10 +1153,13 @@ class RandCropBoxByPosNegLabeld(Randomizable, MapTransform):
1154
1153
  # As along as the cropped patch contains a box, it is considered as a foreground patch.
1155
1154
  # Positions within extended_boxes are crop centers for foreground patches
1156
1155
  extended_boxes_np = self.generate_fg_center_boxes_np(boxes, image_size)
1157
- mask_img = convert_box_to_mask(
1158
- extended_boxes_np, np.ones(extended_boxes_np.shape[0]), image_size, bg_label=0, ellipse_mask=False
1159
- )
1160
- mask_img = np.amax(mask_img, axis=0, keepdims=True)[0:1, ...]
1156
+ spatial_dims = len(image_size)
1157
+ mask_img = np.zeros((1,) + tuple(image_size), dtype=np.int16)
1158
+ for b in range(extended_boxes_np.shape[0]):
1159
+ slicing = (0,) + tuple(
1160
+ slice(extended_boxes_np[b, d], extended_boxes_np[b, d + spatial_dims]) for d in range(spatial_dims)
1161
+ )
1162
+ mask_img[slicing] = 1
1161
1163
  fg_indices_, bg_indices_ = map_binary_to_indices(mask_img, thresh_image, self.image_threshold)
1162
1164
  else:
1163
1165
  fg_indices_ = fg_indices
@@ -536,7 +536,7 @@ class HoVerNetInstanceMapPostProcessingd(Transform):
536
536
 
537
537
  for k in [self.instance_info_key, self.instance_map_key]:
538
538
  if k in d:
539
- raise ValueError("The output key ['{k}'] already exists in the input dictionary!")
539
+ raise ValueError(f"The output key ['{k}'] already exists in the input dictionary!")
540
540
 
541
541
  d[self.instance_info_key], d[self.instance_map_key] = self.instance_map_post_process(
542
542
  d[self.nuclear_prediction_key], d[self.hover_map_key]
@@ -590,7 +590,7 @@ class HoVerNetNuclearTypePostProcessingd(Transform):
590
590
  )
591
591
  if self.return_type_map:
592
592
  if self.type_map_key in d:
593
- raise ValueError("The output key ['{self.type_map_key}'] already exists in the input dictionary!")
593
+ raise ValueError(f"The output key ['{self.type_map_key}'] already exists in the input dictionary!")
594
594
  d[self.type_map_key] = type_map
595
595
 
596
596
  return d
@@ -159,6 +159,8 @@ class DatasetSummary:
159
159
  label, *_ = convert_data_type(data=label, output_type=torch.Tensor)
160
160
 
161
161
  image_foreground = image[torch.where(label > foreground_threshold)]
162
+ if image_foreground.numel() == 0:
163
+ continue
162
164
 
163
165
  voxel_max.append(image_foreground.max().item())
164
166
  voxel_min.append(image_foreground.min().item())
@@ -166,6 +168,11 @@ class DatasetSummary:
166
168
  voxel_sum += image_foreground.sum()
167
169
  voxel_square_sum += torch.square(image_foreground).sum()
168
170
 
171
+ if voxel_ct == 0:
172
+ raise ValueError(
173
+ f"No foreground voxels found in any sample with {foreground_threshold=}; "
174
+ "set foreground_threshold=-1 to compute statistics over whole images."
175
+ )
169
176
  self.data_max, self.data_min = max(voxel_max), min(voxel_min)
170
177
  self.data_mean = (voxel_sum / voxel_ct).item()
171
178
  self.data_std = (torch.sqrt(voxel_square_sum / voxel_ct - self.data_mean**2)).item()
@@ -204,11 +211,17 @@ class DatasetSummary:
204
211
  label, *_ = convert_data_type(data=label, output_type=torch.Tensor)
205
212
 
206
213
  intensities = image[torch.where(label > foreground_threshold)].tolist()
207
- if sampling_flag:
208
- intensities = intensities[::interval]
209
- all_intensities.append(intensities)
214
+ if intensities:
215
+ if sampling_flag:
216
+ intensities = intensities[::interval]
217
+ all_intensities.append(intensities)
210
218
 
211
219
  all_intensities = list(chain(*all_intensities))
220
+ if not all_intensities:
221
+ raise ValueError(
222
+ f"No foreground voxels found in any sample with {foreground_threshold=}; "
223
+ "set foreground_threshold=-1 to compute statistics over whole images."
224
+ )
212
225
  self.data_min_percentile, self.data_max_percentile = np.percentile(
213
226
  all_intensities, [min_percentile, max_percentile]
214
227
  )
@@ -266,12 +266,13 @@ class ImageWriter:
266
266
  The output data type of this method is always ``np.float32``.
267
267
  """
268
268
  orig_type = type(data_array)
269
- data_array = convert_to_tensor(data_array, track_meta=True)
269
+ # Add the channel dimension before setting the affine so spatial_ndim is inferred correctly.
270
+ data_array = convert_to_tensor(data_array, track_meta=True)[None]
270
271
  if affine is not None:
271
272
  data_array.affine = convert_to_tensor(affine, track_meta=False) # type: ignore
272
273
  resampler = SpatialResample(mode=mode, padding_mode=padding_mode, align_corners=align_corners, dtype=dtype)
273
274
  output_array = resampler(
274
- data_array[None], dst_affine=target_affine, spatial_size=output_spatial_shape # type: ignore
275
+ data_array, dst_affine=target_affine, spatial_size=output_spatial_shape # type: ignore
275
276
  )
276
277
  # convert back at the end
277
278
  if isinstance(output_array, MetaTensor):
@@ -133,7 +133,7 @@ def create_test_image_3d(
133
133
  if rad_max <= rad_min:
134
134
  raise ValueError(f"`rad_min` {rad_min} should be less than `rad_max` {rad_max}.")
135
135
  if rad_min < 1:
136
- raise ValueError("f`rad_min` {rad_min} should be no less than 1.")
136
+ raise ValueError(f"`rad_min` {rad_min} should be no less than 1.")
137
137
  min_size = min(height, width, depth)
138
138
  if min_size <= 2 * rad_max:
139
139
  raise ValueError(f"the minimal size {min_size} of the image should be larger than `2 * rad_max` 2x{rad_max}.")
@@ -11,6 +11,7 @@
11
11
 
12
12
  from __future__ import annotations
13
13
 
14
+ import inspect
14
15
  import math
15
16
  import warnings
16
17
  from abc import ABC, abstractmethod
@@ -862,6 +863,96 @@ class DiffusionInferer(Inferer):
862
863
 
863
864
  self.scheduler = scheduler
864
865
 
866
+ @staticmethod
867
+ def _scheduler_step_supports_kwarg(scheduler: Scheduler, kwarg: str) -> bool:
868
+ try:
869
+ return kwarg in inspect.signature(scheduler.step).parameters
870
+ except (TypeError, ValueError):
871
+ return False
872
+
873
+ @staticmethod
874
+ def _get_previous_sample_from_step_output(step_output: Any) -> torch.Tensor:
875
+ if isinstance(step_output, tuple):
876
+ return step_output[0]
877
+ if isinstance(step_output, Mapping):
878
+ return step_output["prev_sample"]
879
+ if hasattr(step_output, "prev_sample"):
880
+ return step_output.prev_sample
881
+ raise TypeError("Unsupported scheduler.step output. Expected a tuple or an object with `prev_sample`.")
882
+
883
+ @staticmethod
884
+ def _get_scheduler_name(scheduler: Scheduler) -> str:
885
+ if hasattr(scheduler, "_get_name"):
886
+ return scheduler._get_name()
887
+ return scheduler.__class__.__name__
888
+
889
+ @staticmethod
890
+ def _get_scheduler_config_value(scheduler: Scheduler, name: str, default: Any = None) -> Any:
891
+ config = getattr(scheduler, "config", None)
892
+ if isinstance(config, Mapping):
893
+ if name in config:
894
+ return config[name]
895
+ elif config is not None and hasattr(config, name):
896
+ return getattr(config, name)
897
+
898
+ if hasattr(scheduler, name):
899
+ return getattr(scheduler, name)
900
+ return default
901
+
902
+ @staticmethod
903
+ def _get_posterior_mean(
904
+ scheduler: Scheduler, timestep: int | torch.Tensor, x_0: torch.Tensor, x_t: torch.Tensor
905
+ ) -> torch.Tensor:
906
+ alpha_t = scheduler.alphas[timestep]
907
+ alpha_prod_t = scheduler.alphas_cumprod[timestep]
908
+ alpha_prod_t_prev = scheduler.alphas_cumprod[timestep - 1] if timestep > 0 else scheduler.one
909
+
910
+ x_0_coefficient = alpha_prod_t_prev.sqrt() * scheduler.betas[timestep] / (1 - alpha_prod_t)
911
+ x_t_coefficient = alpha_t.sqrt() * (1 - alpha_prod_t_prev) / (1 - alpha_prod_t)
912
+
913
+ return x_0_coefficient * x_0 + x_t_coefficient * x_t
914
+
915
+ def _get_posterior_variance(
916
+ self, scheduler: Scheduler, timestep: int | torch.Tensor, predicted_variance: torch.Tensor | None = None
917
+ ) -> torch.Tensor:
918
+ alpha_prod_t = scheduler.alphas_cumprod[timestep]
919
+ alpha_prod_t_prev = scheduler.alphas_cumprod[timestep - 1] if timestep > 0 else scheduler.one
920
+ variance = (1 - alpha_prod_t_prev) / (1 - alpha_prod_t) * scheduler.betas[timestep]
921
+ variance_type = self._get_scheduler_config_value(scheduler, "variance_type")
922
+
923
+ if variance_type == "fixed_small":
924
+ variance = torch.clamp(variance, min=1e-20)
925
+ elif variance_type == "fixed_large":
926
+ variance = scheduler.betas[timestep]
927
+ elif variance_type == "learned" and predicted_variance is not None:
928
+ return predicted_variance
929
+ elif variance_type == "learned_range" and predicted_variance is not None:
930
+ min_log = variance
931
+ max_log = scheduler.betas[timestep]
932
+ frac = (predicted_variance + 1) / 2
933
+ variance = frac * max_log + (1 - frac) * min_log
934
+
935
+ return variance
936
+
937
+ def _scheduler_step(
938
+ self,
939
+ scheduler: Scheduler,
940
+ model_output: torch.Tensor,
941
+ timestep: int | torch.Tensor,
942
+ sample: torch.Tensor,
943
+ next_timestep: int | torch.Tensor | None = None,
944
+ ) -> torch.Tensor:
945
+ step_kwargs = {}
946
+ if self._scheduler_step_supports_kwarg(scheduler, "return_dict"):
947
+ step_kwargs["return_dict"] = False
948
+
949
+ if isinstance(scheduler, RFlowScheduler):
950
+ step_output = scheduler.step(model_output, timestep, sample, next_timestep, **step_kwargs) # type: ignore
951
+ else:
952
+ step_output = scheduler.step(model_output, timestep, sample, **step_kwargs) # type: ignore
953
+
954
+ return self._get_previous_sample_from_step_output(step_output)
955
+
865
956
  def __call__( # type: ignore[override]
866
957
  self,
867
958
  inputs: torch.Tensor,
@@ -941,7 +1032,12 @@ class DiffusionInferer(Inferer):
941
1032
  scheduler = self.scheduler
942
1033
  image = input_noise
943
1034
 
944
- all_next_timesteps = torch.cat((scheduler.timesteps[1:], torch.tensor([0], dtype=scheduler.timesteps.dtype)))
1035
+ all_next_timesteps = torch.cat(
1036
+ (
1037
+ scheduler.timesteps[1:],
1038
+ torch.tensor([0], dtype=scheduler.timesteps.dtype, device=scheduler.timesteps.device),
1039
+ )
1040
+ )
945
1041
  if verbose and has_tqdm:
946
1042
  progress_bar = tqdm(
947
1043
  zip(scheduler.timesteps, all_next_timesteps),
@@ -985,10 +1081,9 @@ class DiffusionInferer(Inferer):
985
1081
  model_output = model_output_uncond + cfg * (model_output_cond - model_output_uncond)
986
1082
 
987
1083
  # 2. compute previous image: x_t -> x_t-1
988
- if not isinstance(scheduler, RFlowScheduler):
989
- image, _ = scheduler.step(model_output, t, image) # type: ignore
990
- else:
991
- image, _ = scheduler.step(model_output, t, image, next_t) # type: ignore
1084
+ image = self._scheduler_step(
1085
+ scheduler=scheduler, model_output=model_output, timestep=t, sample=image, next_timestep=next_t
1086
+ )
992
1087
  if save_intermediates and t % intermediate_steps == 0:
993
1088
  intermediates.append(image)
994
1089
 
@@ -1029,10 +1124,10 @@ class DiffusionInferer(Inferer):
1029
1124
 
1030
1125
  if not scheduler:
1031
1126
  scheduler = self.scheduler
1032
- if scheduler._get_name() != "DDPMScheduler":
1127
+ scheduler_name = self._get_scheduler_name(scheduler)
1128
+ if scheduler_name != "DDPMScheduler":
1033
1129
  raise NotImplementedError(
1034
- f"Likelihood computation is only compatible with DDPMScheduler,"
1035
- f" you are using {scheduler._get_name()}"
1130
+ f"Likelihood computation is only compatible with DDPMScheduler, you are using {scheduler_name},"
1036
1131
  )
1037
1132
  if mode not in ["crossattn", "concat"]:
1038
1133
  raise NotImplementedError(f"{mode} condition is not supported")
@@ -1047,7 +1142,7 @@ class DiffusionInferer(Inferer):
1047
1142
  total_kl = torch.zeros(inputs.shape[0]).to(inputs.device)
1048
1143
  for t in progress_bar:
1049
1144
  timesteps = torch.full(inputs.shape[:1], t, device=inputs.device).long()
1050
- noisy_image = self.scheduler.add_noise(original_samples=inputs, noise=noise, timesteps=timesteps)
1145
+ noisy_image = scheduler.add_noise(original_samples=inputs, noise=noise, timesteps=timesteps)
1051
1146
  diffusion_model = (
1052
1147
  partial(diffusion_model, seg=seg)
1053
1148
  if isinstance(diffusion_model, SPADEDiffusionModelUNet)
@@ -1060,7 +1155,8 @@ class DiffusionInferer(Inferer):
1060
1155
  model_output = diffusion_model(x=noisy_image, timesteps=timesteps, context=conditioning)
1061
1156
 
1062
1157
  # get the model's predicted mean, and variance if it is predicted
1063
- if model_output.shape[1] == inputs.shape[1] * 2 and scheduler.variance_type in ["learned", "learned_range"]:
1158
+ variance_type = self._get_scheduler_config_value(scheduler, "variance_type")
1159
+ if model_output.shape[1] == inputs.shape[1] * 2 and variance_type in ["learned", "learned_range"]:
1064
1160
  model_output, predicted_variance = torch.split(model_output, inputs.shape[1], dim=1)
1065
1161
  else:
1066
1162
  predicted_variance = None
@@ -1073,15 +1169,17 @@ class DiffusionInferer(Inferer):
1073
1169
 
1074
1170
  # 2. compute predicted original sample from predicted noise also called
1075
1171
  # "predicted x_0" of formula (15) from https://arxiv.org/pdf/2006.11239.pdf
1076
- if scheduler.prediction_type == "epsilon":
1172
+ prediction_type = self._get_scheduler_config_value(scheduler, "prediction_type")
1173
+ if prediction_type == "epsilon":
1077
1174
  pred_original_sample = (noisy_image - beta_prod_t ** (0.5) * model_output) / alpha_prod_t ** (0.5)
1078
- elif scheduler.prediction_type == "sample":
1175
+ elif prediction_type == "sample":
1079
1176
  pred_original_sample = model_output
1080
- elif scheduler.prediction_type == "v_prediction":
1177
+ elif prediction_type == "v_prediction":
1081
1178
  pred_original_sample = (alpha_prod_t**0.5) * noisy_image - (beta_prod_t**0.5) * model_output
1082
1179
  # 3. Clip "predicted x_0"
1083
- if scheduler.clip_sample:
1084
- pred_original_sample = torch.clamp(pred_original_sample, -1, 1)
1180
+ if self._get_scheduler_config_value(scheduler, "clip_sample"):
1181
+ clip_sample_range = self._get_scheduler_config_value(scheduler, "clip_sample_range", 1.0)
1182
+ pred_original_sample = torch.clamp(pred_original_sample, -clip_sample_range, clip_sample_range)
1085
1183
 
1086
1184
  # 4. Compute coefficients for pred_original_sample x_0 and current sample x_t
1087
1185
  # See formula (7) from https://arxiv.org/pdf/2006.11239.pdf
@@ -1093,11 +1191,15 @@ class DiffusionInferer(Inferer):
1093
1191
  predicted_mean = pred_original_sample_coeff * pred_original_sample + current_sample_coeff * noisy_image
1094
1192
 
1095
1193
  # get the posterior mean and variance
1096
- posterior_mean = scheduler._get_mean(timestep=t, x_0=inputs, x_t=noisy_image) # type: ignore[operator]
1097
- posterior_variance = scheduler._get_variance(timestep=t, predicted_variance=predicted_variance) # type: ignore[operator]
1194
+ posterior_mean = self._get_posterior_mean(scheduler=scheduler, timestep=t, x_0=inputs, x_t=noisy_image)
1195
+ posterior_variance = self._get_posterior_variance(
1196
+ scheduler=scheduler, timestep=t, predicted_variance=predicted_variance
1197
+ )
1098
1198
 
1099
1199
  log_posterior_variance = torch.log(posterior_variance)
1100
- log_predicted_variance = torch.log(predicted_variance) if predicted_variance else log_posterior_variance
1200
+ log_predicted_variance = (
1201
+ torch.log(predicted_variance) if predicted_variance is not None else log_posterior_variance
1202
+ )
1101
1203
 
1102
1204
  if t == 0:
1103
1205
  # compute -log p(x_0|x_1)
@@ -1149,7 +1251,7 @@ class DiffusionInferer(Inferer):
1149
1251
  given image. Code adapted from https://github.com/openai/improved-diffusion.
1150
1252
 
1151
1253
  Args:
1152
- input: the target images. It is assumed that this was uint8 values,
1254
+ inputs: the target images. It is assumed that this was uint8 values,
1153
1255
  rescaled to the range [-1, 1].
1154
1256
  means: the Gaussian mean Tensor.
1155
1257
  log_scales: the Gaussian log stddev Tensor.
@@ -1510,7 +1612,12 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1510
1612
  scheduler = self.scheduler
1511
1613
  image = input_noise
1512
1614
 
1513
- all_next_timesteps = torch.cat((scheduler.timesteps[1:], torch.tensor([0], dtype=scheduler.timesteps.dtype)))
1615
+ all_next_timesteps = torch.cat(
1616
+ (
1617
+ scheduler.timesteps[1:],
1618
+ torch.tensor([0], dtype=scheduler.timesteps.dtype, device=scheduler.timesteps.device),
1619
+ )
1620
+ )
1514
1621
  if verbose and has_tqdm:
1515
1622
  progress_bar = tqdm(
1516
1623
  zip(scheduler.timesteps, all_next_timesteps),
@@ -1584,10 +1691,9 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1584
1691
  model_output = model_output_uncond + cfg * (model_output_cond - model_output_uncond)
1585
1692
 
1586
1693
  # 3. compute previous image: x_t -> x_t-1
1587
- if not isinstance(scheduler, RFlowScheduler):
1588
- image, _ = scheduler.step(model_output, t, image) # type: ignore
1589
- else:
1590
- image, _ = scheduler.step(model_output, t, image, next_t) # type: ignore
1694
+ image = self._scheduler_step(
1695
+ scheduler=scheduler, model_output=model_output, timestep=t, sample=image, next_timestep=next_t
1696
+ )
1591
1697
 
1592
1698
  if save_intermediates and t % intermediate_steps == 0:
1593
1699
  intermediates.append(image)
@@ -1632,10 +1738,10 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1632
1738
 
1633
1739
  if not scheduler:
1634
1740
  scheduler = self.scheduler
1635
- if scheduler._get_name() != "DDPMScheduler":
1741
+ scheduler_name = self._get_scheduler_name(scheduler)
1742
+ if scheduler_name != "DDPMScheduler":
1636
1743
  raise NotImplementedError(
1637
- f"Likelihood computation is only compatible with DDPMScheduler,"
1638
- f" you are using {scheduler._get_name()}"
1744
+ f"Likelihood computation is only compatible with DDPMScheduler, you are using {scheduler_name}."
1639
1745
  )
1640
1746
  if mode not in ["crossattn", "concat"]:
1641
1747
  raise NotImplementedError(f"{mode} condition is not supported")
@@ -1648,7 +1754,7 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1648
1754
  total_kl = torch.zeros(inputs.shape[0]).to(inputs.device)
1649
1755
  for t in progress_bar:
1650
1756
  timesteps = torch.full(inputs.shape[:1], t, device=inputs.device).long()
1651
- noisy_image = self.scheduler.add_noise(original_samples=inputs, noise=noise, timesteps=timesteps)
1757
+ noisy_image = scheduler.add_noise(original_samples=inputs, noise=noise, timesteps=timesteps)
1652
1758
 
1653
1759
  diffuse = diffusion_model
1654
1760
  if isinstance(diffusion_model, SPADEDiffusionModelUNet):
@@ -1681,7 +1787,8 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1681
1787
  mid_block_additional_residual=mid_block_res_sample,
1682
1788
  )
1683
1789
  # get the model's predicted mean, and variance if it is predicted
1684
- if model_output.shape[1] == inputs.shape[1] * 2 and scheduler.variance_type in ["learned", "learned_range"]:
1790
+ variance_type = self._get_scheduler_config_value(scheduler, "variance_type")
1791
+ if model_output.shape[1] == inputs.shape[1] * 2 and variance_type in ["learned", "learned_range"]:
1685
1792
  model_output, predicted_variance = torch.split(model_output, inputs.shape[1], dim=1)
1686
1793
  else:
1687
1794
  predicted_variance = None
@@ -1694,15 +1801,17 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1694
1801
 
1695
1802
  # 2. compute predicted original sample from predicted noise also called
1696
1803
  # "predicted x_0" of formula (15) from https://arxiv.org/pdf/2006.11239.pdf
1697
- if scheduler.prediction_type == "epsilon":
1804
+ prediction_type = self._get_scheduler_config_value(scheduler, "prediction_type")
1805
+ if prediction_type == "epsilon":
1698
1806
  pred_original_sample = (noisy_image - beta_prod_t ** (0.5) * model_output) / alpha_prod_t ** (0.5)
1699
- elif scheduler.prediction_type == "sample":
1807
+ elif prediction_type == "sample":
1700
1808
  pred_original_sample = model_output
1701
- elif scheduler.prediction_type == "v_prediction":
1809
+ elif prediction_type == "v_prediction":
1702
1810
  pred_original_sample = (alpha_prod_t**0.5) * noisy_image - (beta_prod_t**0.5) * model_output
1703
1811
  # 3. Clip "predicted x_0"
1704
- if scheduler.clip_sample:
1705
- pred_original_sample = torch.clamp(pred_original_sample, -1, 1)
1812
+ if self._get_scheduler_config_value(scheduler, "clip_sample"):
1813
+ clip_sample_range = self._get_scheduler_config_value(scheduler, "clip_sample_range", 1.0)
1814
+ pred_original_sample = torch.clamp(pred_original_sample, -clip_sample_range, clip_sample_range)
1706
1815
 
1707
1816
  # 4. Compute coefficients for pred_original_sample x_0 and current sample x_t
1708
1817
  # See formula (7) from https://arxiv.org/pdf/2006.11239.pdf
@@ -1714,11 +1823,15 @@ class ControlNetDiffusionInferer(DiffusionInferer):
1714
1823
  predicted_mean = pred_original_sample_coeff * pred_original_sample + current_sample_coeff * noisy_image
1715
1824
 
1716
1825
  # get the posterior mean and variance
1717
- posterior_mean = scheduler._get_mean(timestep=t, x_0=inputs, x_t=noisy_image) # type: ignore[operator]
1718
- posterior_variance = scheduler._get_variance(timestep=t, predicted_variance=predicted_variance) # type: ignore[operator]
1826
+ posterior_mean = self._get_posterior_mean(scheduler=scheduler, timestep=t, x_0=inputs, x_t=noisy_image)
1827
+ posterior_variance = self._get_posterior_variance(
1828
+ scheduler=scheduler, timestep=t, predicted_variance=predicted_variance
1829
+ )
1719
1830
 
1720
1831
  log_posterior_variance = torch.log(posterior_variance)
1721
- log_predicted_variance = torch.log(predicted_variance) if predicted_variance else log_posterior_variance
1832
+ log_predicted_variance = (
1833
+ torch.log(predicted_variance) if predicted_variance is not None else log_posterior_variance
1834
+ )
1722
1835
 
1723
1836
  if t == 0:
1724
1837
  # compute -log p(x_0|x_1)
@@ -1874,8 +1987,8 @@ class ControlNetLatentDiffusionInferer(ControlNetDiffusionInferer):
1874
1987
  and autoencoder_model.decoder.label_nc != diffusion_model.label_nc
1875
1988
  ):
1876
1989
  raise ValueError(
1877
- "If both autoencoder_model and diffusion_model implement SPADE, the number of semantic"
1878
- "labels for each must be compatible. Got {autoencoder_model.decoder.label_nc} and {diffusion_model.label_nc}"
1990
+ "If both autoencoder_model and diffusion_model implement SPADE, the number of semantic "
1991
+ f"labels for each must be compatible. Got {autoencoder_model.decoder.label_nc} and {diffusion_model.label_nc}"
1879
1992
  )
1880
1993
 
1881
1994
  if cn_cond.shape[2:] != input_noise.shape[2:]:
@@ -78,7 +78,7 @@ class BarlowTwinsLoss(_Loss):
78
78
  c = torch.mm(input_norm.t(), target_norm) / batch_size # input_norm.t() is FxB, target_norm is BxF so c is FxF
79
79
 
80
80
  # loss
81
- c_diff = (c - torch.eye(c.size(0), device=c.device)).pow_(2) # FxF
81
+ c_diff = (c - torch.eye(c.size(0), dtype=c.dtype, device=c.device)).pow_(2) # FxF
82
82
  c_diff[~torch.eye(c.size(0), device=c.device).bool()] *= lambd_tensor
83
83
 
84
84
  return c_diff.sum()
@@ -12,7 +12,7 @@
12
12
  from __future__ import annotations
13
13
 
14
14
  import warnings
15
- from collections.abc import Iterable, Sequence
15
+ from collections.abc import Sequence
16
16
  from functools import cache, partial
17
17
  from types import ModuleType
18
18
  from typing import Any, overload
@@ -515,23 +515,22 @@ def remap_instance_id(pred: torch.Tensor, by_size: bool = False) -> torch.Tensor
515
515
  value of the tensor should be an integer, and represents the prediction of its corresponding instance id.
516
516
  by_size: if True, largest instance will be assigned a smaller id.
517
517
 
518
+ Returns:
519
+ tensor of the same shape as ``pred`` with ids remapped to ``1..K`` (``torch.int`` dtype),
520
+ or ``pred`` unchanged (original dtype) when it contains no foreground ids.
518
521
  """
519
- pred_id: Iterable[Any] = list(pred.unique())
520
- # the original implementation has the limitation that if there is no 0 in pred, error will happen
521
- pred_id = [i for i in pred_id if i != 0]
522
-
523
- if not pred_id:
522
+ uniq, inverse = torch.unique(pred, return_inverse=True)
523
+ order = torch.nonzero(uniq != 0).flatten()
524
+ if order.numel() == 0:
524
525
  return pred
525
526
  if by_size:
526
- instance_size = [(pred == instance_id).sum() for instance_id in pred_id]
527
- pair_data = zip(pred_id, instance_size)
528
- pair_list = sorted(pair_data, key=lambda x: x[1], reverse=True)
529
- pred_id, _ = zip(*pair_list)
530
-
531
- new_pred = torch.zeros_like(pred, dtype=torch.int)
532
- for idx, instance_id in enumerate(pred_id):
533
- new_pred[pred == instance_id] = idx + 1
534
- return new_pred
527
+ counts = torch.bincount(inverse.flatten(), minlength=uniq.numel())[order]
528
+ # stable sort keeps ascending-id order for equal-size instances, matching the
529
+ # original python `sorted` tie-breaking
530
+ order = order[torch.argsort(counts, descending=True, stable=True)]
531
+ lut = torch.zeros(uniq.numel(), dtype=torch.int, device=pred.device)
532
+ lut[order] = torch.arange(1, order.numel() + 1, dtype=torch.int, device=pred.device)
533
+ return lut[inverse]
535
534
 
536
535
 
537
536
  def prepare_spacing(
@@ -150,7 +150,7 @@ def build_sincos_position_embedding(
150
150
  dim=1,
151
151
  )[None, :, :]
152
152
  else:
153
- raise NotImplementedError("Spatial Dimension Size {spatial_dims} Not Implemented!")
153
+ raise NotImplementedError(f"Spatial Dimension Size {spatial_dims} Not Implemented!")
154
154
 
155
155
  pos_embed = nn.Parameter(pos_emb)
156
156
  pos_embed.requires_grad = False
@@ -126,7 +126,7 @@ class PatchDiscriminator(nn.Sequential):
126
126
  out_channels: number of output channels
127
127
  num_layers_d: number of Convolution layers (Conv + activation + normalisation + [dropout]) in the discriminator.
128
128
  kernel_size: kernel size of the convolution layers
129
- act: activation type and arguments. Defaults to LeakyReLU.
129
+ activation: activation type and arguments. Defaults to LeakyReLU.
130
130
  norm: feature normalization type and arguments. Defaults to batch norm.
131
131
  bias: whether to have a bias term in convolution blocks. Defaults to False.
132
132
  padding: padding to be applied to the convolutional layers
@@ -131,7 +131,7 @@ class DDPMScheduler(Scheduler):
131
131
 
132
132
  Args:
133
133
  timestep: current timestep.
134
- x0: the noise-free input.
134
+ x_0: the noise-free input.
135
135
  x_t: the input noised to timestep t.
136
136
 
137
137
  Returns: