monai-weekly 1.7.dev2627__tar.gz → 1.7.dev2629__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. {monai_weekly-1.7.dev2627/monai_weekly.egg-info → monai_weekly-1.7.dev2629}/PKG-INFO +3 -1
  2. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/__init__.py +1 -1
  3. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_version.py +3 -3
  4. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/image_reader.py +13 -0
  5. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/__init__.py +1 -0
  6. monai_weekly-1.7.dev2629/monai/losses/boundary_loss.py +233 -0
  7. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/__init__.py +7 -0
  8. monai_weekly-1.7.dev2629/monai/networks/blocks/hyena.py +555 -0
  9. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/warp.py +7 -3
  10. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/__init__.py +1 -0
  11. monai_weekly-1.7.dev2629/monai/networks/nets/hyena_nd_unetr.py +151 -0
  12. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/swin_unetr.py +223 -55
  13. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/intensity/array.py +2 -5
  14. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629/monai_weekly.egg-info}/PKG-INFO +3 -1
  15. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/SOURCES.txt +3 -0
  16. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/requires.txt +3 -0
  17. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/setup.cfg +2 -0
  18. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/LICENSE +0 -0
  19. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/MANIFEST.in +0 -0
  20. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/README.md +0 -0
  21. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/__init__.py +0 -0
  22. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm.cpp +0 -0
  23. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm.h +0 -0
  24. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  25. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  26. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  27. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/_extensions/loader.py +0 -0
  28. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/__init__.py +0 -0
  29. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/__init__.py +0 -0
  30. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/__main__.py +0 -0
  31. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/auto_runner.py +0 -0
  32. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/bundle_gen.py +0 -0
  33. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  34. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  35. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  36. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/transforms.py +0 -0
  37. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/auto3dseg/utils.py +0 -0
  38. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/datasets.py +0 -0
  39. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepedit/__init__.py +0 -0
  40. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepedit/interaction.py +0 -0
  41. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepedit/transforms.py +0 -0
  42. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/__init__.py +0 -0
  43. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/dataset.py +0 -0
  44. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/interaction.py +0 -0
  45. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/deepgrow/transforms.py +0 -0
  46. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/__init__.py +0 -0
  47. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/__init__.py +0 -0
  48. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/coco.py +0 -0
  49. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/metrics/matching.py +0 -0
  50. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/__init__.py +0 -0
  51. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/retinanet_detector.py +0 -0
  52. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/networks/retinanet_network.py +0 -0
  53. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/__init__.py +0 -0
  54. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/array.py +0 -0
  55. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/box_ops.py +0 -0
  56. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/transforms/dictionary.py +0 -0
  57. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  58. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/__init__.py +0 -0
  59. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/anchor_utils.py +0 -0
  60. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/box_coder.py +0 -0
  61. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/box_selector.py +0 -0
  62. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/detector_utils.py +0 -0
  63. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  64. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/detection/utils/predict_utils.py +0 -0
  65. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/generation/__init__.py +0 -0
  66. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/__init__.py +0 -0
  67. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  68. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  69. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  70. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  71. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/mmars/__init__.py +0 -0
  72. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/mmars/mmars.py +0 -0
  73. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/mmars/model_desc.py +0 -0
  74. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/__init__.py +0 -0
  75. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/__main__.py +0 -0
  76. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  77. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  78. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nnunet/utils.py +0 -0
  79. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nuclick/__init__.py +0 -0
  80. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/nuclick/transforms.py +0 -0
  81. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/__init__.py +0 -0
  82. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/engines/__init__.py +0 -0
  83. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/engines/utils.py +0 -0
  84. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/handlers/__init__.py +0 -0
  85. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/handlers/utils.py +0 -0
  86. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/inferers/__init__.py +0 -0
  87. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/inferers/inferer.py +0 -0
  88. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/losses/__init__.py +0 -0
  89. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  90. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/metrics/__init__.py +0 -0
  91. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  92. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/__init__.py +0 -0
  93. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  94. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/array.py +0 -0
  95. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
  96. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  97. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/array.py +0 -0
  98. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  99. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/pathology/utils.py +0 -0
  100. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/__init__.py +0 -0
  101. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/complex_utils.py +0 -0
  102. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  103. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/mri_utils.py +0 -0
  104. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/__init__.py +0 -0
  105. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  106. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  107. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  108. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  109. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  110. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  111. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  112. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  113. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/array.py +0 -0
  114. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  115. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/tcia/__init__.py +0 -0
  116. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/tcia/label_desc.py +0 -0
  117. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/tcia/utils.py +0 -0
  118. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/utils.py +0 -0
  119. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/__init__.py +0 -0
  120. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/inferer.py +0 -0
  121. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/sampler.py +0 -0
  122. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/apps/vista3d/transforms.py +0 -0
  123. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/auto3dseg/__init__.py +0 -0
  124. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/auto3dseg/algo_gen.py +0 -0
  125. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/auto3dseg/analyzer.py +0 -0
  126. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/auto3dseg/operations.py +0 -0
  127. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/auto3dseg/seg_summarizer.py +0 -0
  128. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/auto3dseg/utils.py +0 -0
  129. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/__init__.py +0 -0
  130. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/__main__.py +0 -0
  131. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/config_item.py +0 -0
  132. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/config_parser.py +0 -0
  133. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/properties.py +0 -0
  134. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/reference_resolver.py +0 -0
  135. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/scripts.py +0 -0
  136. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/utils.py +0 -0
  137. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/bundle/workflows.py +0 -0
  138. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/config/__init__.py +0 -0
  139. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/config/deviceconfig.py +0 -0
  140. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/config/type_definitions.py +0 -0
  141. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/__init__.py +0 -0
  142. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/box_utils.py +0 -0
  143. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/csv_saver.py +0 -0
  144. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/dataloader.py +0 -0
  145. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/dataset.py +0 -0
  146. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/dataset_summary.py +0 -0
  147. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/decathlon_datalist.py +0 -0
  148. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/fft_utils.py +0 -0
  149. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/folder_layout.py +0 -0
  150. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/grid_dataset.py +0 -0
  151. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/image_dataset.py +0 -0
  152. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/image_writer.py +0 -0
  153. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/iterable_dataset.py +0 -0
  154. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/itk_torch_bridge.py +0 -0
  155. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/meta_obj.py +0 -0
  156. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/meta_tensor.py +0 -0
  157. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/samplers.py +0 -0
  158. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/synthetic.py +0 -0
  159. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/test_time_augmentation.py +0 -0
  160. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/thread_buffer.py +0 -0
  161. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/torchscript_utils.py +0 -0
  162. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/ultrasound_confidence_map.py +0 -0
  163. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/utils.py +0 -0
  164. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/video_dataset.py +0 -0
  165. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/wsi_datasets.py +0 -0
  166. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/data/wsi_reader.py +0 -0
  167. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/engines/__init__.py +0 -0
  168. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/engines/evaluator.py +0 -0
  169. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/engines/trainer.py +0 -0
  170. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/engines/utils.py +0 -0
  171. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/engines/workflow.py +0 -0
  172. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/__init__.py +0 -0
  173. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/client/__init__.py +0 -0
  174. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/client/client_algo.py +0 -0
  175. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/client/monai_algo.py +0 -0
  176. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/utils/__init__.py +0 -0
  177. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/utils/constants.py +0 -0
  178. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/utils/exchange_object.py +0 -0
  179. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/fl/utils/filters.py +0 -0
  180. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/__init__.py +0 -0
  181. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/average_precision.py +0 -0
  182. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/calibration.py +0 -0
  183. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/checkpoint_loader.py +0 -0
  184. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/checkpoint_saver.py +0 -0
  185. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/classification_saver.py +0 -0
  186. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/clearml_handlers.py +0 -0
  187. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/confusion_matrix.py +0 -0
  188. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/decollate_batch.py +0 -0
  189. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/earlystop_handler.py +0 -0
  190. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/garbage_collector.py +0 -0
  191. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/hausdorff_distance.py +0 -0
  192. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/ignite_metric.py +0 -0
  193. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/logfile_handler.py +0 -0
  194. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/lr_schedule_handler.py +0 -0
  195. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/mean_dice.py +0 -0
  196. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/mean_iou.py +0 -0
  197. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/metric_logger.py +0 -0
  198. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/metrics_reloaded_handler.py +0 -0
  199. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/metrics_saver.py +0 -0
  200. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/mlflow_handler.py +0 -0
  201. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/nvtx_handlers.py +0 -0
  202. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/panoptic_quality.py +0 -0
  203. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/parameter_scheduler.py +0 -0
  204. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/postprocessing.py +0 -0
  205. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/probability_maps.py +0 -0
  206. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/regression_metrics.py +0 -0
  207. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/roc_auc.py +0 -0
  208. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/smartcache_handler.py +0 -0
  209. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/stats_handler.py +0 -0
  210. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/surface_distance.py +0 -0
  211. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/tensorboard_handlers.py +0 -0
  212. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/trt_handler.py +0 -0
  213. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/utils.py +0 -0
  214. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/handlers/validation_handler.py +0 -0
  215. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/inferers/__init__.py +0 -0
  216. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/inferers/inferer.py +0 -0
  217. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/inferers/merger.py +0 -0
  218. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/inferers/splitter.py +0 -0
  219. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/inferers/utils.py +0 -0
  220. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/adversarial_loss.py +0 -0
  221. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/aucm_loss.py +0 -0
  222. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/barlow_twins.py +0 -0
  223. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/cldice.py +0 -0
  224. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/contrastive.py +0 -0
  225. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/deform.py +0 -0
  226. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/dice.py +0 -0
  227. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/ds_loss.py +0 -0
  228. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/focal_loss.py +0 -0
  229. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/giou_loss.py +0 -0
  230. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/hausdorff_loss.py +0 -0
  231. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/image_dissimilarity.py +0 -0
  232. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/mcc_loss.py +0 -0
  233. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/multi_scale.py +0 -0
  234. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/nacl_loss.py +0 -0
  235. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/perceptual.py +0 -0
  236. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/spatial_mask.py +0 -0
  237. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/spectral_loss.py +0 -0
  238. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/ssim_loss.py +0 -0
  239. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/sure_loss.py +0 -0
  240. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/tversky.py +0 -0
  241. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/unified_focal_loss.py +0 -0
  242. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/losses/utils.py +0 -0
  243. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/__init__.py +0 -0
  244. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/absolute_volume_difference.py +0 -0
  245. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/active_learning_metrics.py +0 -0
  246. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/average_precision.py +0 -0
  247. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/calibration.py +0 -0
  248. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/confusion_matrix.py +0 -0
  249. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/cumulative_average.py +0 -0
  250. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/embedding_collapse.py +0 -0
  251. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/f_beta_score.py +0 -0
  252. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/fid.py +0 -0
  253. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/froc.py +0 -0
  254. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/generalized_dice.py +0 -0
  255. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/hausdorff_distance.py +0 -0
  256. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/loss_metric.py +0 -0
  257. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/meandice.py +0 -0
  258. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/meaniou.py +0 -0
  259. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/metric.py +0 -0
  260. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/mmd.py +0 -0
  261. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/panoptic_quality.py +0 -0
  262. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/regression.py +0 -0
  263. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/rocauc.py +0 -0
  264. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/surface_dice.py +0 -0
  265. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/surface_distance.py +0 -0
  266. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/utils.py +0 -0
  267. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/metrics/wrapper.py +0 -0
  268. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/__init__.py +0 -0
  269. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/acti_norm.py +0 -0
  270. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/activation.py +0 -0
  271. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/activation_checkpointing.py +0 -0
  272. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/aspp.py +0 -0
  273. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/attention_utils.py +0 -0
  274. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  275. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/cablock.py +0 -0
  276. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/convolutions.py +0 -0
  277. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/crf.py +0 -0
  278. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/crossattention.py +0 -0
  279. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/denseblock.py +0 -0
  280. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/dints_block.py +0 -0
  281. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/downsample.py +0 -0
  282. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/dynunet_block.py +0 -0
  283. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/encoder.py +0 -0
  284. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/fcn.py +0 -0
  285. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  286. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/fft_utils_t.py +0 -0
  287. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/localnet_block.py +0 -0
  288. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/mednext_block.py +0 -0
  289. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/mlp.py +0 -0
  290. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/patchembedding.py +0 -0
  291. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/pos_embed_utils.py +0 -0
  292. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/regunet_block.py +0 -0
  293. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  294. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/segresnet_block.py +0 -0
  295. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/selfattention.py +0 -0
  296. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/spade_norm.py +0 -0
  297. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/spatialattention.py +0 -0
  298. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  299. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/text_embedding.py +0 -0
  300. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/transformerblock.py +0 -0
  301. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/unetr_block.py +0 -0
  302. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/blocks/upsample.py +0 -0
  303. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/__init__.py +0 -0
  304. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/conjugate_gradient.py +0 -0
  305. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/convutils.py +0 -0
  306. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/drop_path.py +0 -0
  307. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/factories.py +0 -0
  308. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/filtering.py +0 -0
  309. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/gmm.py +0 -0
  310. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/simplelayers.py +0 -0
  311. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/spatial_transforms.py +0 -0
  312. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/utils.py +0 -0
  313. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/vector_quantizer.py +0 -0
  314. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/layers/weight_init.py +0 -0
  315. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/ahnet.py +0 -0
  316. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/attentionunet.py +0 -0
  317. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/autoencoder.py +0 -0
  318. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/autoencoderkl.py +0 -0
  319. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/basic_unet.py +0 -0
  320. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/basic_unetplusplus.py +0 -0
  321. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  322. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/classifier.py +0 -0
  323. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/controlnet.py +0 -0
  324. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/daf3d.py +0 -0
  325. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/densenet.py +0 -0
  326. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/diffusion_model_unet.py +0 -0
  327. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/dints.py +0 -0
  328. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/dynunet.py +0 -0
  329. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/efficientnet.py +0 -0
  330. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/flexible_unet.py +0 -0
  331. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/fullyconnectednet.py +0 -0
  332. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/generator.py +0 -0
  333. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/highresnet.py +0 -0
  334. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/hovernet.py +0 -0
  335. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  336. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/mednext.py +0 -0
  337. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/milmodel.py +0 -0
  338. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/netadapter.py +0 -0
  339. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/patchgan_discriminator.py +0 -0
  340. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/quicknat.py +0 -0
  341. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/regressor.py +0 -0
  342. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/regunet.py +0 -0
  343. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/resnet.py +0 -0
  344. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/restormer.py +0 -0
  345. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/segresnet.py +0 -0
  346. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/segresnet_ds.py +0 -0
  347. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/senet.py +0 -0
  348. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  349. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  350. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/spade_network.py +0 -0
  351. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/torchvision_fc.py +0 -0
  352. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/transchex.py +0 -0
  353. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/transformer.py +0 -0
  354. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/unet.py +0 -0
  355. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/unetr.py +0 -0
  356. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/varautoencoder.py +0 -0
  357. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/vista3d.py +0 -0
  358. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/vit.py +0 -0
  359. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/vitautoenc.py +0 -0
  360. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/vnet.py +0 -0
  361. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/voxelmorph.py +0 -0
  362. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/nets/vqvae.py +0 -0
  363. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/__init__.py +0 -0
  364. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/ddim.py +0 -0
  365. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/ddpm.py +0 -0
  366. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/pndm.py +0 -0
  367. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/rectified_flow.py +0 -0
  368. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/schedulers/scheduler.py +0 -0
  369. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/trt_compiler.py +0 -0
  370. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/networks/utils.py +0 -0
  371. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/optimizers/__init__.py +0 -0
  372. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/optimizers/lr_finder.py +0 -0
  373. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/optimizers/lr_scheduler.py +0 -0
  374. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/optimizers/novograd.py +0 -0
  375. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/optimizers/utils.py +0 -0
  376. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/py.typed +0 -0
  377. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/__init__.py +0 -0
  378. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/adaptors.py +0 -0
  379. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/compose.py +0 -0
  380. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/__init__.py +0 -0
  381. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/array.py +0 -0
  382. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/batch.py +0 -0
  383. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/dictionary.py +0 -0
  384. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/croppad/functional.py +0 -0
  385. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/intensity/__init__.py +0 -0
  386. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/intensity/dictionary.py +0 -0
  387. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/inverse.py +0 -0
  388. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/inverse_batch_transform.py +0 -0
  389. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/io/__init__.py +0 -0
  390. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/io/array.py +0 -0
  391. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/io/dictionary.py +0 -0
  392. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/__init__.py +0 -0
  393. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/array.py +0 -0
  394. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/dictionary.py +0 -0
  395. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/functional.py +0 -0
  396. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/lazy/utils.py +0 -0
  397. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/meta_utility/__init__.py +0 -0
  398. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/meta_utility/dictionary.py +0 -0
  399. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/nvtx.py +0 -0
  400. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/post/__init__.py +0 -0
  401. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/post/array.py +0 -0
  402. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/post/dictionary.py +0 -0
  403. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/regularization/__init__.py +0 -0
  404. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/regularization/array.py +0 -0
  405. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/regularization/dictionary.py +0 -0
  406. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/signal/__init__.py +0 -0
  407. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/signal/array.py +0 -0
  408. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/signal/dictionary.py +0 -0
  409. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/smooth_field/__init__.py +0 -0
  410. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/smooth_field/array.py +0 -0
  411. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/smooth_field/dictionary.py +0 -0
  412. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/__init__.py +0 -0
  413. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/array.py +0 -0
  414. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/dictionary.py +0 -0
  415. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/spatial/functional.py +0 -0
  416. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/traits.py +0 -0
  417. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/transform.py +0 -0
  418. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utility/__init__.py +0 -0
  419. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utility/array.py +0 -0
  420. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utility/dictionary.py +0 -0
  421. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utils.py +0 -0
  422. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utils_create_transform_ims.py +0 -0
  423. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utils_morphological_ops.py +0 -0
  424. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  425. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/__init__.py +0 -0
  426. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/component_store.py +0 -0
  427. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/decorators.py +0 -0
  428. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/deprecate_utils.py +0 -0
  429. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/dist.py +0 -0
  430. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/enums.py +0 -0
  431. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/jupyter_utils.py +0 -0
  432. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/misc.py +0 -0
  433. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/module.py +0 -0
  434. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/nvtx.py +0 -0
  435. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/ordering.py +0 -0
  436. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/profiling.py +0 -0
  437. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/state_cacher.py +0 -0
  438. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/tf32.py +0 -0
  439. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/utils/type_conversion.py +0 -0
  440. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/__init__.py +0 -0
  441. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/class_activation_maps.py +0 -0
  442. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/gradient_based.py +0 -0
  443. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/img2tensorboard.py +0 -0
  444. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/occlusion_sensitivity.py +0 -0
  445. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/utils.py +0 -0
  446. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai/visualize/visualizer.py +0 -0
  447. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/dependency_links.txt +0 -0
  448. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/not-zip-safe +0 -0
  449. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/monai_weekly.egg-info/top_level.txt +0 -0
  450. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/pyproject.toml +0 -0
  451. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/setup.py +0 -0
  452. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2629}/versioneer.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: monai-weekly
