monai-weekly 1.5.dev2515__py3-none-any.whl → 1.5.dev2517__py3-none-any.whl
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.
- monai/__init__.py +1 -1
- monai/_version.py +3 -3
- monai/networks/blocks/selfattention.py +5 -1
- monai/networks/nets/diffusion_model_unet.py +3 -3
- {monai_weekly-1.5.dev2515.dist-info → monai_weekly-1.5.dev2517.dist-info}/METADATA +1 -1
- {monai_weekly-1.5.dev2515.dist-info → monai_weekly-1.5.dev2517.dist-info}/RECORD +10 -10
- {monai_weekly-1.5.dev2515.dist-info → monai_weekly-1.5.dev2517.dist-info}/WHEEL +1 -1
- tests/networks/blocks/test_selfattention.py +21 -0
- {monai_weekly-1.5.dev2515.dist-info → monai_weekly-1.5.dev2517.dist-info}/licenses/LICENSE +0 -0
- {monai_weekly-1.5.dev2515.dist-info → monai_weekly-1.5.dev2517.dist-info}/top_level.txt +0 -0
monai/__init__.py
CHANGED
monai/_version.py
CHANGED
@@ -8,11 +8,11 @@ import json
|
|
8
8
|
|
9
9
|
version_json = '''
|
10
10
|
{
|
11
|
-
"date": "2025-04-
|
11
|
+
"date": "2025-04-27T02:33:13+0000",
|
12
12
|
"dirty": false,
|
13
13
|
"error": null,
|
14
|
-
"full-revisionid": "
|
15
|
-
"version": "1.5.
|
14
|
+
"full-revisionid": "f7de3a02b37a65a78b3cd813929aa4c20c7a5819",
|
15
|
+
"version": "1.5.dev2517"
|
16
16
|
}
|
17
17
|
''' # END VERSION_JSON
|
18
18
|
|
@@ -101,7 +101,11 @@ class SABlock(nn.Module):
|
|
101
101
|
|
102
102
|
self.num_heads = num_heads
|
103
103
|
self.hidden_input_size = hidden_input_size if hidden_input_size else hidden_size
|
104
|
-
self.out_proj
|
104
|
+
self.out_proj: Union[nn.Linear, nn.Identity]
|
105
|
+
if include_fc:
|
106
|
+
self.out_proj = nn.Linear(self.inner_dim, self.hidden_input_size)
|
107
|
+
else:
|
108
|
+
self.out_proj = nn.Identity()
|
105
109
|
|
106
110
|
self.qkv: Union[nn.Linear, nn.Identity]
|
107
111
|
self.to_q: Union[nn.Linear, nn.Identity]
|
@@ -1847,9 +1847,9 @@ class DiffusionModelUNet(nn.Module):
|
|
1847
1847
|
new_state_dict[f"{block}.attn.to_v.bias"] = old_state_dict.pop(f"{block}.to_v.bias")
|
1848
1848
|
|
1849
1849
|
# projection
|
1850
|
-
|
1851
|
-
|
1852
|
-
|
1850
|
+
if f"{block}.attn.out_proj.weight" in new_state_dict and f"{block}.attn.out_proj.bias" in new_state_dict:
|
1851
|
+
new_state_dict[f"{block}.attn.out_proj.weight"] = old_state_dict.pop(f"{block}.proj_attn.weight")
|
1852
|
+
new_state_dict[f"{block}.attn.out_proj.bias"] = old_state_dict.pop(f"{block}.proj_attn.bias")
|
1853
1853
|
# fix the cross attention blocks
|
1854
1854
|
cross_attention_blocks = [
|
1855
1855
|
k.replace(".out_proj.weight", "")
|
@@ -1,5 +1,5 @@
|
|
1
|
-
monai/__init__.py,sha256=
|
2
|
-
monai/_version.py,sha256=
|
1
|
+
monai/__init__.py,sha256=oAc7FNkCg0a5Ut7Byq-vqZEnbpfVNamoI80ftryF3ow,4095
|
2
|
+
monai/_version.py,sha256=enY04X9lAnhnlhFEsZ9XVESeOkU99RprIdRm8f0hrhA,503
|
3
3
|
monai/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
4
4
|
monai/_extensions/__init__.py,sha256=NEBPreRhQ8H9gVvgrLr_y52_TmqB96u_u4VQmeNT93I,642
|
5
5
|
monai/_extensions/loader.py,sha256=7SiKw36q-nOzH8CRbBurFrz7GM40GCu7rc93Tm8XpnI,3643
|
@@ -273,7 +273,7 @@ monai/networks/blocks/pos_embed_utils.py,sha256=alvCh5x_OF2lv8fO6vvhAwkQJHV7TJT6
|
|
273
273
|
monai/networks/blocks/regunet_block.py,sha256=1FLIwVBtk66II6xQ7Q4LMY8DP0rMmeftN7HuaEgnf3A,8825
|
274
274
|
monai/networks/blocks/rel_pos_embedding.py,sha256=wuTJsk_NHSDX-3V0X9ctF99WIh2-SHLDbQxzrG7tz_4,2208
|
275
275
|
monai/networks/blocks/segresnet_block.py,sha256=dREFa0CWuSWlSOm53fT7vZz6UC2J_7JAEaeHB9rYjAk,3339
|
276
|
-
monai/networks/blocks/selfattention.py,sha256=
|
276
|
+
monai/networks/blocks/selfattention.py,sha256=sXpJcU5o-SPR-wV3QNsUVfft3NCQPkzDA43T1SCRr3w,9689
|
277
277
|
monai/networks/blocks/spade_norm.py,sha256=Kq2ImmCQBaFURMnOTj08aphgGkF3ghDm19kXpPRq91c,3654
|
278
278
|
monai/networks/blocks/spatialattention.py,sha256=HhoOnp0YfygOZne8jZjxQezRXIwQg1kfs-Cdo0ruxhw,3442
|
279
279
|
monai/networks/blocks/squeeze_and_excitation.py,sha256=y2kXgoSFxywu-KCGYbI_d-NCCAEbuKAIY5gSqO_T7TI,12752
|
@@ -306,7 +306,7 @@ monai/networks/nets/classifier.py,sha256=U94OM91_pNT74wQV-_LOxAnbLvjuJvnorMK-xcE
|
|
306
306
|
monai/networks/nets/controlnet.py,sha256=x-FP4P6hYq6J8x0x25o6Ltfgn8oHO4AkUEw8cV0wUDA,18908
|
307
307
|
monai/networks/nets/daf3d.py,sha256=mjQiaCreKR8isE1pMWfPMWP55Uq9jcELcldu2CZo5PE,23963
|
308
308
|
monai/networks/nets/densenet.py,sha256=0LZqWU3HNfnEkNKBPwVg2GFoeIHQB5aBfP2_U54bv8g,15823
|
309
|
-
monai/networks/nets/diffusion_model_unet.py,sha256=
|
309
|
+
monai/networks/nets/diffusion_model_unet.py,sha256=fDo6CzTTRUwOxvQFAjPLg4_jvcg5wst63uQ-ZPt3fX4,81653
|
310
310
|
monai/networks/nets/dints.py,sha256=GAL2cmWOk_mhsRaIdZ3pr-mMLqncWINdJCWj26IukL0,44775
|
311
311
|
monai/networks/nets/dynunet.py,sha256=S2DX_tby7e5iCHL7q6X6f-vT6HwP6tbb2lRq9gHVJ24,18210
|
312
312
|
monai/networks/nets/efficientnet.py,sha256=RcEM7ZTLCp9PzE06sCJDUbStzMZpItSiZjDlbRUaz-4,40671
|
@@ -426,7 +426,7 @@ monai/visualize/img2tensorboard.py,sha256=n4ztSa5BQAUxSTGvi2tp45v-F7-RNgSlbsdy-9
|
|
426
426
|
monai/visualize/occlusion_sensitivity.py,sha256=OQHEJLyIhB8zWqQsfKaX-1kvCjWFVYtLfS4dFC0nKFI,18160
|
427
427
|
monai/visualize/utils.py,sha256=B-MhTVs7sQbIqYS3yPnpBwPw2K82rE2PBtGIfpwZtWM,9894
|
428
428
|
monai/visualize/visualizer.py,sha256=qckyaMZCbezYUwE20k5yc-Pb7UozVavMDbrmyQwfYHY,1377
|
429
|
-
monai_weekly-1.5.
|
429
|
+
monai_weekly-1.5.dev2517.dist-info/licenses/LICENSE,sha256=xx0jnfkXJvxRnG63LTGOxlggYnIysveWIZ6H3PNdCrQ,11357
|
430
430
|
tests/apps/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
431
431
|
tests/apps/test_auto3dseg_bundlegen.py,sha256=FpTJo9Lfe8vdhGuWeZ9y1BQmqYwTt-s8mDVtoLGAz_I,5594
|
432
432
|
tests/apps/test_check_hash.py,sha256=MuZslW2DDCxHKEo6-PiL7hnbxGuZRRYf6HOh3ZQv1qQ,1761
|
@@ -703,7 +703,7 @@ tests/networks/blocks/test_regunet_block.py,sha256=vCdRn2-6nfIBRhPSh_L-i53i6D8CL
|
|
703
703
|
tests/networks/blocks/test_se_block.py,sha256=zPYB-vPn0uCuTSCl7fB3XZ05V-DRuI88hZP8JXubiYI,2880
|
704
704
|
tests/networks/blocks/test_se_blocks.py,sha256=tl-treYRU6TqtlPJPKQ5sd5ZCUmiI9LiY4TQYm1mrFI,2810
|
705
705
|
tests/networks/blocks/test_segresnet_block.py,sha256=B1AId9BHB0IVm8yrc8oZP77IUbgRQx-OPw5Q4Pld2rM,2098
|
706
|
-
tests/networks/blocks/test_selfattention.py,sha256=
|
706
|
+
tests/networks/blocks/test_selfattention.py,sha256=T5rQNh2bJawUUFJ20CiNVJycdURC4JAsN1Qu-JfeeSk,10960
|
707
707
|
tests/networks/blocks/test_simple_aspp.py,sha256=PJDVYctTPdWZfnMrIZpI3BzaIf55Llj_e8_69SoBcf0,2809
|
708
708
|
tests/networks/blocks/test_spatialattention.py,sha256=Jxko8yLR16O28m4ljaZUUf3HfRDDjVUZzgEkeJcAx4Q,1909
|
709
709
|
tests/networks/blocks/test_subpixel_upsample.py,sha256=mCfrERzF76Xa31Mbd-gIiVjsftYUzt-9R6JaRg8-Eyw,3134
|
@@ -1189,7 +1189,7 @@ tests/visualize/test_vis_gradcam.py,sha256=WpA-pvTB75eZs7JoIc5qyvOV9PwgkzWI8-Vow
|
|
1189
1189
|
tests/visualize/utils/__init__.py,sha256=s9djSd6kvViPnFvMR11Dgd30Lv4oY6FaPJr4ZZJZLq0,573
|
1190
1190
|
tests/visualize/utils/test_blend_images.py,sha256=RVs2p_8RWQDfhLHDNNtZaMig27v8o0km7XxNa-zWjKE,2274
|
1191
1191
|
tests/visualize/utils/test_matshow3d.py,sha256=wXYj77L5Jvnp0f6DvL1rsi_-YlCxS0HJ9hiPmrbpuP8,5021
|
1192
|
-
monai_weekly-1.5.
|
1193
|
-
monai_weekly-1.5.
|
1194
|
-
monai_weekly-1.5.
|
1195
|
-
monai_weekly-1.5.
|
1192
|
+
monai_weekly-1.5.dev2517.dist-info/METADATA,sha256=FHPP_xvfmS24kYdbhrcP58agiRuGDApIrACnr8oiMXw,12104
|
1193
|
+
monai_weekly-1.5.dev2517.dist-info/WHEEL,sha256=SmOxYU7pzNKBqASvQJ7DjX3XGUF92lrGhMb3R6_iiqI,91
|
1194
|
+
monai_weekly-1.5.dev2517.dist-info/top_level.txt,sha256=hn2Y6P9xBf2R8faMeVMHhPMvrdDKxMsIOwMDYI0yTjs,12
|
1195
|
+
monai_weekly-1.5.dev2517.dist-info/RECORD,,
|
@@ -227,6 +227,27 @@ class TestResBlock(unittest.TestCase):
|
|
227
227
|
out_2 = block_wo_flash_attention(test_data)
|
228
228
|
assert_allclose(out_1, out_2, atol=1e-4)
|
229
229
|
|
230
|
+
@parameterized.expand([[True], [False]])
|
231
|
+
def test_no_extra_weights_if_no_fc(self, include_fc):
|
232
|
+
input_param = {
|
233
|
+
"hidden_size": 360,
|
234
|
+
"num_heads": 4,
|
235
|
+
"dropout_rate": 0.0,
|
236
|
+
"rel_pos_embedding": None,
|
237
|
+
"input_size": (16, 32),
|
238
|
+
"include_fc": include_fc,
|
239
|
+
"use_combined_linear": use_combined_linear,
|
240
|
+
}
|
241
|
+
net = SABlock(**input_param)
|
242
|
+
if not include_fc:
|
243
|
+
self.assertNotIn("out_proj.weight", net.state_dict())
|
244
|
+
self.assertNotIn("out_proj.bias", net.state_dict())
|
245
|
+
self.assertIsInstance(net.out_proj, torch.nn.Identity)
|
246
|
+
else:
|
247
|
+
self.assertIn("out_proj.weight", net.state_dict())
|
248
|
+
self.assertIn("out_proj.bias", net.state_dict())
|
249
|
+
self.assertIsInstance(net.out_proj, torch.nn.Linear)
|
250
|
+
|
230
251
|
|
231
252
|
if __name__ == "__main__":
|
232
253
|
unittest.main()
|
File without changes
|
File without changes
|