kaiko-eva 0.1.1__py3-none-any.whl → 0.1.5__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.
- eva/core/callbacks/writers/embeddings/base.py +3 -4
- eva/core/data/dataloaders/dataloader.py +2 -2
- eva/core/data/splitting/random.py +6 -5
- eva/core/data/splitting/stratified.py +12 -6
- eva/core/losses/__init__.py +5 -0
- eva/core/losses/cross_entropy.py +27 -0
- eva/core/metrics/__init__.py +0 -4
- eva/core/metrics/defaults/__init__.py +0 -2
- eva/core/models/modules/module.py +9 -9
- eva/core/models/transforms/extract_cls_features.py +17 -9
- eva/core/models/transforms/extract_patch_features.py +23 -11
- eva/core/utils/io/__init__.py +2 -1
- eva/core/utils/io/gz.py +28 -0
- eva/core/utils/multiprocessing.py +46 -1
- eva/core/utils/progress_bar.py +15 -0
- eva/vision/callbacks/loggers/batch/segmentation.py +7 -4
- eva/vision/data/datasets/__init__.py +4 -0
- eva/vision/data/datasets/classification/__init__.py +2 -1
- eva/vision/data/datasets/classification/camelyon16.py +4 -1
- eva/vision/data/datasets/classification/panda.py +17 -1
- eva/vision/data/datasets/classification/wsi.py +4 -1
- eva/vision/data/datasets/segmentation/__init__.py +2 -0
- eva/vision/data/datasets/segmentation/consep.py +2 -2
- eva/vision/data/datasets/segmentation/lits.py +49 -29
- eva/vision/data/datasets/segmentation/lits_balanced.py +93 -0
- eva/vision/data/datasets/segmentation/monusac.py +7 -7
- eva/vision/data/datasets/segmentation/total_segmentator_2d.py +50 -18
- eva/vision/data/datasets/wsi.py +37 -1
- eva/vision/data/wsi/patching/coordinates.py +9 -1
- eva/vision/data/wsi/patching/samplers/_utils.py +2 -8
- eva/vision/data/wsi/patching/samplers/random.py +4 -2
- eva/vision/losses/__init__.py +2 -2
- eva/vision/losses/dice.py +75 -8
- eva/vision/metrics/__init__.py +11 -0
- eva/vision/metrics/defaults/__init__.py +7 -0
- eva/{core → vision}/metrics/defaults/segmentation/__init__.py +1 -1
- eva/{core → vision}/metrics/defaults/segmentation/multiclass.py +2 -1
- eva/vision/metrics/segmentation/BUILD +1 -0
- eva/vision/metrics/segmentation/__init__.py +9 -0
- eva/vision/metrics/segmentation/_utils.py +69 -0
- eva/{core/metrics → vision/metrics/segmentation}/generalized_dice.py +12 -10
- eva/vision/metrics/segmentation/mean_iou.py +57 -0
- eva/vision/models/modules/semantic_segmentation.py +4 -3
- eva/vision/models/networks/backbones/_utils.py +12 -0
- eva/vision/models/networks/backbones/pathology/__init__.py +4 -1
- eva/vision/models/networks/backbones/pathology/histai.py +8 -2
- eva/vision/models/networks/backbones/pathology/mahmood.py +2 -9
- eva/vision/models/networks/backbones/pathology/owkin.py +14 -0
- eva/vision/models/networks/backbones/pathology/paige.py +51 -0
- eva/vision/models/networks/decoders/__init__.py +1 -1
- eva/vision/models/networks/decoders/segmentation/__init__.py +12 -4
- eva/vision/models/networks/decoders/segmentation/base.py +16 -0
- eva/vision/models/networks/decoders/segmentation/{conv2d.py → decoder2d.py} +26 -22
- eva/vision/models/networks/decoders/segmentation/linear.py +2 -2
- eva/vision/models/networks/decoders/segmentation/semantic/__init__.py +12 -0
- eva/vision/models/networks/decoders/segmentation/{common.py → semantic/common.py} +3 -3
- eva/vision/models/networks/decoders/segmentation/semantic/with_image.py +94 -0
- eva/vision/models/networks/decoders/segmentation/typings.py +18 -0
- eva/vision/utils/colormap.py +20 -0
- eva/vision/utils/io/__init__.py +7 -1
- eva/vision/utils/io/nifti.py +19 -4
- {kaiko_eva-0.1.1.dist-info → kaiko_eva-0.1.5.dist-info}/METADATA +8 -39
- {kaiko_eva-0.1.1.dist-info → kaiko_eva-0.1.5.dist-info}/RECORD +66 -52
- {kaiko_eva-0.1.1.dist-info → kaiko_eva-0.1.5.dist-info}/WHEEL +1 -1
- eva/core/metrics/mean_iou.py +0 -120
- eva/vision/models/networks/decoders/decoder.py +0 -7
- {kaiko_eva-0.1.1.dist-info → kaiko_eva-0.1.5.dist-info}/entry_points.txt +0 -0
- {kaiko_eva-0.1.1.dist-info → kaiko_eva-0.1.5.dist-info}/licenses/LICENSE +0 -0
|
@@ -7,7 +7,7 @@ eva/core/callbacks/config.py,sha256=-DRt20a2aF9Z9-7nZvbGBcOZ30qNf3ESf25EPRgRL1w,
|
|
|
7
7
|
eva/core/callbacks/writers/__init__.py,sha256=z8cNVJOanj-yYyIiX-mOkhur1NExuCOKzPjp4mmm3AE,232
|
|
8
8
|
eva/core/callbacks/writers/embeddings/__init__.py,sha256=zMxP4POf1yFFUVSjGcsQgyPYNY6JsZO_F66ngKJZaG8,301
|
|
9
9
|
eva/core/callbacks/writers/embeddings/_manifest.py,sha256=pB9nGv9ofVbnI4HHPrHY4p7jeFiFQTRc09zszto_DTk,2424
|
|
10
|
-
eva/core/callbacks/writers/embeddings/base.py,sha256=
|
|
10
|
+
eva/core/callbacks/writers/embeddings/base.py,sha256=YrjdqIFBYla-5jleUUTyJ5OHmvInhzLLHXEGmzwa9xA,7620
|
|
11
11
|
eva/core/callbacks/writers/embeddings/classification.py,sha256=pYU0dD08IXH4_pK-P43LqCMD17X-AP5Ayo9gbovwv6U,4522
|
|
12
12
|
eva/core/callbacks/writers/embeddings/segmentation.py,sha256=6AMGfD9Ur35TyH8ztjPx4ayB1Kbywymmu9LriMGLDoY,3135
|
|
13
13
|
eva/core/callbacks/writers/embeddings/typings.py,sha256=qXZSlasaSKHad6HyJeRTeUv-ZeJVM-R3oIaasD8ZPc8,997
|
|
@@ -17,7 +17,7 @@ eva/core/cli/logo.py,sha256=x6-vGWI0s9gza-xxQrBDi2wneb2wFU_mQGHgpAiq2MQ,786
|
|
|
17
17
|
eva/core/cli/setup.py,sha256=kR-7l4X5Hu8kSLoQZGYGIeLXtn9S_EU52dauDy6fm0w,2663
|
|
18
18
|
eva/core/data/__init__.py,sha256=yG3BeOWhp1EjVYMFqx8M_TBWFDyfIwwksQGQmMdSPaI,340
|
|
19
19
|
eva/core/data/dataloaders/__init__.py,sha256=fbNClVZ8J3QoGi4qiPq635ig1j9GdI7six3RhfwDbjY,110
|
|
20
|
-
eva/core/data/dataloaders/dataloader.py,sha256
|
|
20
|
+
eva/core/data/dataloaders/dataloader.py,sha256=n2NNlWKurEC1TVis347l6YmPgNOGTaoxwIyoClyPt7s,2383
|
|
21
21
|
eva/core/data/datamodules/__init__.py,sha256=qZchYbgxo9lxYnGoqdk0C6MfS2IbF0WItO0kCdP9Mqc,229
|
|
22
22
|
eva/core/data/datamodules/call.py,sha256=jjj9w3UXYuQB-qyCcw1EZpRJW10OC1I3dvgvsuQWLck,940
|
|
23
23
|
eva/core/data/datamodules/datamodule.py,sha256=dclC2YJAXUGEUpV9ZRWQS43-ksFIPgVeFudsyrj9kdc,3878
|
|
@@ -32,8 +32,8 @@ eva/core/data/datasets/embeddings.py,sha256=zNEO8KxqiOopcN_lTjwtEAm9xbnYDSjOE8X2
|
|
|
32
32
|
eva/core/data/samplers/__init__.py,sha256=WikBo1DemCx6o2vFfNwSwODlmCT2zWUXtCNwiWCVAFE,100
|
|
33
33
|
eva/core/data/samplers/sampler.py,sha256=vrrXERWC67fjmTk_uwD7s9-8-rdhvnx7OlSipHE6sdY,119
|
|
34
34
|
eva/core/data/splitting/__init__.py,sha256=VQJ8lfakbv6y2kAk3VDtITAvh7kcZo3H1JwJBc5jT08,198
|
|
35
|
-
eva/core/data/splitting/random.py,sha256=
|
|
36
|
-
eva/core/data/splitting/stratified.py,sha256=
|
|
35
|
+
eva/core/data/splitting/random.py,sha256=r6iy7j34seRTlyB79_Xy7m6lsKRi8ZM9X5Ln1b-SBjg,1453
|
|
36
|
+
eva/core/data/splitting/stratified.py,sha256=dliRHgEyZTOzpJrR8FzaRaAnjUxu_VsZUuy_4MPQjlY,2265
|
|
37
37
|
eva/core/data/transforms/__init__.py,sha256=n0TczmJSc9EjR6JezAZqlZIN4Gz_X3UBePbyDSC7JkE,308
|
|
38
38
|
eva/core/data/transforms/dtype/__init__.py,sha256=r_LM_hdh_gTsrgh3shDTdMpu-lgQNHJ1yD6wY3omPyg,174
|
|
39
39
|
eva/core/data/transforms/dtype/array.py,sha256=RDSkXlnSHSYyU_gv7vw33OZ7vhEy62PQGoE3htGGaqc,725
|
|
@@ -51,17 +51,15 @@ eva/core/loggers/log/image.py,sha256=iUwntQCdRNLtkSdqu8CvV34l06zPYVo4NAW2gUeiJIM
|
|
|
51
51
|
eva/core/loggers/log/parameters.py,sha256=7Xi-I5gQvEVv71d58bwdZ-Hb4287NXxaUyMfriq_KDU,1634
|
|
52
52
|
eva/core/loggers/log/utils.py,sha256=k4Q7uKpAQctfDv0EEYPnPv6wt9LnckEeqGvbYSLfKO0,415
|
|
53
53
|
eva/core/loggers/loggers.py,sha256=igHxdxJSotWSg6nEOKnfFuBszzblHgi8T7sBrE00FEs,166
|
|
54
|
-
eva/core/
|
|
54
|
+
eva/core/losses/__init__.py,sha256=D-Mp9fUFFFoH9YYWntVH3B839zHS3GjFJzkbQThzj6Y,118
|
|
55
|
+
eva/core/losses/cross_entropy.py,sha256=Sunz7ogDAJpGvZtuk9cAxKZJBO08CKIEvbCoewEvees,862
|
|
56
|
+
eva/core/metrics/__init__.py,sha256=-9Qch4npEQpy3oF6NUhh9WinCmFBFe0D2eEYCR0S0xU,558
|
|
55
57
|
eva/core/metrics/average_loss.py,sha256=AyFOnCXBD5T62eSYf6eGAAJsqt8x-KaHgc8OLkCHjzE,1267
|
|
56
58
|
eva/core/metrics/binary_balanced_accuracy.py,sha256=MabsXAtVfLqSaSIIpE0HIM6bo8uRszl6obueHI6vJi0,806
|
|
57
|
-
eva/core/metrics/defaults/__init__.py,sha256=
|
|
59
|
+
eva/core/metrics/defaults/__init__.py,sha256=IeqLcoxLNddtuuFao5r85ZVxTyFP6iFsj1K8iXCTSes,255
|
|
58
60
|
eva/core/metrics/defaults/classification/__init__.py,sha256=xMzE4yV8NoUdcmk2FCKohEUav1GJcxYn60S1KNgXbJY,316
|
|
59
61
|
eva/core/metrics/defaults/classification/binary.py,sha256=9ll6ZOcNGQdsg7ln9DAQ0u-OzsXSzEbueXe-dVJkJZ8,2322
|
|
60
62
|
eva/core/metrics/defaults/classification/multiclass.py,sha256=8Aesy_rKtp4KxfXJtDCmk6FsGxIFS4Ywu2CH1VIRL7M,2518
|
|
61
|
-
eva/core/metrics/defaults/segmentation/__init__.py,sha256=n6gDc603uRWOByAAPFkmZiPH2rEoZ3lSV9MC4nRMBuc,189
|
|
62
|
-
eva/core/metrics/defaults/segmentation/multiclass.py,sha256=_M7NtvwIrfzLLXtAYflFjIle6UeHYU9TwWo3IHl0wlw,1715
|
|
63
|
-
eva/core/metrics/generalized_dice.py,sha256=28vTdmh6QyLfSGtT5oARXp2Hd58EBNg5G0dSBfctvcY,2271
|
|
64
|
-
eva/core/metrics/mean_iou.py,sha256=eAvAe1BiYEXjOtWHUZD_5hBGuRmNhHVYuyGls8YC-1g,4619
|
|
65
63
|
eva/core/metrics/structs/__init__.py,sha256=cvn7E4k5vJmpwJj_zezmtZa_Nl_RddDM1G-MO8TP0po,422
|
|
66
64
|
eva/core/metrics/structs/collection.py,sha256=bNfCekHN8pzD49-YTqVxrmxFtiQfNxnv-RwkxCL6rbc,149
|
|
67
65
|
eva/core/metrics/structs/metric.py,sha256=zdnE0ZVTSYAMl7rW_OL6e1XiZDvLTirYqV0lgJCleXY,109
|
|
@@ -72,7 +70,7 @@ eva/core/models/__init__.py,sha256=bQSpfQJKuDMWosjcMhP7t5jdOSV6OyxdxTOIW9w1woE,3
|
|
|
72
70
|
eva/core/models/modules/__init__.py,sha256=QJWJ42BceXZBzDGgk5FHBcCaRrB9egTFKVF6gDsBYfM,255
|
|
73
71
|
eva/core/models/modules/head.py,sha256=iHrEOjYfshFI6OdXxJJTZyfCoUs2fimitINNcB6ENsc,4321
|
|
74
72
|
eva/core/models/modules/inference.py,sha256=ih-0Rr2oNf2N6maiXPOW7XH5KVwUT1_MOxnJKOhJ1uQ,978
|
|
75
|
-
eva/core/models/modules/module.py,sha256=
|
|
73
|
+
eva/core/models/modules/module.py,sha256=LtjYxTZb7UY0owonmt_yQ5EySw3sX-xD9HLN2io8EK4,6697
|
|
76
74
|
eva/core/models/modules/typings.py,sha256=yFMJCE4Nrfd8VEXU1zk8p6Sz5M7UslwitYPVC2OPLSY,776
|
|
77
75
|
eva/core/models/modules/utils/__init__.py,sha256=pnbxlEhT87JimWNr-NSNCv7VNR-IyDi_A9qRWmvlzwQ,227
|
|
78
76
|
eva/core/models/modules/utils/batch_postprocess.py,sha256=RwnDcjJy3uvVirpgx_80Q2CUYKfJKipVwjyX7AF2CKw,3088
|
|
@@ -80,8 +78,8 @@ eva/core/models/modules/utils/grad.py,sha256=bl8qb8g4Nhg1KAGfbEV_9HTKkoT0azRwfs9
|
|
|
80
78
|
eva/core/models/networks/__init__.py,sha256=yqx6UmG1Eg3vb1O_tnK_axnJWabEl9ULkDWiPN440Xc,85
|
|
81
79
|
eva/core/models/networks/mlp.py,sha256=thk-x4pviE3fCaMW9k3I2Oe5_DxfC-CqUrtolvVdXug,2418
|
|
82
80
|
eva/core/models/transforms/__init__.py,sha256=oYL3gNUUKZFViTu6GT1jVE2Kv1xFYPuyiYp-sErtVVg,257
|
|
83
|
-
eva/core/models/transforms/extract_cls_features.py,sha256=
|
|
84
|
-
eva/core/models/transforms/extract_patch_features.py,sha256=
|
|
81
|
+
eva/core/models/transforms/extract_cls_features.py,sha256=tFRd4H-eGFIGCfZt6wuZGibDmAoNXKSsn15bBw0IDdc,1482
|
|
82
|
+
eva/core/models/transforms/extract_patch_features.py,sha256=k50jTLPWxbfvciH9QZSzTAGqWwDSVpXAteme_Qg2d6E,2202
|
|
85
83
|
eva/core/models/wrappers/__init__.py,sha256=P-ipr4NtKqPU6ubAjKLGxFf1Qt2yDSNtgS2Xz5sBahQ,364
|
|
86
84
|
eva/core/models/wrappers/_utils.py,sha256=HXUyGcILaa8GK31ViIHCKRU4f9kbjAPYQmhvN2N7jSc,957
|
|
87
85
|
eva/core/models/wrappers/base.py,sha256=xKMUSXk93wI67p_wmh7jujK-bxvIefO1noYaAJN_5Ak,1359
|
|
@@ -96,44 +94,47 @@ eva/core/trainers/functional.py,sha256=NPxFCtU5KgquVowjeXAf_xj4-Thj7ZxN9F3sHRDrD
|
|
|
96
94
|
eva/core/trainers/trainer.py,sha256=Vw_KhTyh-3YV5qo_XHxz9oy-v2PxrgoOWMeYi8-41R0,3949
|
|
97
95
|
eva/core/utils/__init__.py,sha256=cndVBvtYxEW7hykH39GCNVI86zkXNn8Lw2A0sUJHS04,237
|
|
98
96
|
eva/core/utils/clone.py,sha256=qcThZOuAs1cs0uV3BL5eKeM2VIBjuRPBe1t-NiUFM5Y,569
|
|
99
|
-
eva/core/utils/io/__init__.py,sha256=
|
|
97
|
+
eva/core/utils/io/__init__.py,sha256=Py03AmoxhmTHkro6CzNps27uXKkXPzdA18mG97xHhWI,172
|
|
100
98
|
eva/core/utils/io/dataframe.py,sha256=CIHFowljH17waDkJ9YJVEVXAIcxMwoLjUgoBttiNk8w,509
|
|
99
|
+
eva/core/utils/io/gz.py,sha256=xxDkOUV2TFEK8pT7j6S_6iSzUUUmXN-sTum-gRuhij0,919
|
|
101
100
|
eva/core/utils/memory.py,sha256=ZvcbS1eUPXdHIoL8ctFU56_-cyUniObBmIctUbvso48,636
|
|
102
|
-
eva/core/utils/multiprocessing.py,sha256=
|
|
101
|
+
eva/core/utils/multiprocessing.py,sha256=BWX8AW_KPLgIIlbsPG1kYdtbHPx6Dklw13bu4u84pF0,3006
|
|
103
102
|
eva/core/utils/operations.py,sha256=eoC_ScuHUMDCuk08j1bosiQZdPrgiIODqqheR9MtJHQ,641
|
|
104
103
|
eva/core/utils/parser.py,sha256=2czmwEGJJ6PtmaD86s9I14P-_sek4DmDCkEatRGT5sI,725
|
|
104
|
+
eva/core/utils/progress_bar.py,sha256=KvvsM_v3_Fhb4JvbEEPHb4PJMokg6mNLj-o6dkfzcMc,499
|
|
105
105
|
eva/core/utils/workers.py,sha256=hfx63M82qNg0Dwhre2tl53MnhtRsV7APaDONM9nhVB8,634
|
|
106
106
|
eva/vision/__init__.py,sha256=oUZXFYjwtkWzi8An0uS5Xc84pLKintlXe2iti8zW6BQ,480
|
|
107
107
|
eva/vision/callbacks/__init__.py,sha256=su1V73L0dDVYWSyvV_lnWbszDi2KikRraF7OsgeaKl4,139
|
|
108
108
|
eva/vision/callbacks/loggers/__init__.py,sha256=td1JRJbE08nsGIZdO64_yLC3FUuMDp0kma0HjpUdXT4,161
|
|
109
109
|
eva/vision/callbacks/loggers/batch/__init__.py,sha256=DVYP7Aonbi4wg_ERHRj_8kb87Ee_75wRZzdduJ_icQk,173
|
|
110
110
|
eva/vision/callbacks/loggers/batch/base.py,sha256=hcAd5iiHvjZ0DIf4Qt4ENT54D6ky_1OO4rKQZqeo-1k,3628
|
|
111
|
-
eva/vision/callbacks/loggers/batch/segmentation.py,sha256=
|
|
111
|
+
eva/vision/callbacks/loggers/batch/segmentation.py,sha256=GYh2kfexW5pUZ0BdApYJI3e8xsuNkjIzkj5jnuKtHR4,6886
|
|
112
112
|
eva/vision/data/__init__.py,sha256=aoKPmX8P2Q2k2W3nlq8vFU41FV6Sze-0SDuWtU-ETh4,111
|
|
113
|
-
eva/vision/data/datasets/__init__.py,sha256=
|
|
113
|
+
eva/vision/data/datasets/__init__.py,sha256=COhMRB9QJcjfbmfpRcYEztDwN9pl7IJNiH29pCZo4CA,908
|
|
114
114
|
eva/vision/data/datasets/_utils.py,sha256=epPcaYE4w2_LtUKLLQJh6qQxUNVBe22JA06k4WUerYQ,1430
|
|
115
115
|
eva/vision/data/datasets/_validators.py,sha256=77WZj8ewsuxUjW5WegJ-7zDuR6WdF5JbaOYdywhKIK4,2594
|
|
116
|
-
eva/vision/data/datasets/classification/__init__.py,sha256=
|
|
116
|
+
eva/vision/data/datasets/classification/__init__.py,sha256=T2eg8k3xxd_Pdbrr7TGYICSo7BVOTMOs1bL-rLnMmro,693
|
|
117
117
|
eva/vision/data/datasets/classification/bach.py,sha256=kZba1dQlJWZAmA03akJ4fVUU-y9W8ezOwlgs2zL-QrE,5432
|
|
118
118
|
eva/vision/data/datasets/classification/base.py,sha256=Ci0HoOhOuHwICTi1TUGA1PwZe642RywolTVfMhKrFHk,2772
|
|
119
|
-
eva/vision/data/datasets/classification/camelyon16.py,sha256=
|
|
119
|
+
eva/vision/data/datasets/classification/camelyon16.py,sha256=sChvRo0jbOVUMJvfpsFxgFOsYgci3v9wjeMBEjUysJU,8287
|
|
120
120
|
eva/vision/data/datasets/classification/crc.py,sha256=8qjz9OklLg1gAr46RKZdlClmlO9awwfp0dkTs8v5jTE,5670
|
|
121
121
|
eva/vision/data/datasets/classification/mhist.py,sha256=xzShPncSfAV6Q5ojfimeq748MfA0n77fGWa9EpdRzYU,3055
|
|
122
|
-
eva/vision/data/datasets/classification/panda.py,sha256=
|
|
122
|
+
eva/vision/data/datasets/classification/panda.py,sha256=BU_gDoX3ZSDUugwaO2n0XSZhzseK1rkPoHMRoJLGL84,7303
|
|
123
123
|
eva/vision/data/datasets/classification/patch_camelyon.py,sha256=fElKteZKx4M6AjylnhhgNH1jewHegWc1K8h4FFKp0gE,7171
|
|
124
|
-
eva/vision/data/datasets/classification/wsi.py,sha256=
|
|
125
|
-
eva/vision/data/datasets/segmentation/__init__.py,sha256=
|
|
124
|
+
eva/vision/data/datasets/classification/wsi.py,sha256=x3mQ8iwyiSdfQOjJuV7_cd8-LRjjhY9tjtzuD8O87Lg,4099
|
|
125
|
+
eva/vision/data/datasets/segmentation/__init__.py,sha256=hGNr7BM_StxvmlOKWWfHp615qgsrB6BB3qMOiYhE0Og,791
|
|
126
126
|
eva/vision/data/datasets/segmentation/_utils.py,sha256=ps1qpuEkPgvwUw6H-KKaLaYqDBGmN7dNGk3bnS1l6sI,1261
|
|
127
127
|
eva/vision/data/datasets/segmentation/base.py,sha256=11IMODMB7KJ8Bs5p7MyOsBXCyPFJXfYcDLAIMitUwEk,3023
|
|
128
128
|
eva/vision/data/datasets/segmentation/bcss.py,sha256=NHjHd1tgIfIw6TxsZTGb63iMEwXFbWX_JAwRT5WVsj4,8274
|
|
129
|
-
eva/vision/data/datasets/segmentation/consep.py,sha256=
|
|
129
|
+
eva/vision/data/datasets/segmentation/consep.py,sha256=dCD8VsZSvI3-RbHHHAwGWfsNwOJCPkzHpVtzrcuAEVo,5871
|
|
130
130
|
eva/vision/data/datasets/segmentation/embeddings.py,sha256=0KaadzPxN6OrKNnFu3YsGBFkG6XqqvkOZYUhERPwL4A,1220
|
|
131
|
-
eva/vision/data/datasets/segmentation/lits.py,sha256=
|
|
132
|
-
eva/vision/data/datasets/segmentation/
|
|
133
|
-
eva/vision/data/datasets/segmentation/
|
|
131
|
+
eva/vision/data/datasets/segmentation/lits.py,sha256=_R5AGFX8jVPwK3UKaYQfIRLBpM5ZmDg6KRziisUDYps,7175
|
|
132
|
+
eva/vision/data/datasets/segmentation/lits_balanced.py,sha256=s5kPfqB41Vkcm5Jh34mLAO0NweMSIlV2fMXJsRjJsF8,3384
|
|
133
|
+
eva/vision/data/datasets/segmentation/monusac.py,sha256=OTWHAD1b48WeT6phVf466w_nJUOGdBCGKWiWw68PAdw,8423
|
|
134
|
+
eva/vision/data/datasets/segmentation/total_segmentator_2d.py,sha256=oyb38pAV8GN5Ph1-NSVooFhNP1TfOuXSUjUIAf6rdiY,14376
|
|
134
135
|
eva/vision/data/datasets/structs.py,sha256=RaTDW-B36PumcR5gymhCiX-r8GiKqIFcjqoEEjjFyUE,389
|
|
135
136
|
eva/vision/data/datasets/vision.py,sha256=hKKFMb65UJQzOyYm8FTGkOGBOinMRu7R8sOFMbCmQX4,1100
|
|
136
|
-
eva/vision/data/datasets/wsi.py,sha256
|
|
137
|
+
eva/vision/data/datasets/wsi.py,sha256=-rypkcd6CPBM_oPuLszUx9q4zSPzeO1H6JKqvOtLlHw,8282
|
|
137
138
|
eva/vision/data/transforms/__init__.py,sha256=WeFii6JwB0CiOOGLR3tkgAoKgRdmOf2lm0Dadixn8OI,260
|
|
138
139
|
eva/vision/data/transforms/common/__init__.py,sha256=6tvxUgb8wfhgvqejMVulwqssHTJLF7f4_vpf44kxgxY,234
|
|
139
140
|
eva/vision/data/transforms/common/resize_and_clamp.py,sha256=f9-YIX0S9GMAXHP7TWlyRlGfZIVvHgoBHqQ8PzaKbKs,1736
|
|
@@ -150,56 +151,69 @@ eva/vision/data/wsi/backends/openslide.py,sha256=VPVJDb6iAe0ZIdYbyFfPLDzHvku8PZX
|
|
|
150
151
|
eva/vision/data/wsi/backends/pil.py,sha256=CqCWP1ViwpQyVKGLUoEtc4tCHXSAdQpMn6ZX2lNBMns,1403
|
|
151
152
|
eva/vision/data/wsi/backends/tiffslide.py,sha256=f1xOiD4kpL0oRe3xFNT7BM2zYTWBduqL99skk-ZFRwE,1217
|
|
152
153
|
eva/vision/data/wsi/patching/__init__.py,sha256=vSGyui2TkaJpw_wQJldP0Llnym5X9XgK17nuz7S5Hh8,189
|
|
153
|
-
eva/vision/data/wsi/patching/coordinates.py,sha256=
|
|
154
|
+
eva/vision/data/wsi/patching/coordinates.py,sha256=TnsRafUJzsjvfhuP0vvDA294G0f4hu5LqICYNnMFUMo,3870
|
|
154
155
|
eva/vision/data/wsi/patching/mask.py,sha256=o_S4YRdbfaxKCG1_T2skswDirmlzHzVC5exaDJucvD0,4986
|
|
155
156
|
eva/vision/data/wsi/patching/samplers/__init__.py,sha256=QkBbjnZf7IcEPm-ON9SeZP0I3DXUA3pY87dKXXdelz4,458
|
|
156
|
-
eva/vision/data/wsi/patching/samplers/_utils.py,sha256=
|
|
157
|
+
eva/vision/data/wsi/patching/samplers/_utils.py,sha256=e9kqHB6mhJgIIQV_Hv8QHg2P2R7dPVfd8Lt08Hi-UsQ,1374
|
|
157
158
|
eva/vision/data/wsi/patching/samplers/base.py,sha256=KWLJMfaPk7-IZ-P2isYBvFAa5SuJPUhtD63hkKRFrgg,1287
|
|
158
159
|
eva/vision/data/wsi/patching/samplers/foreground_grid.py,sha256=EhXkr5EFz2-RXEisWtjDa4CUTnrW4fiamQjEgALB2aI,3093
|
|
159
160
|
eva/vision/data/wsi/patching/samplers/grid.py,sha256=dImrMSyCL3E_j5KRqpVJUWTe-mrJpfttg1Z9rbm3j0k,1363
|
|
160
|
-
eva/vision/data/wsi/patching/samplers/random.py,sha256=
|
|
161
|
-
eva/vision/losses/__init__.py,sha256=
|
|
162
|
-
eva/vision/losses/dice.py,sha256=
|
|
161
|
+
eva/vision/data/wsi/patching/samplers/random.py,sha256=0clmwCZ47bnTaSFke7jtjsmrFoY1ID2LjoiaE52dC3o,1228
|
|
162
|
+
eva/vision/losses/__init__.py,sha256=htafabZgVcqbJjPURwsmGJ7AT6hIXc1-9SEuuaGU9SA,121
|
|
163
|
+
eva/vision/losses/dice.py,sha256=qIMxtQlBbzES3hJ7x7pq0bd0GvIFpfGNL3KnMi0vRds,3669
|
|
164
|
+
eva/vision/metrics/__init__.py,sha256=NtbcCrAUhVMMxSygTnbvNceJZBUzUD2tZp4nDmFjG3w,360
|
|
165
|
+
eva/vision/metrics/defaults/__init__.py,sha256=ncQ9uH5q5SpfalyPX6dINPRLk34HLw6z9u8ny_HHbFQ,174
|
|
166
|
+
eva/vision/metrics/defaults/segmentation/__init__.py,sha256=ve6dwyfhJGYBYKS6l6OySCBs32JnEBFnvhAyNvj-Uqo,191
|
|
167
|
+
eva/vision/metrics/defaults/segmentation/multiclass.py,sha256=Qk4-OC0oujg99MEwRIjif-fS2mbAiWSFTZVRq4cY_Vo,1758
|
|
168
|
+
eva/vision/metrics/segmentation/BUILD,sha256=Nf7BYWWe1USoFEIsIiEVZ8sa05J5FPkMJ-UIMDLrU8o,17
|
|
169
|
+
eva/vision/metrics/segmentation/__init__.py,sha256=lfuyjuo2XjS7_dvaL-8e_LhLsyK2mc_mNGwyGqcb5X4,234
|
|
170
|
+
eva/vision/metrics/segmentation/_utils.py,sha256=ebxTqymtxZ0iwMiH2snQHV_NVfDhZUSBlBS9AShWu_8,2464
|
|
171
|
+
eva/vision/metrics/segmentation/generalized_dice.py,sha256=FqFzo7YWBwSlihmlgQg-O_ld1ZBQma0YTXk5XZ7faZM,2443
|
|
172
|
+
eva/vision/metrics/segmentation/mean_iou.py,sha256=xR3wQOHT77SNKTRRPdDaWpJ88qgk9PIBT5n2lnKTUfM,2161
|
|
163
173
|
eva/vision/models/__init__.py,sha256=a-P6JL73A3miHQnqgqUz07XtVmQB_o4DqPImk5rEATo,275
|
|
164
174
|
eva/vision/models/modules/__init__.py,sha256=vaM_V6OF2s0lYjralP8dzv8mAtv_xIMZItfXgz0NZg8,156
|
|
165
|
-
eva/vision/models/modules/semantic_segmentation.py,sha256=
|
|
175
|
+
eva/vision/models/modules/semantic_segmentation.py,sha256=i1hYgWnVLf7RTzt_ZrO76bQYNOKmyjt_Hl8AFQqFhAk,6400
|
|
166
176
|
eva/vision/models/networks/__init__.py,sha256=j43IurizNlAyKPH2jwDHaeq49L2QvwbHWqUaptA1mG4,100
|
|
167
177
|
eva/vision/models/networks/abmil.py,sha256=N1eH4fn1nXmgXurSQyQIxxonv7nsqeeuPWaQSHeltfs,6796
|
|
168
178
|
eva/vision/models/networks/backbones/__init__.py,sha256=LsMx92eEoCQ5aNVFp7mHjrD-9ZeNawMiK6zZSYzl_PU,296
|
|
169
|
-
eva/vision/models/networks/backbones/_utils.py,sha256=
|
|
170
|
-
eva/vision/models/networks/backbones/pathology/__init__.py,sha256
|
|
179
|
+
eva/vision/models/networks/backbones/_utils.py,sha256=V7xeod4mElEuuO1TRW0xJE051cUyS1Saraw3-KcK1Mw,1667
|
|
180
|
+
eva/vision/models/networks/backbones/pathology/__init__.py,sha256=goR59h8bfzd-Wa3rxPPdaSlAOH_df8SHBkTSKi08TS8,1147
|
|
171
181
|
eva/vision/models/networks/backbones/pathology/bioptimus.py,sha256=wUSKjYgxcRV3FRHGaPwF1uRAQcGO0rHNHGmK1QDJXk4,991
|
|
172
182
|
eva/vision/models/networks/backbones/pathology/gigapath.py,sha256=mfGXtKhY7XLpKQQAFNVZYsM-aeHCEbOVUrxpAEOr-l8,955
|
|
173
|
-
eva/vision/models/networks/backbones/pathology/histai.py,sha256=
|
|
183
|
+
eva/vision/models/networks/backbones/pathology/histai.py,sha256=X_we3U7GK91RrXyOX2PJB-YFDF2ozdL2fzZhNxm9SVU,1914
|
|
174
184
|
eva/vision/models/networks/backbones/pathology/kaiko.py,sha256=GSdBG4WXrs1PWB2hr-sy_dFe2riwpPKwHx71esDoVfE,3952
|
|
175
185
|
eva/vision/models/networks/backbones/pathology/lunit.py,sha256=ku4lr9pWeeHatHN4x4OVgwlve9sVqiRqIbgI0PXLiqg,2160
|
|
176
|
-
eva/vision/models/networks/backbones/pathology/mahmood.py,sha256=
|
|
177
|
-
eva/vision/models/networks/backbones/pathology/owkin.py,sha256=
|
|
186
|
+
eva/vision/models/networks/backbones/pathology/mahmood.py,sha256=me8DXf9nsEegDmltP8f7ZnG89xYVEKzZLKfVzMZjWDs,1832
|
|
187
|
+
eva/vision/models/networks/backbones/pathology/owkin.py,sha256=uWJV5fgY7UZX6ilgGzkPY9fnlOiF03W7E8rc9TmlHGg,1231
|
|
188
|
+
eva/vision/models/networks/backbones/pathology/paige.py,sha256=MjOLgdEKk8tdAIpCiHelasGwPE7xgzaooW6EE7IsuEE,1642
|
|
178
189
|
eva/vision/models/networks/backbones/registry.py,sha256=anjILtEHHB6Ltwiw22h1bsgWtIjh_l5_fkPh87K7-d0,1631
|
|
179
190
|
eva/vision/models/networks/backbones/timm/__init__.py,sha256=cZH3av9gIZcvEVD0rwKsI-MEq7zPqaW4dQ0E05CksvQ,128
|
|
180
191
|
eva/vision/models/networks/backbones/timm/backbones.py,sha256=fCTiwqU6NhQ-ccAMzmpPDddXkFzRAB3mw4lcQ9um_PU,1646
|
|
181
192
|
eva/vision/models/networks/backbones/universal/__init__.py,sha256=MAlkALSJ2_w6spSbB7NmKlL0Jsk1YKEycatdI0xO0_I,252
|
|
182
193
|
eva/vision/models/networks/backbones/universal/vit.py,sha256=kpUCoXpefR34hRNlQDFK9lGr4oqS8Mn5vTLKWZ-gaOs,1820
|
|
183
|
-
eva/vision/models/networks/decoders/__init__.py,sha256=
|
|
184
|
-
eva/vision/models/networks/decoders/
|
|
185
|
-
eva/vision/models/networks/decoders/segmentation/
|
|
186
|
-
eva/vision/models/networks/decoders/segmentation/
|
|
187
|
-
eva/vision/models/networks/decoders/segmentation/
|
|
188
|
-
eva/vision/models/networks/decoders/segmentation/
|
|
194
|
+
eva/vision/models/networks/decoders/__init__.py,sha256=RXFWmoYw2i6E9VOUCJmU8c72icHannVuo-cUKy6fnLM,200
|
|
195
|
+
eva/vision/models/networks/decoders/segmentation/__init__.py,sha256=N6jrhXHj0P7i7RptZbZ-JFehT2BM7meFyNIK0owAkaE,517
|
|
196
|
+
eva/vision/models/networks/decoders/segmentation/base.py,sha256=b2TIJKiJR9vejVRpNyedMJLPTrpHhAEXvco8atb9TPU,411
|
|
197
|
+
eva/vision/models/networks/decoders/segmentation/decoder2d.py,sha256=0jZrgFSdH5nlMYlbBmDb1E4kIQ3cG-LNOsiij51_NSA,4447
|
|
198
|
+
eva/vision/models/networks/decoders/segmentation/linear.py,sha256=-i9RVaKM1UsB3AXDDKdMmHiD7y2sr5HfF-WvkB47Fhw,4743
|
|
199
|
+
eva/vision/models/networks/decoders/segmentation/semantic/__init__.py,sha256=Ubs8GXyQpEHs26JUeUuiVP3jfn47eiBZM_UVbu749XU,398
|
|
200
|
+
eva/vision/models/networks/decoders/segmentation/semantic/common.py,sha256=fPTb0T-2FiOU-jT81ynASKaW7fJiRk6vQjuPkzHOluc,2530
|
|
201
|
+
eva/vision/models/networks/decoders/segmentation/semantic/with_image.py,sha256=I5PyGKKo8DcXYcw4xlCFzuavRJNRrzGT-szpDidMPXI,3516
|
|
202
|
+
eva/vision/models/networks/decoders/segmentation/typings.py,sha256=8zAqIJLlQdCjsx-Dl4lnF4BB1VxTg_AyIquBVwpZlHg,537
|
|
189
203
|
eva/vision/models/wrappers/__init__.py,sha256=8MT8qFM4nUXGpK1_i3rp70ODkOjn2KhhRo2I17qZCPM,210
|
|
190
204
|
eva/vision/models/wrappers/from_registry.py,sha256=gdnxyg9drqlxfTNuS3aLbWGbZIwX1VNl0uudfjzVsXM,1614
|
|
191
205
|
eva/vision/models/wrappers/from_timm.py,sha256=Z38Nb1i6OPKkgvFZOvGx-O3AZQuscf1zRVyrEBXQdJg,2320
|
|
192
206
|
eva/vision/utils/__init__.py,sha256=vaUovprE743SmyFH8l6uk4pYSWpI4zxn7lN0EwePTJI,96
|
|
193
|
-
eva/vision/utils/colormap.py,sha256=
|
|
207
|
+
eva/vision/utils/colormap.py,sha256=sP1F0JCX3abZfFgdxEjLJO-LhNYKjXZvXxs03ZgrEvI,2876
|
|
194
208
|
eva/vision/utils/convert.py,sha256=fqGmKrg5-JJLrTkTXB4YDcWTudXPrO1gGjsckVRUesU,1881
|
|
195
|
-
eva/vision/utils/io/__init__.py,sha256=
|
|
209
|
+
eva/vision/utils/io/__init__.py,sha256=XGJ_W94DVEYXJ_tVpr_20NMpR5JLWEWHGF3v9Low79A,610
|
|
196
210
|
eva/vision/utils/io/_utils.py,sha256=JzOt7Frj6ScF_aNjFtfHBn4ROnl6NhUZucmQhLc4Cww,768
|
|
197
211
|
eva/vision/utils/io/image.py,sha256=IdOkr5MYqhYHz8U9drZ7wULTM3YHwCWSjZlu_Qdl4GQ,2053
|
|
198
212
|
eva/vision/utils/io/mat.py,sha256=qpGifyjmpE0Xhv567Si7-zxKrgkgE0sywP70cHiLFGU,808
|
|
199
|
-
eva/vision/utils/io/nifti.py,sha256=
|
|
213
|
+
eva/vision/utils/io/nifti.py,sha256=Q8Cd-ovqGZbevqfhb4waS6xI5xV3DXoWnDd5rhzLRNU,2595
|
|
200
214
|
eva/vision/utils/io/text.py,sha256=qYgfo_ZaDZWfG02NkVVYzo5QFySqdCCz5uLA9d-zXtI,701
|
|
201
|
-
kaiko_eva-0.1.
|
|
202
|
-
kaiko_eva-0.1.
|
|
203
|
-
kaiko_eva-0.1.
|
|
204
|
-
kaiko_eva-0.1.
|
|
205
|
-
kaiko_eva-0.1.
|
|
215
|
+
kaiko_eva-0.1.5.dist-info/METADATA,sha256=ZBbW8rELBL5PJ9ijkVItgchuJTjRCsbyAtBjM-un3e0,24869
|
|
216
|
+
kaiko_eva-0.1.5.dist-info/WHEEL,sha256=thaaA2w1JzcGC48WYufAs8nrYZjJm8LqNfnXFOFyCC4,90
|
|
217
|
+
kaiko_eva-0.1.5.dist-info/entry_points.txt,sha256=6CSLu9bmQYJSXEg8gbOzRhxH0AGs75BB-vPm3VvfcNE,88
|
|
218
|
+
kaiko_eva-0.1.5.dist-info/licenses/LICENSE,sha256=e6AEzr7j_R-PYr2qLO-JwLn8y70jbVD3U2mxbRmwcI4,11338
|
|
219
|
+
kaiko_eva-0.1.5.dist-info/RECORD,,
|
eva/core/metrics/mean_iou.py
DELETED
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
"""Mean Intersection over Union (mIoU) metric for semantic segmentation."""
|
|
2
|
-
|
|
3
|
-
from typing import Any, Literal, Tuple
|
|
4
|
-
|
|
5
|
-
import torch
|
|
6
|
-
import torchmetrics
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
class MeanIoU(torchmetrics.Metric):
|
|
10
|
-
"""Computes Mean Intersection over Union (mIoU) for semantic segmentation.
|
|
11
|
-
|
|
12
|
-
Fixes the torchmetrics implementation
|
|
13
|
-
(issue https://github.com/Lightning-AI/torchmetrics/issues/2558)
|
|
14
|
-
"""
|
|
15
|
-
|
|
16
|
-
def __init__(
|
|
17
|
-
self,
|
|
18
|
-
num_classes: int,
|
|
19
|
-
include_background: bool = True,
|
|
20
|
-
ignore_index: int | None = None,
|
|
21
|
-
per_class: bool = False,
|
|
22
|
-
**kwargs: Any,
|
|
23
|
-
) -> None:
|
|
24
|
-
"""Initializes the metric.
|
|
25
|
-
|
|
26
|
-
Args:
|
|
27
|
-
num_classes: The number of classes in the segmentation problem.
|
|
28
|
-
include_background: Whether to include the background class in the computation
|
|
29
|
-
ignore_index: Integer specifying a target class to ignore. If given, this class
|
|
30
|
-
index does not contribute to the returned score, regardless of reduction method.
|
|
31
|
-
per_class: Whether to compute the IoU for each class separately. If set to ``False``,
|
|
32
|
-
the metric will compute the mean IoU over all classes.
|
|
33
|
-
kwargs: Additional keyword arguments, see :ref:`Metric kwargs` for more info.
|
|
34
|
-
"""
|
|
35
|
-
super().__init__(**kwargs)
|
|
36
|
-
|
|
37
|
-
self.num_classes = num_classes
|
|
38
|
-
self.include_background = include_background
|
|
39
|
-
self.ignore_index = ignore_index
|
|
40
|
-
self.per_class = per_class
|
|
41
|
-
|
|
42
|
-
self.add_state("intersection", default=torch.zeros(num_classes), dist_reduce_fx="sum")
|
|
43
|
-
self.add_state("union", default=torch.zeros(num_classes), dist_reduce_fx="sum")
|
|
44
|
-
|
|
45
|
-
def update(self, preds: torch.Tensor, target: torch.Tensor) -> None:
|
|
46
|
-
"""Update the state with the new data."""
|
|
47
|
-
intersection, union = _compute_intersection_and_union(
|
|
48
|
-
preds,
|
|
49
|
-
target,
|
|
50
|
-
num_classes=self.num_classes,
|
|
51
|
-
include_background=self.include_background,
|
|
52
|
-
ignore_index=self.ignore_index,
|
|
53
|
-
)
|
|
54
|
-
self.intersection += intersection.sum(0)
|
|
55
|
-
self.union += union.sum(0)
|
|
56
|
-
|
|
57
|
-
def compute(self) -> torch.Tensor:
|
|
58
|
-
"""Compute the final mean IoU score."""
|
|
59
|
-
iou_valid = torch.gt(self.union, 0)
|
|
60
|
-
iou = torch.where(
|
|
61
|
-
iou_valid,
|
|
62
|
-
torch.divide(self.intersection, self.union),
|
|
63
|
-
torch.nan,
|
|
64
|
-
)
|
|
65
|
-
if not self.per_class:
|
|
66
|
-
iou = torch.mean(iou[iou_valid])
|
|
67
|
-
return iou
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
def _compute_intersection_and_union(
|
|
71
|
-
preds: torch.Tensor,
|
|
72
|
-
target: torch.Tensor,
|
|
73
|
-
num_classes: int,
|
|
74
|
-
include_background: bool = False,
|
|
75
|
-
input_format: Literal["one-hot", "index"] = "index",
|
|
76
|
-
ignore_index: int | None = None,
|
|
77
|
-
) -> Tuple[torch.Tensor, torch.Tensor]:
|
|
78
|
-
"""Compute the intersection and union for semantic segmentation tasks.
|
|
79
|
-
|
|
80
|
-
Args:
|
|
81
|
-
preds: Predicted tensor with shape (N, ...) where N is the batch size.
|
|
82
|
-
The shape can be (N, H, W) for 2D data or (N, D, H, W) for 3D data.
|
|
83
|
-
target: Ground truth tensor with the same shape as preds.
|
|
84
|
-
num_classes: Number of classes in the segmentation task.
|
|
85
|
-
include_background: Whether to include the background class in the computation.
|
|
86
|
-
input_format: Format of the input tensors.
|
|
87
|
-
ignore_index: Integer specifying a target class to ignore. If given, this class
|
|
88
|
-
index does not contribute to the returned score, regardless of reduction method.
|
|
89
|
-
|
|
90
|
-
Returns:
|
|
91
|
-
Two tensors representing the intersection and union for each class.
|
|
92
|
-
Shape of each tensor is (N, num_classes).
|
|
93
|
-
|
|
94
|
-
Note:
|
|
95
|
-
- If input_format is "index", the tensors are converted to one-hot encoding.
|
|
96
|
-
- If include_background is `False`, the background class
|
|
97
|
-
(assumed to be the first channel) is ignored in the computation.
|
|
98
|
-
"""
|
|
99
|
-
if ignore_index is not None:
|
|
100
|
-
mask = target != ignore_index
|
|
101
|
-
mask = mask.all(dim=-1, keepdim=True)
|
|
102
|
-
preds = preds * mask
|
|
103
|
-
target = target * mask
|
|
104
|
-
|
|
105
|
-
if input_format == "index":
|
|
106
|
-
preds = torch.nn.functional.one_hot(preds, num_classes=num_classes)
|
|
107
|
-
target = torch.nn.functional.one_hot(target, num_classes=num_classes)
|
|
108
|
-
|
|
109
|
-
if not include_background:
|
|
110
|
-
preds[..., 0] = 0
|
|
111
|
-
target[..., 0] = 0
|
|
112
|
-
|
|
113
|
-
reduce_axis = list(range(1, preds.ndim - 1))
|
|
114
|
-
|
|
115
|
-
intersection = torch.sum(torch.logical_and(preds, target), dim=reduce_axis)
|
|
116
|
-
target_sum = torch.sum(target, dim=reduce_axis)
|
|
117
|
-
pred_sum = torch.sum(preds, dim=reduce_axis)
|
|
118
|
-
union = target_sum + pred_sum - intersection
|
|
119
|
-
|
|
120
|
-
return intersection, union
|
|
File without changes
|
|
File without changes
|