3
- Version: 1.7.dev2627
3
+ Version: 1.7.dev2629
4
4
  Summary: AI Toolkit for Healthcare Imaging
5
5
  Home-page: https://project-monai.github.io/
6
6
  Author: MONAI Consortium
@@ -117,6 +117,8 @@ Provides-Extra: pandas
117
117
  Requires-Dist: pandas; extra == "pandas"
118
118
  Provides-Extra: einops
119
119
  Requires-Dist: einops; extra == "einops"
120
+ Provides-Extra: hyena
121
+ Requires-Dist: nvsubquadratic>=0.1.1; extra == "hyena"
120
122
  Provides-Extra: transformers
121
123
  Requires-Dist: transformers<4.41.0,>=4.36.0; python_version <= "3.10" and extra == "transformers"
122
124
  Provides-Extra: mlflow
@@ -136,4 +136,4 @@ except Exception:
136
136
 
137
137
  if MONAIEnvVars.debug():
138
138
  raise
139
- __commit_id__ = "eb74488c5be06e97d8ee5d6bdec2488ac3903a1c"
139
+ __commit_id__ = "5da247209955bcc29de706d858eeed75f4f08cab"
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-07-05T03:07:50+0000",
11
+ "date": "2026-07-19T03:05:24+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "9c37af81ef49b616038685d338f97726a0266440",
15
- "version": "1.7.dev2627"
14
+ "full-revisionid": "52cab21b1eb940ad0c4ea70165f09ec6e7cbaebb",
15
+ "version": "1.7.dev2629"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -735,9 +735,22 @@ class PydicomReader(ImageReader):
735
735
  metadata: metadata with dict type.
