monai-weekly 1.7.dev2627__tar.gz → 1.7.dev2628__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 (451) hide show
  1. {monai_weekly-1.7.dev2627/monai_weekly.egg-info → monai_weekly-1.7.dev2628}/PKG-INFO +3 -1
  2. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/__init__.py +1 -1
  3. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_version.py +3 -3
  4. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/image_reader.py +13 -0
  5. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/__init__.py +7 -0
  6. monai_weekly-1.7.dev2628/monai/networks/blocks/hyena.py +555 -0
  7. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/warp.py +4 -1
  8. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/__init__.py +1 -0
  9. monai_weekly-1.7.dev2628/monai/networks/nets/hyena_nd_unetr.py +151 -0
  10. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/swin_unetr.py +223 -55
  11. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/intensity/array.py +2 -5
  12. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628/monai_weekly.egg-info}/PKG-INFO +3 -1
  13. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai_weekly.egg-info/SOURCES.txt +2 -0
  14. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai_weekly.egg-info/requires.txt +3 -0
  15. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/setup.cfg +2 -0
  16. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/LICENSE +0 -0
  17. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/MANIFEST.in +0 -0
  18. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/README.md +0 -0
  19. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/__init__.py +0 -0
  20. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/gmm/gmm.cpp +0 -0
  21. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/gmm/gmm.h +0 -0
  22. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/gmm/gmm_cpu.cpp +0 -0
  23. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/gmm/gmm_cuda.cu +0 -0
  24. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/gmm/gmm_cuda_linalg.cuh +0 -0
  25. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/_extensions/loader.py +0 -0
  26. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/__init__.py +0 -0
  27. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/__init__.py +0 -0
  28. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/__main__.py +0 -0
  29. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/auto_runner.py +0 -0
  30. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/bundle_gen.py +0 -0
  31. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/data_analyzer.py +0 -0
  32. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/ensemble_builder.py +0 -0
  33. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/hpo_gen.py +0 -0
  34. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/transforms.py +0 -0
  35. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/auto3dseg/utils.py +0 -0
  36. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/datasets.py +0 -0
  37. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepedit/__init__.py +0 -0
  38. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepedit/interaction.py +0 -0
  39. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepedit/transforms.py +0 -0
  40. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepgrow/__init__.py +0 -0
  41. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepgrow/dataset.py +0 -0
  42. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepgrow/interaction.py +0 -0
  43. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/deepgrow/transforms.py +0 -0
  44. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/__init__.py +0 -0
  45. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/metrics/__init__.py +0 -0
  46. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/metrics/coco.py +0 -0
  47. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/metrics/matching.py +0 -0
  48. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/networks/__init__.py +0 -0
  49. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/networks/retinanet_detector.py +0 -0
  50. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/networks/retinanet_network.py +0 -0
  51. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/transforms/__init__.py +0 -0
  52. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/transforms/array.py +0 -0
  53. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/transforms/box_ops.py +0 -0
  54. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/transforms/dictionary.py +0 -0
  55. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/ATSS_matcher.py +0 -0
  56. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/__init__.py +0 -0
  57. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/anchor_utils.py +0 -0
  58. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/box_coder.py +0 -0
  59. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/box_selector.py +0 -0
  60. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/detector_utils.py +0 -0
  61. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/hard_negative_sampler.py +0 -0
  62. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/detection/utils/predict_utils.py +0 -0
  63. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/generation/__init__.py +0 -0
  64. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/generation/maisi/__init__.py +0 -0
  65. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/generation/maisi/networks/__init__.py +0 -0
  66. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/generation/maisi/networks/autoencoderkl_maisi.py +0 -0
  67. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/generation/maisi/networks/controlnet_maisi.py +0 -0
  68. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/generation/maisi/networks/diffusion_model_unet_maisi.py +0 -0
  69. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/mmars/__init__.py +0 -0
  70. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/mmars/mmars.py +0 -0
  71. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/mmars/model_desc.py +0 -0
  72. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nnunet/__init__.py +0 -0
  73. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nnunet/__main__.py +0 -0
  74. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nnunet/nnunet_bundle.py +0 -0
  75. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nnunet/nnunetv2_runner.py +0 -0
  76. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nnunet/utils.py +0 -0
  77. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nuclick/__init__.py +0 -0
  78. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/nuclick/transforms.py +0 -0
  79. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/__init__.py +0 -0
  80. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/engines/__init__.py +0 -0
  81. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/engines/utils.py +0 -0
  82. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/handlers/__init__.py +0 -0
  83. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/handlers/utils.py +0 -0
  84. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/inferers/__init__.py +0 -0
  85. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/inferers/inferer.py +0 -0
  86. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/losses/__init__.py +0 -0
  87. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/losses/hovernet_loss.py +0 -0
  88. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/metrics/__init__.py +0 -0
  89. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/metrics/lesion_froc.py +0 -0
  90. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/__init__.py +0 -0
  91. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/post/__init__.py +0 -0
  92. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/post/array.py +0 -0
  93. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/post/dictionary.py +0 -0
  94. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/stain/__init__.py +0 -0
  95. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/stain/array.py +0 -0
  96. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/transforms/stain/dictionary.py +0 -0
  97. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/pathology/utils.py +0 -0
  98. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/__init__.py +0 -0
  99. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/complex_utils.py +0 -0
  100. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/fastmri_reader.py +0 -0
  101. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/mri_utils.py +0 -0
  102. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/__init__.py +0 -0
  103. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/blocks/__init__.py +0 -0
  104. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/blocks/varnetblock.py +0 -0
  105. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/nets/__init__.py +0 -0
  106. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/nets/coil_sensitivity_model.py +0 -0
  107. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/nets/complex_unet.py +0 -0
  108. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/nets/utils.py +0 -0
  109. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/networks/nets/varnet.py +0 -0
  110. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/transforms/__init__.py +0 -0
  111. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/transforms/array.py +0 -0
  112. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/reconstruction/transforms/dictionary.py +0 -0
  113. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/tcia/__init__.py +0 -0
  114. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/tcia/label_desc.py +0 -0
  115. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/tcia/utils.py +0 -0
  116. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/utils.py +0 -0
  117. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/vista3d/__init__.py +0 -0
  118. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/vista3d/inferer.py +0 -0
  119. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/vista3d/sampler.py +0 -0
  120. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/apps/vista3d/transforms.py +0 -0
  121. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/auto3dseg/__init__.py +0 -0
  122. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/auto3dseg/algo_gen.py +0 -0
  123. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/auto3dseg/analyzer.py +0 -0
  124. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/auto3dseg/operations.py +0 -0
  125. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/auto3dseg/seg_summarizer.py +0 -0
  126. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/auto3dseg/utils.py +0 -0
  127. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/__init__.py +0 -0
  128. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/__main__.py +0 -0
  129. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/config_item.py +0 -0
  130. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/config_parser.py +0 -0
  131. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/properties.py +0 -0
  132. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/reference_resolver.py +0 -0
  133. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/scripts.py +0 -0
  134. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/utils.py +0 -0
  135. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/bundle/workflows.py +0 -0
  136. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/config/__init__.py +0 -0
  137. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/config/deviceconfig.py +0 -0
  138. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/config/type_definitions.py +0 -0
  139. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/__init__.py +0 -0
  140. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/box_utils.py +0 -0
  141. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/csv_saver.py +0 -0
  142. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/dataloader.py +0 -0
  143. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/dataset.py +0 -0
  144. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/dataset_summary.py +0 -0
  145. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/decathlon_datalist.py +0 -0
  146. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/fft_utils.py +0 -0
  147. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/folder_layout.py +0 -0
  148. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/grid_dataset.py +0 -0
  149. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/image_dataset.py +0 -0
  150. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/image_writer.py +0 -0
  151. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/iterable_dataset.py +0 -0
  152. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/itk_torch_bridge.py +0 -0
  153. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/meta_obj.py +0 -0
  154. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/meta_tensor.py +0 -0
  155. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/samplers.py +0 -0
  156. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/synthetic.py +0 -0
  157. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/test_time_augmentation.py +0 -0
  158. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/thread_buffer.py +0 -0
  159. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/torchscript_utils.py +0 -0
  160. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/ultrasound_confidence_map.py +0 -0
  161. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/utils.py +0 -0
  162. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/video_dataset.py +0 -0
  163. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/wsi_datasets.py +0 -0
  164. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/data/wsi_reader.py +0 -0
  165. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/engines/__init__.py +0 -0
  166. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/engines/evaluator.py +0 -0
  167. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/engines/trainer.py +0 -0
  168. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/engines/utils.py +0 -0
  169. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/engines/workflow.py +0 -0
  170. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/__init__.py +0 -0
  171. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/client/__init__.py +0 -0
  172. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/client/client_algo.py +0 -0
  173. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/client/monai_algo.py +0 -0
  174. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/utils/__init__.py +0 -0
  175. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/utils/constants.py +0 -0
  176. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/utils/exchange_object.py +0 -0
  177. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/fl/utils/filters.py +0 -0
  178. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/__init__.py +0 -0
  179. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/average_precision.py +0 -0
  180. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/calibration.py +0 -0
  181. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/checkpoint_loader.py +0 -0
  182. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/checkpoint_saver.py +0 -0
  183. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/classification_saver.py +0 -0
  184. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/clearml_handlers.py +0 -0
  185. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/confusion_matrix.py +0 -0
  186. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/decollate_batch.py +0 -0
  187. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/earlystop_handler.py +0 -0
  188. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/garbage_collector.py +0 -0
  189. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/hausdorff_distance.py +0 -0
  190. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/ignite_metric.py +0 -0
  191. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/logfile_handler.py +0 -0
  192. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/lr_schedule_handler.py +0 -0
  193. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/mean_dice.py +0 -0
  194. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/mean_iou.py +0 -0
  195. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/metric_logger.py +0 -0
  196. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/metrics_reloaded_handler.py +0 -0
  197. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/metrics_saver.py +0 -0
  198. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/mlflow_handler.py +0 -0
  199. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/nvtx_handlers.py +0 -0
  200. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/panoptic_quality.py +0 -0
  201. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/parameter_scheduler.py +0 -0
  202. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/postprocessing.py +0 -0
  203. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/probability_maps.py +0 -0
  204. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/regression_metrics.py +0 -0
  205. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/roc_auc.py +0 -0
  206. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/smartcache_handler.py +0 -0
  207. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/stats_handler.py +0 -0
  208. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/surface_distance.py +0 -0
  209. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/tensorboard_handlers.py +0 -0
  210. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/trt_handler.py +0 -0
  211. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/utils.py +0 -0
  212. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/handlers/validation_handler.py +0 -0
  213. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/inferers/__init__.py +0 -0
  214. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/inferers/inferer.py +0 -0
  215. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/inferers/merger.py +0 -0
  216. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/inferers/splitter.py +0 -0
  217. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/inferers/utils.py +0 -0
  218. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/__init__.py +0 -0
  219. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/adversarial_loss.py +0 -0
  220. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/aucm_loss.py +0 -0
  221. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/barlow_twins.py +0 -0
  222. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/cldice.py +0 -0
  223. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/contrastive.py +0 -0
  224. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/deform.py +0 -0
  225. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/dice.py +0 -0
  226. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/ds_loss.py +0 -0
  227. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/focal_loss.py +0 -0
  228. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/giou_loss.py +0 -0
  229. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/hausdorff_loss.py +0 -0
  230. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/image_dissimilarity.py +0 -0
  231. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/mcc_loss.py +0 -0
  232. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/multi_scale.py +0 -0
  233. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/nacl_loss.py +0 -0
  234. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/perceptual.py +0 -0
  235. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/spatial_mask.py +0 -0
  236. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/spectral_loss.py +0 -0
  237. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/ssim_loss.py +0 -0
  238. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/sure_loss.py +0 -0
  239. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/tversky.py +0 -0
  240. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/unified_focal_loss.py +0 -0
  241. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/losses/utils.py +0 -0
  242. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/__init__.py +0 -0
  243. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/absolute_volume_difference.py +0 -0
  244. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/active_learning_metrics.py +0 -0
  245. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/average_precision.py +0 -0
  246. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/calibration.py +0 -0
  247. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/confusion_matrix.py +0 -0
  248. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/cumulative_average.py +0 -0
  249. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/embedding_collapse.py +0 -0
  250. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/f_beta_score.py +0 -0
  251. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/fid.py +0 -0
  252. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/froc.py +0 -0
  253. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/generalized_dice.py +0 -0
  254. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/hausdorff_distance.py +0 -0
  255. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/loss_metric.py +0 -0
  256. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/meandice.py +0 -0
  257. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/meaniou.py +0 -0
  258. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/metric.py +0 -0
  259. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/mmd.py +0 -0
  260. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/panoptic_quality.py +0 -0
  261. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/regression.py +0 -0
  262. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/rocauc.py +0 -0
  263. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/surface_dice.py +0 -0
  264. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/surface_distance.py +0 -0
  265. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/utils.py +0 -0
  266. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/metrics/wrapper.py +0 -0
  267. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/__init__.py +0 -0
  268. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/acti_norm.py +0 -0
  269. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/activation.py +0 -0
  270. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/activation_checkpointing.py +0 -0
  271. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/aspp.py +0 -0
  272. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/attention_utils.py +0 -0
  273. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/backbone_fpn_utils.py +0 -0
  274. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/cablock.py +0 -0
  275. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/convolutions.py +0 -0
  276. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/crf.py +0 -0
  277. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/crossattention.py +0 -0
  278. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/denseblock.py +0 -0
  279. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/dints_block.py +0 -0
  280. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/downsample.py +0 -0
  281. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/dynunet_block.py +0 -0
  282. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/encoder.py +0 -0
  283. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/fcn.py +0 -0
  284. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/feature_pyramid_network.py +0 -0
  285. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/fft_utils_t.py +0 -0
  286. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/localnet_block.py +0 -0
  287. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/mednext_block.py +0 -0
  288. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/mlp.py +0 -0
  289. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/patchembedding.py +0 -0
  290. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/pos_embed_utils.py +0 -0
  291. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/regunet_block.py +0 -0
  292. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/rel_pos_embedding.py +0 -0
  293. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/segresnet_block.py +0 -0
  294. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/selfattention.py +0 -0
  295. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/spade_norm.py +0 -0
  296. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/spatialattention.py +0 -0
  297. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/squeeze_and_excitation.py +0 -0
  298. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/text_embedding.py +0 -0
  299. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/transformerblock.py +0 -0
  300. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/unetr_block.py +0 -0
  301. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/blocks/upsample.py +0 -0
  302. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/__init__.py +0 -0
  303. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/conjugate_gradient.py +0 -0
  304. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/convutils.py +0 -0
  305. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/drop_path.py +0 -0
  306. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/factories.py +0 -0
  307. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/filtering.py +0 -0
  308. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/gmm.py +0 -0
  309. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/simplelayers.py +0 -0
  310. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/spatial_transforms.py +0 -0
  311. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/utils.py +0 -0
  312. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/vector_quantizer.py +0 -0
  313. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/layers/weight_init.py +0 -0
  314. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/ahnet.py +0 -0
  315. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/attentionunet.py +0 -0
  316. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/autoencoder.py +0 -0
  317. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/autoencoderkl.py +0 -0
  318. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/basic_unet.py +0 -0
  319. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/basic_unetplusplus.py +0 -0
  320. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/cell_sam_wrapper.py +0 -0
  321. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/classifier.py +0 -0
  322. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/controlnet.py +0 -0
  323. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/daf3d.py +0 -0
  324. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/densenet.py +0 -0
  325. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/diffusion_model_unet.py +0 -0
  326. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/dints.py +0 -0
  327. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/dynunet.py +0 -0
  328. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/efficientnet.py +0 -0
  329. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/flexible_unet.py +0 -0
  330. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/fullyconnectednet.py +0 -0
  331. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/generator.py +0 -0
  332. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/highresnet.py +0 -0
  333. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/hovernet.py +0 -0
  334. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/masked_autoencoder_vit.py +0 -0
  335. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/mednext.py +0 -0
  336. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/milmodel.py +0 -0
  337. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/netadapter.py +0 -0
  338. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/patchgan_discriminator.py +0 -0
  339. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/quicknat.py +0 -0
  340. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/regressor.py +0 -0
  341. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/regunet.py +0 -0
  342. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/resnet.py +0 -0
  343. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/restormer.py +0 -0
  344. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/segresnet.py +0 -0
  345. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/segresnet_ds.py +0 -0
  346. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/senet.py +0 -0
  347. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/spade_autoencoderkl.py +0 -0
  348. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/spade_diffusion_model_unet.py +0 -0
  349. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/spade_network.py +0 -0
  350. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/torchvision_fc.py +0 -0
  351. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/transchex.py +0 -0
  352. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/transformer.py +0 -0
  353. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/unet.py +0 -0
  354. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/unetr.py +0 -0
  355. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/varautoencoder.py +0 -0
  356. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/vista3d.py +0 -0
  357. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/vit.py +0 -0
  358. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/vitautoenc.py +0 -0
  359. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/vnet.py +0 -0
  360. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/voxelmorph.py +0 -0
  361. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/nets/vqvae.py +0 -0
  362. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/schedulers/__init__.py +0 -0
  363. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/schedulers/ddim.py +0 -0
  364. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/schedulers/ddpm.py +0 -0
  365. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/schedulers/pndm.py +0 -0
  366. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/schedulers/rectified_flow.py +0 -0
  367. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/schedulers/scheduler.py +0 -0
  368. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/trt_compiler.py +0 -0
  369. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/networks/utils.py +0 -0
  370. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/optimizers/__init__.py +0 -0
  371. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/optimizers/lr_finder.py +0 -0
  372. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/optimizers/lr_scheduler.py +0 -0
  373. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/optimizers/novograd.py +0 -0
  374. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/optimizers/utils.py +0 -0
  375. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/py.typed +0 -0
  376. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/__init__.py +0 -0
  377. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/adaptors.py +0 -0
  378. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/compose.py +0 -0
  379. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/croppad/__init__.py +0 -0
  380. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/croppad/array.py +0 -0
  381. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/croppad/batch.py +0 -0
  382. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/croppad/dictionary.py +0 -0
  383. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/croppad/functional.py +0 -0
  384. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/intensity/__init__.py +0 -0
  385. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/intensity/dictionary.py +0 -0
  386. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/inverse.py +0 -0
  387. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/inverse_batch_transform.py +0 -0
  388. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/io/__init__.py +0 -0
  389. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/io/array.py +0 -0
  390. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/io/dictionary.py +0 -0
  391. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/lazy/__init__.py +0 -0
  392. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/lazy/array.py +0 -0
  393. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/lazy/dictionary.py +0 -0
  394. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/lazy/functional.py +0 -0
  395. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/lazy/utils.py +0 -0
  396. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/meta_utility/__init__.py +0 -0
  397. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/meta_utility/dictionary.py +0 -0
  398. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/nvtx.py +0 -0
  399. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/post/__init__.py +0 -0
  400. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/post/array.py +0 -0
  401. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/post/dictionary.py +0 -0
  402. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/regularization/__init__.py +0 -0
  403. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/regularization/array.py +0 -0
  404. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/regularization/dictionary.py +0 -0
  405. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/signal/__init__.py +0 -0
  406. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/signal/array.py +0 -0
  407. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/signal/dictionary.py +0 -0
  408. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/smooth_field/__init__.py +0 -0
  409. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/smooth_field/array.py +0 -0
  410. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/smooth_field/dictionary.py +0 -0
  411. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/spatial/__init__.py +0 -0
  412. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/spatial/array.py +0 -0
  413. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/spatial/dictionary.py +0 -0
  414. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/spatial/functional.py +0 -0
  415. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/traits.py +0 -0
  416. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/transform.py +0 -0
  417. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utility/__init__.py +0 -0
  418. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utility/array.py +0 -0
  419. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utility/dictionary.py +0 -0
  420. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utils.py +0 -0
  421. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utils_create_transform_ims.py +0 -0
  422. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utils_morphological_ops.py +0 -0
  423. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/transforms/utils_pytorch_numpy_unification.py +0 -0
  424. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/__init__.py +0 -0
  425. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/component_store.py +0 -0
  426. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/decorators.py +0 -0
  427. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/deprecate_utils.py +0 -0
  428. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/dist.py +0 -0
  429. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/enums.py +0 -0
  430. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/jupyter_utils.py +0 -0
  431. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/misc.py +0 -0
  432. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/module.py +0 -0
  433. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/nvtx.py +0 -0
  434. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/ordering.py +0 -0
  435. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/profiling.py +0 -0
  436. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/state_cacher.py +0 -0
  437. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/tf32.py +0 -0
  438. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/utils/type_conversion.py +0 -0
  439. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/__init__.py +0 -0
  440. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/class_activation_maps.py +0 -0
  441. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/gradient_based.py +0 -0
  442. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/img2tensorboard.py +0 -0
  443. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/occlusion_sensitivity.py +0 -0
  444. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/utils.py +0 -0
  445. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai/visualize/visualizer.py +0 -0
  446. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai_weekly.egg-info/dependency_links.txt +0 -0
  447. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai_weekly.egg-info/not-zip-safe +0 -0
  448. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/monai_weekly.egg-info/top_level.txt +0 -0
  449. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/pyproject.toml +0 -0
  450. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/setup.py +0 -0
  451. {monai_weekly-1.7.dev2627 → monai_weekly-1.7.dev2628}/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.dev2628
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__ = "3bd4c4f23c758cc4eea0fe9c27108982950c6c44"
@@ -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-12T03:05:12+0000",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "9c37af81ef49b616038685d338f97726a0266440",
15
- "version": "1.7.dev2627"
14
+ "full-revisionid": "fefd2105dfb46d8321fafd96a482d83e430e372b",
15
+ "version": "1.7.dev2628"
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"]
@@ -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
@@ -0,0 +1,555 @@
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
+ HyenaND-based building blocks for MONAI networks.
13
+
14
+ These blocks provide a subquadratic O(N log N) alternative to windowed self-attention
15
+ in transformer-style segmentation networks. The operator is HyenaND from the
16
+ ``nvsubquadratic`` package, gated through a thin :class:`HyenaMixer` and wrapped in
17
+ the conventional pre-norm / MLP residual pattern by :class:`HyenaTransformerBlock`.
18
+
19
+ The supporting :class:`DepthwiseFFTConv2d` / :class:`DepthwiseFFTConv3d` classes are
20
+ drop-in depthwise convolutions implemented via FFT. They preserve the
21
+ ``nn.Conv{2,3}d`` weight layout and ``isinstance`` relationship but route the forward
22
+ pass through ``torch.fft.rfftn`` to avoid PyTorch's INT32 unfold limit, which caps
23
+ ``F.conv3d`` at ROI ~128 for typical medical-imaging channel counts.
24
+
25
+ ``nvsubquadratic`` is an optional dependency. The Hyena classes raise ``ImportError``
26
+ with an install hint at construction time if the library is unavailable; the
27
+ FFT-conv classes have no such dependency and always work.
28
+ """
29
+
30
+ from __future__ import annotations
31
+
32
+ from typing import cast
33
+
34
+ import torch
35
+ import torch.nn as nn
36
+ from torch.nn import LayerNorm
37
+
38
+ from monai.networks.blocks.mlp import MLPBlock
39
+ from monai.networks.layers.drop_path import DropPath
40
+ from monai.utils import optional_import
41
+
42
+ __all__ = [
43
+ "DepthwiseFFTConv2d",
44
+ "DepthwiseFFTConv3d",
45
+ "HyenaMixer",
46
+ "HyenaTransformerBlock",
47
+ "is_nvsubquadratic_available",
48
+ ]
49
+
50
+ # Optional ``nvsubquadratic`` symbols. Resolved at module-import time; the missing-dep
51
+ # error is raised lazily inside the consuming class ``__init__``. Every symbol the Hyena
52
+ # classes use carries its own availability flag so a partial / broken install (e.g.
53
+ # ``lazy_config`` present but ``modules.hyena_nd`` missing) reports unavailable rather than
54
+ # failing later with an opaque ``AttributeError``.
55
+ _LazyConfig, _has_lazyconfig = optional_import("nvsubquadratic.lazy_config", name="LazyConfig")
56
+ _instantiate, _has_instantiate = optional_import("nvsubquadratic.lazy_config", name="instantiate")
57
+ _Hyena, _has_hyena = optional_import("nvsubquadratic.modules.hyena_nd", name="Hyena")
58
+ _CKConvND, _has_ckconv = optional_import("nvsubquadratic.modules.ckconv_nd", name="CKConvND")
59
+ _SIRENKernelND, _has_siren = optional_import("nvsubquadratic.modules.kernels_nd", name="SIRENKernelND")
60
+ _GaussianModulationND, _has_gaussian = optional_import("nvsubquadratic.modules.masks_nd", name="GaussianModulationND")
61
+ _has_nvsubq = all((_has_lazyconfig, _has_instantiate, _has_hyena, _has_ckconv, _has_siren, _has_gaussian))
62
+
63
+ _NVSUBQ_INSTALL_HINT = (
64
+ "HyenaND operators require the optional 'nvsubquadratic' package (Python >= 3.10). "
65
+ "Install it with: pip install 'monai[hyena]' "
66
+ "(equivalently: pip install 'nvsubquadratic>=0.1.1'). "
67
+ "See https://docs.monai.io/en/latest/installation.html#installing-the-recommended-dependencies"
68
+ )
69
+
70
+
71
+ def is_nvsubquadratic_available() -> bool:
72
+ """Return ``True`` if the optional ``nvsubquadratic`` package is importable."""
73
+ return bool(_has_nvsubq)
74
+
75
+
76
+ # ---------------------------------------------------------------------------
77
+ # Depthwise FFT convolutions — no nvsubquadratic dependency
78
+ # ---------------------------------------------------------------------------
79
+
80
+
81
+ class _DepthwiseFFTForward:
82
+ """Mixin providing FFT-based forward for depthwise ``nn.Conv{2,3}d`` subclasses.
83
+
84
+ No ``nn.Module`` parent: module machinery comes from ``nn.Conv2d`` / ``nn.Conv3d``
85
+ in the concrete subclasses. Placed first in the MRO so ``forward`` resolves here
86
+ (FFT) rather than to ``nn.Conv{2,3}d.forward`` (im2col / unfold).
87
+
88
+ Avoids PyTorch's im2col INT32 overflow, which caps ``F.conv3d`` at ROI ~128 for
89
+ typical medical-imaging channel counts. There is no spatial-size restriction.
90
+
91
+ ``fft_chunk_size > 0`` enables channel-chunked FFT to cap peak memory:
92
+
93
+ peak ≈ (B × chunk × spatial × 4 + B × chunk × rfft_spatial × 8) bytes
94
+
95
+ instead of the full ``(B × C × ...)`` allocation.
96
+ """
97
+
98
+ _spatial_dims: int # set by subclasses
99
+ fft_chunk_size: int = 0 # 0 = no chunking; set in subclass __init__
100
+
101
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
102
+ spatial = x.shape[2:]
103
+ kernel_shape = self.weight.shape[2:] # type: ignore[attr-defined]
104
+ fft_dims = tuple(range(-self._spatial_dims, 0))
105
+ fft_size = [s + k - 1 for s, k in zip(spatial, kernel_shape)]
106
+ in_dtype = x.dtype
107
+
108
+ slices = (slice(None), slice(None)) + tuple(slice(k // 2, k // 2 + s) for s, k in zip(spatial, kernel_shape))
109
+
110
+ chunk = getattr(self, "fft_chunk_size", 0)
111
+ if chunk > 0 and x.shape[1] > chunk:
112
+ parts = []
113
+ for c0 in range(0, x.shape[1], chunk):
114
+ c1 = min(c0 + chunk, x.shape[1])
115
+ xc = x[:, c0:c1].float()
116
+ kc = self.weight[c0:c1].squeeze(1).float() # type: ignore[attr-defined]
117
+ kc = kc.flip(list(range(1, self._spatial_dims + 1)))
118
+ xc_fft = torch.fft.rfftn(xc, s=fft_size, dim=fft_dims)
119
+ kc_fft = torch.fft.rfftn(kc, s=fft_size, dim=fft_dims)
120
+ out_fft = xc_fft * kc_fft.unsqueeze(0)
121
+ del xc_fft, kc_fft
122
+ out_c = torch.fft.irfftn(out_fft, s=fft_size, dim=fft_dims)
123
+ del out_fft
124
+ parts.append(out_c[slices].to(in_dtype))
125
+ del out_c
126
+ return torch.cat(parts, dim=1)
127
+
128
+ x_f32 = x.float()
129
+ k_f32 = self.weight.squeeze(1).float() # type: ignore[attr-defined]
130
+ # PyTorch ``F.conv*`` computes cross-correlation; FFT computes convolution.
131
+ # Flip the kernel so the FFT output matches ``Conv{2,3}d`` exactly.
132
+ k_f32 = k_f32.flip(list(range(1, self._spatial_dims + 1)))
133
+
134
+ x_fft = torch.fft.rfftn(x_f32, s=fft_size, dim=fft_dims)
135
+ k_fft = torch.fft.rfftn(k_f32, s=fft_size, dim=fft_dims)
136
+
137
+ out_fft = x_fft * k_fft.unsqueeze(0)
138
+ out = torch.fft.irfftn(out_fft, s=fft_size, dim=fft_dims)
139
+ return cast(torch.Tensor, out[slices].to(in_dtype))
140
+
141
+
142
+ def _validate_depthwise_fft_args(
143
+ in_channels: int, out_channels: int, kernel_size: int, groups: int, padding: int, bias: bool
144
+ ) -> None:
145
+ """Validate the constructor arguments shared by ``DepthwiseFFTConv{2,3}d``.
146
+
147
+ The FFT forward only implements depthwise, bias-free, ``"same"``-style convolution: it
148
+ crops the full convolution back to the input spatial size assuming ``padding ==
149
+ kernel_size // 2`` with an odd kernel. Reject anything else up front rather than return a
150
+ silently wrong shape.
151
+ """
152
+ if not (in_channels == out_channels == groups):
153
+ raise ValueError(
154
+ "DepthwiseFFTConv only supports depthwise (groups == in_channels == out_channels); "
155
+ f"got in_channels={in_channels}, out_channels={out_channels}, groups={groups}"
156
+ )
157
+ if bias:
158
+ raise ValueError("bias is not supported in DepthwiseFFTConv")
159
+ if kernel_size % 2 == 0 or padding != kernel_size // 2:
160
+ raise ValueError(
161
+ "DepthwiseFFTConv only supports 'same'-style padding: kernel_size must be odd and "
162
+ f"padding must equal kernel_size // 2; got kernel_size={kernel_size}, padding={padding}. "
163
+ "The FFT forward crops to the input spatial size and does not implement general padding."
164
+ )
165
+
166
+
167
+ class DepthwiseFFTConv2d(_DepthwiseFFTForward, nn.Conv2d):
168
+ """2-D depthwise FFT convolution. ``isinstance(x, nn.Conv2d)`` remains ``True``.
169
+
170
+ Drop-in replacement for an ``nn.Conv2d`` with ``groups == in_channels == out_channels``
171
+ and ``bias=False``. Useful as the short-conv inside :class:`HyenaMixer` at large 2-D
172
+ inputs, where ``F.conv2d`` would not yet hit the INT32 limit but the unified
173
+ Conv2d/Conv3d API is convenient.
174
+
175
+ Only ``"same"``-style padding is supported: ``padding`` must equal ``kernel_size // 2``
176
+ (and ``kernel_size`` must be odd). The FFT forward crops its output back to the input
177
+ spatial size and does not implement general (e.g. ``"valid"``) padding.
178
+ """
179
+
180
+ _spatial_dims = 2
181
+
182
+ def __init__(
183
+ self,
184
+ in_channels: int,
185
+ out_channels: int,
186
+ kernel_size: int,
187
+ groups: int,
188
+ padding: int,
189
+ bias: bool = False,
190
+ fft_chunk_size: int = 0,
191
+ ) -> None:
192
+ _validate_depthwise_fft_args(in_channels, out_channels, kernel_size, groups, padding, bias)
193
+ nn.Conv2d.__init__(
194
+ self, in_channels, out_channels, kernel_size, stride=1, padding=padding, groups=groups, bias=False
195
+ )
196
+ self.fft_chunk_size = fft_chunk_size
197
+
198
+
199
+ class DepthwiseFFTConv3d(_DepthwiseFFTForward, nn.Conv3d):
200
+ """3-D depthwise FFT convolution. ``isinstance(x, nn.Conv3d)`` remains ``True``.
201
+
202
+ Drop-in replacement for an ``nn.Conv3d`` with ``groups == in_channels == out_channels``
203
+ and ``bias=False``. Avoids the INT32 unfold limit that prevents ``F.conv3d`` from
204
+ running at ROI > ~128 for typical medical-imaging channel counts.
205
+
206
+ Only ``"same"``-style padding is supported: ``padding`` must equal ``kernel_size // 2``
207
+ (and ``kernel_size`` must be odd). The FFT forward crops its output back to the input
208
+ spatial size and does not implement general (e.g. ``"valid"``) padding.
209
+ """
210
+
211
+ _spatial_dims = 3
212
+
213
+ def __init__(
214
+ self,
215
+ in_channels: int,
216
+ out_channels: int,
217
+ kernel_size: int,
218
+ groups: int,
219
+ padding: int,
220
+ bias: bool = False,
221
+ fft_chunk_size: int = 0,
222
+ ) -> None:
223
+ _validate_depthwise_fft_args(in_channels, out_channels, kernel_size, groups, padding, bias)
224
+ nn.Conv3d.__init__(
225
+ self, in_channels, out_channels, kernel_size, stride=1, padding=padding, groups=groups, bias=False
226
+ )
227
+ self.fft_chunk_size = fft_chunk_size
228
+
229
+
230
+ # ---------------------------------------------------------------------------
231
+ # HyenaMixer — QKV-projected gated long-conv mixer
232
+ # ---------------------------------------------------------------------------
233
+
234
+
235
+ class HyenaMixer(nn.Module):
236
+ """QKV-projected gated long-convolution mixer using HyenaND.
237
+
238
+ Replaces self-attention with the HyenaND operator from ``nvsubquadratic``, providing
239
+ a global receptive field at O(N log N) cost via FFT. ``HyenaMixer`` matches the
240
+ channels-last layout ``[B, *spatial, C]`` expected by Swin-style transformer
241
+ blocks; the underlying HyenaND operator handles the 2-D / 3-D distinction.
242
+
243
+ The HyenaND FFT path requires float32 precision, so the inner mixer call is
244
+ wrapped in ``torch.amp.autocast("cuda", enabled=False)``. Inputs are cast to
245
+ float32 before the mixer call and back to the original dtype after, so the block
246
+ is transparent under ``torch.autocast``.
247
+
248
+ Args:
249
+ dim: hidden dimension.
250
+ spatial_dims: 2 or 3.
251
+ use_rope: kept for forward-compatibility with older configurations.
252
+ ``nvsubquadratic`` removed RoPE from HyenaND on 2026-04-27 and this kwarg
253
+ is now a silent no-op.
254
+ apply_qk_norm: whether to apply per-channel LayerNorm to Q (and to K when the
255
+ first gate is the identity, as is the default here).
256
+ short_conv_kernel_size: depthwise short-convolution kernel size on the
257
+ concatenated ``[Q; K; V]`` tensor.
258
+ kernel_mlp_hidden_dim: hidden dim of the SIREN implicit kernel MLP.
259
+ kernel_num_layers: depth of the SIREN implicit kernel.
260
+ kernel_omega_0: SIREN frequency. Default 10.0 (stable). Higher values allow
261
+ higher-frequency kernels but reduce training stability.
262
+ kernel_l_cache: SIREN coordinate-grid cache size per spatial dim. Memory
263
+ scales as ``(2L-1) ** D × D × 4`` bytes; set to ``>= max(spatial_dims)``
264
+ to pre-allocate.
265
+ mask_max_attenuation: Gaussian-modulation attenuation at the grid boundary
266
+ for the widest channel (0–1). Default 0.95.
267
+ fft_padding: ``"circular"`` or ``"zero"``.
268
+ grid_type: ``"single"`` (kernel size = input size; required for circular
269
+ padding) or ``"double"`` (kernel size = 2× input size; only valid with
270
+ ``"zero"`` padding).
271
+ use_chunked_fftconv: chunk the FFT convolution by channel to reduce peak
272
+ memory ~26% with ~11% compute overhead. Requires ``fft_padding="zero"``.
273
+ use_fft_short_conv: replace the depthwise short conv with
274
+ :class:`DepthwiseFFTConv{2,3}d`, eliminating the INT32 unfold limit and
275
+ enabling unlimited ROI sizes. Adds ~11% compute overhead.
276
+ short_conv_fft_chunk_size: channel chunk size for the FFT short conv
277
+ (0 = no chunking).
278
+
279
+ Raises:
280
+ ImportError: if ``nvsubquadratic`` is not installed.
281
+ ValueError: on invalid ``spatial_dims`` / ``fft_padding`` / ``grid_type``
282
+ combinations.
283
+ """
284
+
285
+ def __init__(
286
+ self,
287
+ dim: int,
288
+ spatial_dims: int = 3,
289
+ use_rope: bool = True,
290
+ apply_qk_norm: bool = True,
291
+ short_conv_kernel_size: int = 3,
292
+ kernel_mlp_hidden_dim: int = 32,
293
+ kernel_num_layers: int = 3,
294
+ kernel_omega_0: float = 10.0,
295
+ kernel_l_cache: int = 32,
296
+ mask_max_attenuation: float = 0.95,
297
+ fft_padding: str = "circular",
298
+ grid_type: str = "single",
299
+ use_chunked_fftconv: bool = False,
300
+ use_fft_short_conv: bool = False,
301
+ short_conv_fft_chunk_size: int = 0,
302
+ ) -> None:
303
+ super().__init__()
304
+
305
+ if not _has_nvsubq:
306
+ raise ImportError(_NVSUBQ_INSTALL_HINT)
307
+
308
+ if fft_padding not in ("circular", "zero"):
309
+ raise ValueError(f"fft_padding must be 'circular' or 'zero', got '{fft_padding}'")
310
+ if grid_type not in ("single", "double"):
311
+ raise ValueError(f"grid_type must be 'single' or 'double', got '{grid_type}'")
312
+ if fft_padding == "circular" and grid_type != "single":
313
+ raise ValueError(
314
+ "fft_padding='circular' requires grid_type='single' "
315
+ f"(kernel size must match input size for periodic convolution); got grid_type='{grid_type}'"
316
+ )
317
+ if use_chunked_fftconv and fft_padding != "zero":
318
+ raise ValueError(
319
+ "use_chunked_fftconv=True requires fft_padding='zero'; " f"got fft_padding='{fft_padding}'"
320
+ )
321
+
322
+ self.dim = dim
323
+ self.spatial_dims = spatial_dims
324
+
325
+ conv_class: type[nn.Module]
326
+ if use_fft_short_conv:
327
+ if spatial_dims == 2:
328
+ conv_class = DepthwiseFFTConv2d
329
+ elif spatial_dims == 3:
330
+ conv_class = DepthwiseFFTConv3d
331
+ else:
332
+ raise ValueError(f"spatial_dims must be 2 or 3, got {spatial_dims}")
333
+ else:
334
+ if spatial_dims == 2:
335
+ conv_class = nn.Conv2d
336
+ elif spatial_dims == 3:
337
+ conv_class = nn.Conv3d
338
+ else:
339
+ raise ValueError(f"spatial_dims must be 2 or 3, got {spatial_dims}")
340
+
341
+ global_conv_cfg = _LazyConfig(_CKConvND)(
342
+ data_dim=spatial_dims,
343
+ hidden_dim=dim,
344
+ kernel_cfg=_LazyConfig(_SIRENKernelND)(
345
+ data_dim=spatial_dims,
346
+ out_dim=dim,
347
+ mlp_hidden_dim=kernel_mlp_hidden_dim,
348
+ num_layers=kernel_num_layers,
349
+ embedding_dim=kernel_mlp_hidden_dim,
350
+ omega_0=kernel_omega_0,
351
+ L_cache=kernel_l_cache,
352
+ use_bias=True,
353
+ hidden_omega_0=1.0,
354
+ ),
355
+ mask_cfg=_LazyConfig(_GaussianModulationND)(
356
+ data_dim=spatial_dims,
357
+ num_channels=dim,
358
+ min_attenuation_at_step=0.1,
359
+ max_attenuation_at_limit=mask_max_attenuation,
360
+ init_extent=1.0,
361
+ parametrization="direct",
362
+ ),
363
+ grid_type=grid_type,
364
+ fft_padding=fft_padding,
365
+ use_chunked_fftconv=use_chunked_fftconv,
366
+ )
367
+
368
+ short_conv_kwargs: dict = dict(
369
+ in_channels=3 * dim,
370
+ out_channels=3 * dim,
371
+ kernel_size=short_conv_kernel_size,
372
+ groups=3 * dim,
373
+ padding=short_conv_kernel_size // 2,
374
+ bias=False,
375
+ )
376
+ if use_fft_short_conv and short_conv_fft_chunk_size > 0:
377
+ short_conv_kwargs["fft_chunk_size"] = short_conv_fft_chunk_size
378
+ short_conv_cfg = _LazyConfig(conv_class)(**short_conv_kwargs)
379
+
380
+ # ``use_rope`` retained on the API only; ``nvsubquadratic`` removed RoPE
381
+ # from ``Hyena.__init__`` on 2026-04-27. Saving the flag here keeps caller
382
+ # introspection intact ("did the user ask for RoPE?") while not affecting
383
+ # the constructed operator.
384
+ self._use_rope_requested = use_rope
385
+
386
+ self.mixer = _instantiate(
387
+ _LazyConfig(_Hyena)(
388
+ global_conv_cfg=global_conv_cfg,
389
+ short_conv_cfg=short_conv_cfg,
390
+ gate_nonlinear_cfg=_LazyConfig(nn.Identity)(),
391
+ pixelhyena_norm_cfg=_LazyConfig(nn.GroupNorm)(num_groups=1, num_channels=dim),
392
+ qk_norm_cfg=_LazyConfig(nn.LayerNorm)(normalized_shape=dim) if apply_qk_norm else None,
393
+ )
394
+ )
395
+
396
+ self.qkv_proj = nn.Linear(dim, 3 * dim, bias=False)
397
+ self.out_proj = nn.Linear(dim, dim, bias=False)
398
+ self._init_weights()
399
+
400
+ def _init_weights(self) -> None:
401
+ nn.init.normal_(self.qkv_proj.weight, std=0.02)
402
+ nn.init.normal_(self.out_proj.weight, std=0.02)
403
+
404
+ def forward(self, x: torch.Tensor) -> torch.Tensor:
405
+ """Forward pass.
406
+
407
+ Args:
408
+ x: tensor of shape ``[batch, *spatial, dim]``.
409
+
410
+ Returns:
411
+ Tensor of the same shape and dtype as the input.
412
+ """
413
+ qkv = self.qkv_proj(x)
414
+ q, k, v = torch.chunk(qkv, 3, dim=-1)
415
+
416
+ # HyenaND requires float32 internally; disable autocast for the mixer only,
417
+ # then restore the original (autocast) dtype afterwards.
418
+ with torch.amp.autocast("cuda", enabled=False):
419
+ q = q.float()
420
+ k = k.float()
421
+ v = v.float()
422
+ x = self.mixer(q, k, v)
423
+ x = x.to(qkv.dtype)
424
+ return cast(torch.Tensor, self.out_proj(x))
425
+
426
+
427
+ # ---------------------------------------------------------------------------
428
+ # HyenaTransformerBlock — pre-norm Hyena + MLP residual
429
+ # ---------------------------------------------------------------------------
430
+
431
+
432
+ class HyenaTransformerBlock(nn.Module):
433
+ """Pre-norm transformer block with HyenaND in place of self-attention.
434
+
435
+ Sandwiches a :class:`HyenaMixer` and an MLP between :class:`~torch.nn.LayerNorm`
436
+ layers in the standard transformer residual pattern, with optional gradient
437
+ checkpointing on each half.
438
+
439
+ Args:
440
+ dim: number of feature channels.
441
+ spatial_dims: 2 or 3.
442
+ mlp_ratio: hidden / input ratio for the MLP.
443
+ drop: dropout rate inside the MLP.
444
+ drop_path: stochastic-depth rate for the MLP residual.
445
+ act_layer: activation name passed to :class:`monai.networks.blocks.MLPBlock`.
446
+ norm_layer: normalization class (default :class:`~torch.nn.LayerNorm`).
447
+ use_checkpoint: enable gradient checkpointing on the mixer and MLP halves.
448
+ use_rope: forward-compatibility flag for older configs; no-op after the
449
+ ``nvsubquadratic`` 2026-04-27 RoPE removal.
450
+ apply_qk_norm: per-channel LayerNorm on Q (and K when the first gate is
451
+ identity, as is the default).
452
+ hyena_kernel_size: short-convolution kernel size on the QKV tensor.
453
+ hyena_kernel_mlp_dim: SIREN kernel MLP hidden dimension.
454
+ hyena_kernel_layers: SIREN kernel depth.
455
+ hyena_mask_max_attenuation: Gaussian-modulation boundary attenuation (0–1).
456
+ hyena_fft_padding: ``"circular"`` or ``"zero"``.
457
+ hyena_grid_type: ``"single"`` or ``"double"``.
458
+ hyena_use_chunked_fft: enable chunked FFT (requires zero padding).
459
+ hyena_use_fft_short_conv: use FFT for the short conv (no INT32 limit).
460
+ hyena_omega_0: SIREN ``omega_0``. Default 10.0.
461
+ hyena_l_cache: SIREN coordinate-grid cache size per dim.
462
+ hyena_short_conv_fft_chunks: channel chunk size for the FFT short conv.
463
+
464
+ Raises:
465
+ ImportError: if ``nvsubquadratic`` is not installed.
466
+ """
467
+
468
+ def __init__(
469
+ self,
470
+ dim: int,
471
+ spatial_dims: int = 3,
472
+ mlp_ratio: float = 4.0,
473
+ drop: float = 0.0,
474
+ drop_path: float = 0.0,
475
+ act_layer: str = "GELU",
476
+ norm_layer: type[LayerNorm] = nn.LayerNorm, # type: ignore[assignment]
477
+ use_checkpoint: bool = False,
478
+ use_rope: bool = True,
479
+ apply_qk_norm: bool = True,
480
+ hyena_kernel_size: int = 3,
481
+ hyena_kernel_mlp_dim: int = 32,
482
+ hyena_kernel_layers: int = 3,
483
+ hyena_mask_max_attenuation: float = 0.95,
484
+ hyena_fft_padding: str = "circular",
485
+ hyena_grid_type: str = "single",
486
+ hyena_use_chunked_fft: bool = False,
487
+ hyena_use_fft_short_conv: bool = False,
488
+ hyena_omega_0: float = 10.0,
489
+ hyena_l_cache: int = 32,
490
+ hyena_short_conv_fft_chunks: int = 0,
491
+ ) -> None:
492
+ super().__init__()
493
+ self.dim = dim
494
+ self.spatial_dims = spatial_dims
495
+ self.mlp_ratio = mlp_ratio
496
+ self.use_checkpoint = use_checkpoint
497
+
498
+ self.norm1 = norm_layer(dim)
499
+ self.mixer = HyenaMixer(
500
+ dim=dim,
501
+ spatial_dims=spatial_dims,
502
+ use_rope=use_rope,
503
+ apply_qk_norm=apply_qk_norm,
504
+ short_conv_kernel_size=hyena_kernel_size,
505
+ kernel_mlp_hidden_dim=hyena_kernel_mlp_dim,
506
+ kernel_num_layers=hyena_kernel_layers,
507
+ kernel_omega_0=hyena_omega_0,
508
+ kernel_l_cache=hyena_l_cache,
509
+ mask_max_attenuation=hyena_mask_max_attenuation,
510
+ fft_padding=hyena_fft_padding,
511
+ grid_type=hyena_grid_type,
512
+ use_chunked_fftconv=hyena_use_chunked_fft,
513
+ use_fft_short_conv=hyena_use_fft_short_conv,
514
+ short_conv_fft_chunk_size=hyena_short_conv_fft_chunks,
515
+ )
516
+ self.drop_path = DropPath(drop_path) if drop_path > 0.0 else nn.Identity()
517
+
518
+ self.norm2 = norm_layer(dim)
519
+ mlp_hidden_dim = int(dim * mlp_ratio)
520
+ self.mlp = MLPBlock(
521
+ hidden_size=dim, mlp_dim=mlp_hidden_dim, act=act_layer, dropout_rate=drop, dropout_mode="swin"
522
+ )
523
+
524
+ def forward_part1(self, x: torch.Tensor) -> torch.Tensor:
525
+ x = self.norm1(x)
526
+ return cast(torch.Tensor, self.mixer(x))
527
+
528
+ def forward_part2(self, x: torch.Tensor) -> torch.Tensor:
529
+ return cast(torch.Tensor, self.drop_path(self.mlp(self.norm2(x))))
530
+
531
+ def forward(self, x: torch.Tensor, mask_matrix: torch.Tensor | None = None) -> torch.Tensor:
532
+ """Forward pass.
533
+
534
+ Args:
535
+ x: input tensor of shape ``[batch, *spatial, dim]``.
536
+ mask_matrix: unused; accepted for signature parity with Swin's
537
+ ``WindowAttention``-based block so the two can be swapped at the
538
+ ``BasicLayer`` level without per-call branching.
539
+
540
+ Returns:
541
+ Tensor of the same shape as the input.
542
+ """
543
+ del mask_matrix
544
+ shortcut = x
545
+ if self.use_checkpoint:
546
+ x = torch.utils.checkpoint.checkpoint(self.forward_part1, x, use_reentrant=False)
547
+ else:
548
+ x = self.forward_part1(x)
549
+ x = shortcut + self.drop_path(x)
550
+
551
+ if self.use_checkpoint:
552
+ x = x + torch.utils.checkpoint.checkpoint(self.forward_part2, x, use_reentrant=False)
553
+ else:
554
+ x = x + self.forward_part2(x)
555
+ return x
@@ -155,7 +155,10 @@ class Warp(nn.Module):
155
155
 
156
156
  if not _use_compiled: # pytorch native grid_sample
157
157
  for i, dim in enumerate(grid.shape[1:-1]):
158
- grid[..., i] = grid[..., i] * 2 / (dim - 1) - 1
158
+ # guard against a singleton spatial dim (e.g. a single-slice volume), where
159
+ # ``dim - 1 == 0`` would divide by zero; clamp the denominator to 1 so the lone
160
+ # voxel maps to -1, matching ``monai.networks.utils.normalize_transform``.
161
+ grid[..., i] = grid[..., i] * 2 / max(dim - 1, 1) - 1
159
162
  index_ordering: list[int] = list(range(spatial_dims - 1, -1, -1))
160
163
  grid = grid[..., index_ordering] # z, y, x -> x, y, z
161
164
  return F.grid_sample(
@@ -53,6 +53,7 @@ from .fullyconnectednet import FullyConnectedNet, VarFullyConnectedNet
53
53
  from .generator import Generator
54
54
  from .highresnet import HighResBlock, HighResNet
55
55
  from .hovernet import Hovernet, HoVernet, HoVerNet, HoverNet
56
+ from .hyena_nd_unetr import HyenaNDUNETR
56
57
  from .masked_autoencoder_vit import MaskedAutoEncoderViT
57
58
  from .mednext import (
58
59
  MedNeXt,