736
736
  lps_to_ras: whether to convert the affine matrix from "LPS" to "RAS". Defaults to True.
737
737
 
738
+ Warns:
739
+ UserWarning: when ImageOrientationPatient (00200037) or ImagePositionPatient
740
+ (00200032) is missing from metadata. The affine matrix is set to identity,
741
+ which may be incorrect. Common with multiframe DICOM files.
742
+
738
743
  """
739
744
  affine: np.ndarray = np.eye(4)
740
745
  if not ("00200037" in metadata and "00200032" in metadata):
746
+ warnings.warn(
747
+ "PydicomReader: ImageOrientationPatient (0020,0037) and/or "
748
+ "ImagePositionPatient (0020,0032) tags are missing, so the affine "
749
+ "matrix cannot be derived and defaults to the identity. The image "
750
+ "orientation and spacing may be incorrect (e.g. for multi-frame "
751
+ "Enhanced DICOM); consider using ITKReader for such files.",
752
+ stacklevel=2,
753
+ )
741
754
  return affine
742
755
  # "00200037" is the tag of `ImageOrientationPatient`
743
756
  rx, ry, rz, cx, cy, cz = metadata["00200037"]["Value"]
@@ -14,6 +14,7 @@ from __future__ import annotations
14
14
  from .adversarial_loss import PatchAdversarialLoss
15
15
  from .aucm_loss import AUCMLoss
16
16
  from .barlow_twins import BarlowTwinsLoss
17
+ from .boundary_loss import BoundaryLoss
17
18
  from .cldice import SoftclDiceLoss, SoftDiceclDiceLoss
18
19
  from .contrastive import ContrastiveLoss
19
20
  from .deform import BendingEnergyLoss, DiffusionLoss
@@ -0,0 +1,233 @@
1
+ # Copyright (c) MONAI Consortium
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+
12
+ from __future__ import annotations
13
+
14
+ import warnings
15
+ from collections.abc import Callable
16
+
17
+ import torch
18
+ from torch.nn.modules.loss import _Loss
19
+
20
+ from monai.networks import one_hot
21
+ from monai.transforms.utils import distance_transform_edt
22
+ from monai.utils import LossReduction
23
+
24
+ __all__ = ["BoundaryLoss"]
25
+
26
+
27
+ class BoundaryLoss(_Loss):
28
+ """
29
+ Compute the boundary loss for highly unbalanced segmentation.
30
+
31
+ The boundary loss is a distance-based loss that operates on the interface between segmentation
32
+ regions rather than on the regions themselves. This makes it particularly effective for
33
+ highly imbalanced segmentation tasks (e.g., small lesions, thin structures), where standard
34
+ Dice or Cross-Entropy losses struggle due to foreground-background imbalance.
35
+
36
+ The loss is formulated as a pixel-wise weighted sum of predicted probabilities and a
37
+ signed distance map derived from the ground truth. The signed distance map is negative
38
+ inside the foreground region and positive outside, with zero on the boundary.
39
+
40
+ The data `input` (BNHW[D] where N is number of classes) is compared with ground truth `target`
41
+ (BNHW[D]).
42
+ Note that axis N of `input` is expected to be logits or probabilities for each class, if passing logits as input,
43
+ must set `sigmoid=True` or `softmax=True`, or specifying `other_act`. And the same axis of `target`
44
+ can be 1 or N (one-hot format).
45
+
46
+ The original paper:
47
+ Kervadec, H. et al. (2019) Boundary loss for highly unbalanced segmentation. MIDL 2019.
48
+ https://arxiv.org/abs/1812.07032
49
+
50
+ Example:
51
+ >>> import torch
52
+ >>> from monai.losses import BoundaryLoss
53
+ >>> B, C, H, W = 2, 3, 5, 5
54
+ >>> input = torch.rand(B, C, H, W)
55
+ >>> target = torch.randint(0, C, size=(B, H, W))
56
+ >>> bl = BoundaryLoss(softmax=True, to_onehot_y=True)
57
+ >>> loss = bl(input, target)
58
+ """
59
+
60
+ def __init__(
61
+ self,
62
+ include_background: bool = True,
63
+ to_onehot_y: bool = False,
64
+ sigmoid: bool = False,
65
+ softmax: bool = False,
66
+ other_act: Callable | None = None,
67
+ reduction: LossReduction | str = LossReduction.MEAN,
68
+ batch: bool = False,
69
+ ) -> None:
70
+ """
71
+ Args:
72
+ include_background: if False, channel index 0 (background category) is excluded from the calculation.
73
+ if the non-background segmentations are small compared to the total image size they can get overwhelmed
74
+ by the signal from the background so excluding it in such cases helps convergence.
75
+ to_onehot_y: whether to convert the ``target`` into the one-hot format,
76
+ using the number of classes inferred from `input` (``input.shape[1]``). Defaults to False.
77
+ sigmoid: if True, apply a sigmoid function to the prediction.
78
+ softmax: if True, apply a softmax function to the prediction.
79
+ other_act: callable function to execute other activation layers, Defaults to ``None``. for example:
80
+ ``other_act = torch.tanh``.
81
+ reduction: {``"none"``, ``"mean"``, ``"sum"``}
82
+ Specifies the reduction to apply to the output. Defaults to ``"mean"``.
83
+
84
+ - ``"none"``: no reduction will be applied.
85
+ - ``"mean"``: the sum of the output will be divided by the number of elements in the output.
86
+ - ``"sum"``: the output will be summed.
87
+ batch: whether to compute the distance map and loss over the batch dimension before the dividing.
88
+ Defaults to False, a boundary loss value is computed independently from each item in the batch
89
+ before any `reduction`.
90
+
91
+ Raises:
92
+ TypeError: When ``other_act`` is not an ``Optional[Callable]``.
93
+ ValueError: When more than 1 of [``sigmoid=True``, ``softmax=True``, ``other_act is not None``].
94
+ Incompatible values.
95
+ """
96
+ super().__init__(reduction=LossReduction(reduction).value)
97
+ if other_act is not None and not callable(other_act):
98
+ raise TypeError(f"other_act must be None or callable but is {type(other_act).__name__}.")
99
+ if int(sigmoid) + int(softmax) + int(other_act is not None) > 1:
100
+ raise ValueError("Incompatible values: more than 1 of [sigmoid=True, softmax=True, other_act is not None].")
101
+
102
+ self.include_background = include_background
103
+ self.to_onehot_y = to_onehot_y
104
+ self.sigmoid = sigmoid
105
+ self.softmax = softmax
106
+ self.other_act = other_act
107
+ self.batch = batch
108
+
109
+ @torch.no_grad()
110
+ def compute_distance_map(self, target: torch.Tensor) -> torch.Tensor:
111
+ """
112
+ Compute the signed distance map for each class in the target.
113
+
114
+ The signed distance map is negative inside the foreground region and positive outside,
115
+ with zero on the boundary.
116
+
117
+ Args:
118
+ target: target tensor of shape BNHW[D], with values in {0, 1} (one-hot encoded).
119
+
120
+ Returns:
121
+ Signed distance map of the same shape as target.
122
+ """
123
+ if target.dim() not in (4, 5):
124
+ raise ValueError("Only 2D (BNHW) and 3D (BNHWD) supported")
125
+
126
+ distance_map = torch.zeros_like(target, dtype=torch.float32)
127
+
128
+ for batch_idx in range(target.shape[0]):
129
+ for channel_idx in range(target.shape[1]):
130
+ mask = target[batch_idx, channel_idx : channel_idx + 1] > 0.5
131
+
132
+ # Empty or full masks do not have a foreground/background interface.
133
+ if not mask.any() or mask.all():
134
+ continue
135
+
136
+ fg_dist: torch.Tensor = distance_transform_edt(mask) # type: ignore
137
+ bg_dist: torch.Tensor = distance_transform_edt(~mask) # type: ignore
138
+
139
+ signed = torch.zeros_like(mask, dtype=torch.float32)
140
+ signed[mask] = -(fg_dist[mask].to(torch.float32) - 1)
141
+ signed[~mask] = bg_dist[~mask].to(torch.float32)
142
+
143
+ distance_map[batch_idx, channel_idx] = signed[0]
144
+
145
+ return distance_map
146
+
147
+ def forward(self, input: torch.Tensor, target: torch.Tensor) -> torch.Tensor:
148
+ """
149
+ Args:
150
+ input: the shape should be BNHW[D], where N is the number of classes.
151
+ target: the shape should be BNHW[D] or B1HW[D], where N is the number of classes.
152
+
153
+ Raises:
154
+ ValueError: If the input is not 2D (BNHW) or 3D (BNHWD).
155
+ AssertionError: When input and target (after one hot transform if set)
156
+ have different shapes.
157
+ ValueError: When ``self.reduction`` is not one of ["mean", "sum", "none"].
158
+
159
+ Example:
160
+ >>> import torch
161
+ >>> from monai.losses import BoundaryLoss
162
+ >>> B, C, H, W = 2, 3, 5, 5
163
+ >>> input = torch.rand(B, C, H, W)
164
+ >>> target_idx = torch.randint(0, C, size=(B, H, W)).long()
165
+ >>> target = one_hot(target_idx[:, None, ...], num_classes=C)
166
+ >>> bl = BoundaryLoss(softmax=True)
167
+ >>> loss = bl(input, target)
168
+ """
169
+ if input.dim() not in (4, 5):
170
+ raise ValueError("Only 2D (BNHW) and 3D (BNHWD) supported")
171
+
172
+ n_pred_ch = input.shape[1]
173
+
174
+ # Apply activation to input
175
+ if self.sigmoid:
176
+ input = torch.sigmoid(input)
177
+
178
+ if self.softmax:
179
+ if n_pred_ch == 1:
180
+ warnings.warn("single channel prediction, `softmax=True` ignored.", stacklevel=2)
181
+ else:
182
+ input = torch.softmax(input, dim=1)
183
+
184
+ if self.other_act is not None:
185
+ input = self.other_act(input)
186
+
187
+ # Convert target to one-hot if needed
188
+ if self.to_onehot_y:
189
+ if n_pred_ch == 1:
190
+ warnings.warn("single channel prediction, `to_onehot_y=True` ignored.", stacklevel=2)
191
+ else:
192
+ if target.dim() == input.dim() - 1:
193
+ target = target.unsqueeze(dim=1)
194
+ target = one_hot(target, num_classes=n_pred_ch)
195
+
196
+ # Validate shapes match
197
+ if input.shape != target.shape:
198
+ raise AssertionError(f"input and target shapes do not match: {input.shape} vs {target.shape}")
199
+
200
+ # Exclude background if requested
201
+ if not self.include_background:
202
+ if n_pred_ch == 1:
203
+ warnings.warn("single channel prediction, `include_background=False` ignored.", stacklevel=2)
204
+ else:
205
+ input = input[:, 1:]
206
+ target = target[:, 1:]
207
+
208
+ # Compute signed distance maps from target
209
+ distance_map = self.compute_distance_map(target)
210
+
211
+ # Compute boundary loss: sum over spatial dimensions of (probabilities * distance_map)
212
+ # Then average over classes and batch
213
+ spatial_axes = list(range(2, input.dim()))
214
+
215
+ loss = torch.sum(input * distance_map, dim=spatial_axes)
216
+
217
+ # Normalize by number of pixels per class per batch element
218
+ num_pixels = torch.prod(torch.as_tensor(input.shape[2:], device=input.device))
219
+ loss = loss / num_pixels
220
+ if self.batch:
221
+ loss = loss.mean(dim=0)
222
+
223
+ if self.reduction == LossReduction.MEAN.value:
224
+ loss = loss.mean()
225
+ elif self.reduction == LossReduction.SUM.value:
226
+ loss = loss.sum()
227
+ elif self.reduction == LossReduction.NONE.value:
228
+ # Return shape (B, C') unless batch=True reduces the batch dimension first.
229
+ pass
230
+ else:
231
+ raise ValueError(f"Unsupported reduction: {self.reduction}")
232
+
233
+ return loss
@@ -26,6 +26,13 @@ from .dynunet_block import UnetBasicBlock, UnetOutBlock, UnetResBlock, UnetUpBlo
26
26
  from .encoder import BaseEncoder
27
27
  from .fcn import FCN, GCN, MCFCN, Refine
28
28
  from .feature_pyramid_network import ExtraFPNBlock, FeaturePyramidNetwork, LastLevelMaxPool, LastLevelP6P7
29
+ from .hyena import (
30
+ DepthwiseFFTConv2d,
31
+ DepthwiseFFTConv3d,
32
+ HyenaMixer,
33
+ HyenaTransformerBlock,
34
+ is_nvsubquadratic_available,
35
+ )
29
36
  from .localnet_block import LocalNetDownSampleBlock, LocalNetFeatureExtractorBlock, LocalNetUpSampleBlock
30
37
  from .mednext_block import MedNeXtBlock, MedNeXtDownBlock, MedNeXtOutBlock, MedNeXtUpBlock
31
38
  from .mlp import MLPBlock