kaiko-eva 0.3.3__py3-none-any.whl → 0.4.1__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.

Potentially problematic release.


This version of kaiko-eva might be problematic. Click here for more details.

Files changed (131) hide show
  1. eva/core/callbacks/config.py +15 -6
  2. eva/core/callbacks/writers/embeddings/base.py +44 -10
  3. eva/core/cli/setup.py +1 -1
  4. eva/core/data/dataloaders/__init__.py +1 -2
  5. eva/core/data/samplers/classification/balanced.py +24 -12
  6. eva/core/data/samplers/random.py +17 -10
  7. eva/core/interface/interface.py +21 -0
  8. eva/core/loggers/utils/wandb.py +4 -1
  9. eva/core/models/modules/module.py +2 -2
  10. eva/core/models/wrappers/base.py +2 -2
  11. eva/core/models/wrappers/from_function.py +3 -3
  12. eva/core/models/wrappers/from_torchhub.py +9 -7
  13. eva/core/models/wrappers/huggingface.py +4 -5
  14. eva/core/models/wrappers/onnx.py +5 -5
  15. eva/core/trainers/trainer.py +13 -1
  16. eva/core/utils/__init__.py +2 -1
  17. eva/core/utils/distributed.py +12 -0
  18. eva/core/utils/paths.py +14 -0
  19. eva/core/utils/requirements.py +52 -6
  20. eva/language/__init__.py +2 -1
  21. eva/language/callbacks/__init__.py +5 -0
  22. eva/language/callbacks/writers/__init__.py +5 -0
  23. eva/language/callbacks/writers/prediction.py +201 -0
  24. eva/language/data/dataloaders/__init__.py +5 -0
  25. eva/language/data/dataloaders/collate_fn/__init__.py +5 -0
  26. eva/language/data/dataloaders/collate_fn/text.py +57 -0
  27. eva/language/data/datasets/__init__.py +3 -1
  28. eva/language/data/datasets/{language.py → base.py} +1 -1
  29. eva/language/data/datasets/classification/base.py +3 -43
  30. eva/language/data/datasets/classification/pubmedqa.py +36 -4
  31. eva/language/data/datasets/prediction.py +151 -0
  32. eva/language/data/datasets/schemas.py +18 -0
  33. eva/language/data/datasets/text.py +92 -0
  34. eva/language/data/datasets/typings.py +39 -0
  35. eva/language/data/messages.py +60 -0
  36. eva/language/models/__init__.py +15 -11
  37. eva/language/models/modules/__init__.py +2 -2
  38. eva/language/models/modules/language.py +94 -0
  39. eva/language/models/networks/__init__.py +12 -0
  40. eva/language/models/networks/alibaba.py +26 -0
  41. eva/language/models/networks/api/__init__.py +11 -0
  42. eva/language/models/networks/api/anthropic.py +34 -0
  43. eva/language/models/networks/registry.py +5 -0
  44. eva/language/models/typings.py +56 -0
  45. eva/language/models/wrappers/__init__.py +13 -5
  46. eva/language/models/wrappers/base.py +47 -0
  47. eva/language/models/wrappers/from_registry.py +54 -0
  48. eva/language/models/wrappers/huggingface.py +57 -11
  49. eva/language/models/wrappers/litellm.py +91 -46
  50. eva/language/models/wrappers/vllm.py +37 -13
  51. eva/language/utils/__init__.py +2 -1
  52. eva/language/utils/str_to_int_tensor.py +20 -12
  53. eva/language/utils/text/__init__.py +5 -0
  54. eva/language/utils/text/messages.py +113 -0
  55. eva/multimodal/__init__.py +6 -0
  56. eva/multimodal/callbacks/__init__.py +5 -0
  57. eva/multimodal/callbacks/writers/__init__.py +5 -0
  58. eva/multimodal/callbacks/writers/prediction.py +39 -0
  59. eva/multimodal/data/__init__.py +5 -0
  60. eva/multimodal/data/dataloaders/__init__.py +5 -0
  61. eva/multimodal/data/dataloaders/collate_fn/__init__.py +5 -0
  62. eva/multimodal/data/dataloaders/collate_fn/text_image.py +28 -0
  63. eva/multimodal/data/datasets/__init__.py +6 -0
  64. eva/multimodal/data/datasets/base.py +13 -0
  65. eva/multimodal/data/datasets/multiple_choice/__init__.py +5 -0
  66. eva/multimodal/data/datasets/multiple_choice/patch_camelyon.py +80 -0
  67. eva/multimodal/data/datasets/schemas.py +14 -0
  68. eva/multimodal/data/datasets/text_image.py +77 -0
  69. eva/multimodal/data/datasets/typings.py +27 -0
  70. eva/multimodal/models/__init__.py +8 -0
  71. eva/multimodal/models/modules/__init__.py +5 -0
  72. eva/multimodal/models/modules/vision_language.py +56 -0
  73. eva/multimodal/models/networks/__init__.py +14 -0
  74. eva/multimodal/models/networks/alibaba.py +40 -0
  75. eva/multimodal/models/networks/api/__init__.py +11 -0
  76. eva/multimodal/models/networks/api/anthropic.py +34 -0
  77. eva/multimodal/models/networks/others.py +48 -0
  78. eva/multimodal/models/networks/registry.py +5 -0
  79. eva/multimodal/models/typings.py +27 -0
  80. eva/multimodal/models/wrappers/__init__.py +13 -0
  81. eva/multimodal/models/wrappers/base.py +48 -0
  82. eva/multimodal/models/wrappers/from_registry.py +54 -0
  83. eva/multimodal/models/wrappers/huggingface.py +193 -0
  84. eva/multimodal/models/wrappers/litellm.py +58 -0
  85. eva/multimodal/utils/__init__.py +1 -0
  86. eva/multimodal/utils/batch/__init__.py +5 -0
  87. eva/multimodal/utils/batch/unpack.py +11 -0
  88. eva/multimodal/utils/image/__init__.py +5 -0
  89. eva/multimodal/utils/image/encode.py +28 -0
  90. eva/multimodal/utils/text/__init__.py +1 -0
  91. eva/multimodal/utils/text/messages.py +79 -0
  92. eva/vision/data/datasets/classification/breakhis.py +5 -8
  93. eva/vision/data/datasets/classification/panda.py +12 -5
  94. eva/vision/data/datasets/classification/patch_camelyon.py +8 -6
  95. eva/vision/data/datasets/segmentation/btcv.py +1 -1
  96. eva/vision/data/datasets/segmentation/consep.py +1 -1
  97. eva/vision/data/datasets/segmentation/lits17.py +1 -1
  98. eva/vision/data/datasets/segmentation/monusac.py +15 -6
  99. eva/vision/data/datasets/segmentation/msd_task7_pancreas.py +1 -1
  100. eva/vision/data/transforms/__init__.py +2 -1
  101. eva/vision/data/transforms/base/__init__.py +2 -1
  102. eva/vision/data/transforms/base/monai.py +2 -2
  103. eva/vision/data/transforms/base/torchvision.py +33 -0
  104. eva/vision/data/transforms/common/squeeze.py +6 -3
  105. eva/vision/data/transforms/croppad/crop_foreground.py +8 -7
  106. eva/vision/data/transforms/croppad/rand_crop_by_label_classes.py +6 -5
  107. eva/vision/data/transforms/croppad/rand_crop_by_pos_neg_label.py +6 -5
  108. eva/vision/data/transforms/croppad/rand_spatial_crop.py +8 -7
  109. eva/vision/data/transforms/croppad/spatial_pad.py +6 -6
  110. eva/vision/data/transforms/intensity/rand_scale_intensity.py +3 -3
  111. eva/vision/data/transforms/intensity/rand_shift_intensity.py +3 -3
  112. eva/vision/data/transforms/intensity/scale_intensity_ranged.py +5 -5
  113. eva/vision/data/transforms/spatial/__init__.py +2 -1
  114. eva/vision/data/transforms/spatial/flip.py +8 -7
  115. eva/vision/data/transforms/spatial/functional/__init__.py +5 -0
  116. eva/vision/data/transforms/spatial/functional/resize.py +26 -0
  117. eva/vision/data/transforms/spatial/resize.py +63 -0
  118. eva/vision/data/transforms/spatial/rotate.py +8 -7
  119. eva/vision/data/transforms/spatial/spacing.py +7 -6
  120. eva/vision/data/transforms/utility/ensure_channel_first.py +6 -6
  121. eva/vision/models/networks/backbones/universal/vit.py +24 -0
  122. eva/vision/models/wrappers/from_registry.py +6 -5
  123. eva/vision/models/wrappers/from_timm.py +6 -4
  124. {kaiko_eva-0.3.3.dist-info → kaiko_eva-0.4.1.dist-info}/METADATA +17 -3
  125. {kaiko_eva-0.3.3.dist-info → kaiko_eva-0.4.1.dist-info}/RECORD +128 -66
  126. eva/core/data/dataloaders/collate_fn/__init__.py +0 -5
  127. eva/core/data/dataloaders/collate_fn/collate.py +0 -24
  128. eva/language/models/modules/text.py +0 -85
  129. {kaiko_eva-0.3.3.dist-info → kaiko_eva-0.4.1.dist-info}/WHEEL +0 -0
  130. {kaiko_eva-0.3.3.dist-info → kaiko_eva-0.4.1.dist-info}/entry_points.txt +0 -0
  131. {kaiko_eva-0.3.3.dist-info → kaiko_eva-0.4.1.dist-info}/licenses/LICENSE +0 -0
@@ -5,6 +5,7 @@ from urllib import parse
5
5
 
6
6
  import timm
7
7
  import torch
8
+ from torch import nn
8
9
  from typing_extensions import override
9
10
 
10
11
  from eva.core.models.wrappers import base
@@ -46,12 +47,14 @@ class TimmModel(base.BaseModel[torch.Tensor, torch.Tensor]):
46
47
  self._out_indices = out_indices
47
48
  self._model_kwargs = model_kwargs or {}
48
49
 
49
- self.load_model()
50
+ self.model = self.load_model()
50
51
 
51
52
  @override
52
- def load_model(self) -> None:
53
+ def load_model(self) -> nn.Module:
53
54
  """Builds and loads the timm model as feature extractor."""
54
- self._model = timm.create_model(
55
+ TimmModel.__name__ = self._model_name
56
+
57
+ return timm.create_model(
55
58
  model_name=self._model_name,
56
59
  pretrained=True if self._checkpoint_path else self._pretrained,
57
60
  pretrained_cfg=self._pretrained_cfg,
@@ -59,7 +62,6 @@ class TimmModel(base.BaseModel[torch.Tensor, torch.Tensor]):
59
62
  features_only=self._out_indices is not None,
60
63
  **self._model_kwargs,
61
64
  )
62
- TimmModel.__name__ = self._model_name
63
65
 
64
66
  @property
65
67
  def _pretrained_cfg(self) -> Dict[str, Any]:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaiko-eva
3
- Version: 0.3.3
3
+ Version: 0.4.1
4
4
  Summary: Evaluation Framework for oncology foundation models.
5
5
  Keywords: machine-learning,evaluation-framework,oncology,foundation-models
6
6
  Author-Email: Ioannis Gatopoulos <ioannis@kaiko.ai>, =?utf-8?q?Nicolas_K=C3=A4nzig?= <nicolas@kaiko.ai>, Roman Moser <roman@kaiko.ai>
@@ -245,6 +245,10 @@ Requires-Dist: einops>=0.8.1; extra == "vision"
245
245
  Provides-Extra: language
246
246
  Requires-Dist: datasets<4.0.0,>=2.19.0; extra == "language"
247
247
  Requires-Dist: litellm>=1.61.8; extra == "language"
248
+ Requires-Dist: backoff>=2.2.1; extra == "language"
249
+ Provides-Extra: multimodal
250
+ Requires-Dist: litellm>=1.61.8; extra == "multimodal"
251
+ Requires-Dist: backoff>=2.2.1; extra == "multimodal"
248
252
  Provides-Extra: all
249
253
  Requires-Dist: h5py>=3.10.0; extra == "all"
250
254
  Requires-Dist: nibabel>=4.0.1; extra == "all"
@@ -260,6 +264,7 @@ Requires-Dist: monai>=1.3.2; extra == "all"
260
264
  Requires-Dist: einops>=0.8.1; extra == "all"
261
265
  Requires-Dist: datasets<4.0.0,>=2.19.0; extra == "all"
262
266
  Requires-Dist: litellm>=1.61.8; extra == "all"
267
+ Requires-Dist: backoff>=2.2.1; extra == "all"
263
268
  Description-Content-Type: text/markdown
264
269
 
265
270
  <div align="center">
@@ -298,7 +303,7 @@ Check out the [documentation](https://kaiko-ai.github.io/eva/) for more informat
298
303
 
299
304
  ### Highlights:
300
305
  - Easy and reliable benchmark of Oncology FMs
301
- - Supports patch-level classification, slide-level classification, semantic segmentation, and text classification downstream tasks
306
+ - Supports patch-level classification, slide-level classification, semantic segmentation, and (visual) question answering tasks.
302
307
  - Automatic embedding inference and evaluation of a downstream task
303
308
  - Native support of popular medical [datasets](https://kaiko-ai.github.io/eva/dev/datasets/) and models
304
309
  - Produce statistics over multiple evaluation fits and multiple metrics
@@ -316,6 +321,9 @@ pip install 'kaiko-eva[vision]'
316
321
  # to install the expanded `language` version
317
322
  pip install 'kaiko-eva[language]'
318
323
 
324
+ # to install the expanded `multimodal` version
325
+ pip install 'kaiko-eva[multimodal]'
326
+
319
327
  # to install everything
320
328
  pip install 'kaiko-eva[all]'
321
329
  ```
@@ -483,7 +491,13 @@ and [tutorials](https://kaiko-ai.github.io/eva/main/user-guide/advanced/replicat
483
491
 
484
492
  The following table shows the FMs we have evaluated with _`eva`_. For more detailed information about the evaluation process, please refer to our [documentation](https://kaiko-ai.github.io/eva/main/leaderboards/).
485
493
 
486
- ![Pathology Leaderboard](./docs/images/leaderboard.svg)
494
+ ### Pathology
495
+
496
+ <img src="./docs/images/leaderboards/pathology.svg" alt="Pathology Leaderboard">
497
+
498
+ ### Radiology
499
+
500
+ <img src="./docs/images/leaderboards/radiology.svg" alt="Radiology Leaderboard" width="600">
487
501
 
488
502
 
489
503
  ## Contributing
@@ -3,22 +3,20 @@ eva/__main__.py,sha256=kM5tQ0egTuBWixNLLx9QU-PpS2Bbs3zE3nYE6b2vWa0,282
3
3
  eva/__version__.py,sha256=YFR4oOlvPg0sS4Ni7GJ_vU42VTs5WiWp6odK7yH4TBY,611
4
4
  eva/core/__init__.py,sha256=AYlMZcH76B7I1lOa-E67u2o9DxsCwI4JMLCYXLk9oDQ,451
5
5
  eva/core/callbacks/__init__.py,sha256=_XsS4QGf4r9frzFwEx-krmzJm3kbLmXQFtwYCfRyjrM,281
6
- eva/core/callbacks/config.py,sha256=-DRt20a2aF9Z9-7nZvbGBcOZ30qNf3ESf25EPRgRL1w,4267
6
+ eva/core/callbacks/config.py,sha256=hx3FvxX5AnWGBTo-ys3Xr73V28_HRIcG5PMXtLyRbPo,4725
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=YrjdqIFBYla-5jleUUTyJ5OHmvInhzLLHXEGmzwa9xA,7620
10
+ eva/core/callbacks/writers/embeddings/base.py,sha256=YyQFTK3NjF-aEo_yve4HUHqHovD8o9xQY9s3cuKoTOw,9104
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
14
14
  eva/core/cli/__init__.py,sha256=1lGiomn4JINI0DKy41_D4cEyyH-hN6cfTZfMPxLxTCA,68
15
15
  eva/core/cli/cli.py,sha256=AZ4B4OP3D2af9H2RYBd5nxoy5I9DlaClZaadSWpPEPI,422
16
16
  eva/core/cli/logo.py,sha256=x6-vGWI0s9gza-xxQrBDi2wneb2wFU_mQGHgpAiq2MQ,786
17
- eva/core/cli/setup.py,sha256=kR-7l4X5Hu8kSLoQZGYGIeLXtn9S_EU52dauDy6fm0w,2663
17
+ eva/core/cli/setup.py,sha256=q5bLSqlHvR0bgF-uh4tL1JOv2aCn5hoRP-XqCaBKTvo,2690
18
18
  eva/core/data/__init__.py,sha256=yG3BeOWhp1EjVYMFqx8M_TBWFDyfIwwksQGQmMdSPaI,340
19
- eva/core/data/dataloaders/__init__.py,sha256=0AvpsPOdh4NX5rwkX9Th1M_rzxZVVzTPTdC5oTGFd5w,194
20
- eva/core/data/dataloaders/collate_fn/__init__.py,sha256=CfSAVrPD36shpyYAkob2ny05VWymb95MutawQcZkbuo,134
21
- eva/core/data/dataloaders/collate_fn/collate.py,sha256=oBdxaDCIaXBB6H8LB90Qsi2Inw1tyHGF4kAFBINPOeQ,689
19
+ eva/core/data/dataloaders/__init__.py,sha256=fbNClVZ8J3QoGi4qiPq635ig1j9GdI7six3RhfwDbjY,110
22
20
  eva/core/data/dataloaders/dataloader.py,sha256=v_UL5p78EiyLqXUhWsS0EbfW0iO-DAWOMv7-WTclOvA,2750
23
21
  eva/core/data/datamodules/__init__.py,sha256=qZchYbgxo9lxYnGoqdk0C6MfS2IbF0WItO0kCdP9Mqc,229
24
22
  eva/core/data/datamodules/call.py,sha256=jjj9w3UXYuQB-qyCcw1EZpRJW10OC1I3dvgvsuQWLck,940
@@ -34,8 +32,8 @@ eva/core/data/datasets/embeddings.py,sha256=0y7Fa4zHr4Y0mcB9pyP26YaeTPtetwVf_n6f
34
32
  eva/core/data/datasets/typings.py,sha256=KSmckjsU64pGV-8uSLkD1HmvPKYlyypngiRx9yy4RDs,383
35
33
  eva/core/data/samplers/__init__.py,sha256=rRrKtg4l6YoziD3M0MkctQvX1NdRxaQa5sm6RHH_jXc,315
36
34
  eva/core/data/samplers/classification/__init__.py,sha256=gvv7BH4lG9JlkMaTOnaL0f4k1ghiVBgrH64bh1-rreQ,147
37
- eva/core/data/samplers/classification/balanced.py,sha256=MGTHt-WQaQKiJ5A1D_P6HJ6YzPTD-ERhc0R7rNMFqfg,3788
38
- eva/core/data/samplers/random.py,sha256=znl0Z9a-X-3attP-EH9jwwo83n40FXW_JzOLNZAml_c,1252
35
+ eva/core/data/samplers/classification/balanced.py,sha256=SseV19gLKNL9B5u_DOwuVdbyM7CzXDV3FugipJaWWZE,4149
36
+ eva/core/data/samplers/random.py,sha256=fAlPmlTiXO7QqTh2hLVjgmELsX4P7DrS-9vV2qMAcOQ,1409
39
37
  eva/core/data/samplers/sampler.py,sha256=0DOLUzFoweqEubuO1A4bZBRU0AWFoWGWrO3pawRT-eI,877
40
38
  eva/core/data/splitting/__init__.py,sha256=VQJ8lfakbv6y2kAk3VDtITAvh7kcZo3H1JwJBc5jT08,198
41
39
  eva/core/data/splitting/random.py,sha256=r6iy7j34seRTlyB79_Xy7m6lsKRi8ZM9X5Ln1b-SBjg,1453
@@ -48,7 +46,7 @@ eva/core/data/transforms/padding/pad_2d_tensor.py,sha256=J4maGFmeQf9IHRxt5kU-6eI
48
46
  eva/core/data/transforms/sampling/__init__.py,sha256=BFKbvRjlZrwS0GcNrM54ZSWt6PrQARfFlXM1jJ-wpvo,149
49
47
  eva/core/data/transforms/sampling/sample_from_axis.py,sha256=Zbhp94lVa70WQKmSOKMTsOMe2c7wLqNZto7JqWhSdtI,1229
50
48
  eva/core/interface/__init__.py,sha256=chdpKXipxe1NP-Fgr_d9r6X1gMna0XiEa38waJ6FzTM,98
51
- eva/core/interface/interface.py,sha256=EeBrIqUlO497BOZGZrtO-fZnc_BhIJrrqyQmRfqWXcw,4591
49
+ eva/core/interface/interface.py,sha256=pni92cLb4KQMSvOoYMWP2qIn8rtzqxj84hEhjsdCgis,5364
52
50
  eva/core/loggers/__init__.py,sha256=4YMLNlN9LnuKqhBI1R1keh69dmMD-2lcH3HKwwyn380,266
53
51
  eva/core/loggers/dummy.py,sha256=Y7ypH0ecSAIkkZ5LzTmNNEzlKkqeaHfUNMCDKVOg6D4,1204
54
52
  eva/core/loggers/experimental_loggers.py,sha256=p5uCK_9QCYufRhE-LZQUJWbhGElyobX_zRM78yX4p2o,230
@@ -58,7 +56,7 @@ eva/core/loggers/log/parameters.py,sha256=7Xi-I5gQvEVv71d58bwdZ-Hb4287NXxaUyMfri
58
56
  eva/core/loggers/log/table.py,sha256=HULCo5icDB6UOIXXMci0eo32Pl1-YRWzaOAB-ZBVUak,1726
59
57
  eva/core/loggers/log/utils.py,sha256=k4Q7uKpAQctfDv0EEYPnPv6wt9LnckEeqGvbYSLfKO0,415
60
58
  eva/core/loggers/loggers.py,sha256=igHxdxJSotWSg6nEOKnfFuBszzblHgi8T7sBrE00FEs,166
61
- eva/core/loggers/utils/wandb.py,sha256=GdwzEeFTAng5kl_kIVRxKL7rvwqyicQHSaZS8VSMXvU,747
59
+ eva/core/loggers/utils/wandb.py,sha256=eLB_XNiFdRa4zXieDSEbM-zgCyOMdckmgQFMlVtfTfI,842
62
60
  eva/core/losses/__init__.py,sha256=D-Mp9fUFFFoH9YYWntVH3B839zHS3GjFJzkbQThzj6Y,118
63
61
  eva/core/losses/cross_entropy.py,sha256=Sunz7ogDAJpGvZtuk9cAxKZJBO08CKIEvbCoewEvees,862
64
62
  eva/core/metrics/__init__.py,sha256=-9Qch4npEQpy3oF6NUhh9WinCmFBFe0D2eEYCR0S0xU,558
@@ -78,7 +76,7 @@ eva/core/models/__init__.py,sha256=T6Fo886LxMj-Y58_ylzkPkFSnFR2aISiMIbuO_weC4s,4
78
76
  eva/core/models/modules/__init__.py,sha256=_4VjN9Qs4_mftEVgt0KqVxCRAtDcKYbUnBA3Ox1Pzis,350
79
77
  eva/core/models/modules/head.py,sha256=bZ45RBPi3N8sjvKyt2_TeKWI1eB6GyBeGzV6J11ERO8,5225
80
78
  eva/core/models/modules/inference.py,sha256=ih-0Rr2oNf2N6maiXPOW7XH5KVwUT1_MOxnJKOhJ1uQ,978
81
- eva/core/models/modules/module.py,sha256=LtjYxTZb7UY0owonmt_yQ5EySw3sX-xD9HLN2io8EK4,6697
79
+ eva/core/models/modules/module.py,sha256=8BHc_NdIXAyA7oUP7LFLYvMjIJSsuR5lvFiHS_wycU4,6695
82
80
  eva/core/models/modules/scheduler.py,sha256=orv5TDq9vEItxE7rTj0sQlzdChpx5jHx-3ypnHjUyr4,1650
83
81
  eva/core/models/modules/typings.py,sha256=LPR8JdIid2gJZpjMG1FcH5OZ60JlFOj_LupIh__2k_8,803
84
82
  eva/core/models/modules/utils/__init__.py,sha256=ScLCHwQfzlg_UsHVi5sf_SavUkh9secwtRn_umC_qA8,325
@@ -93,19 +91,20 @@ eva/core/models/transforms/extract_cls_features.py,sha256=A-oNNiGYBkMLK_E9DrzJUJ
93
91
  eva/core/models/transforms/extract_patch_features.py,sha256=5UsHjZnh3Uk2jAfi3GLtxoJ14ALTrfVoWUy8nTspRDY,2218
94
92
  eva/core/models/wrappers/__init__.py,sha256=jaiANQdbO-IPgH8U-Y0ftFsuuCAM5i5KuYRHauKw5k8,450
95
93
  eva/core/models/wrappers/_utils.py,sha256=ZWe9Ih_0kH5Wg_AQAtAn77LZ_CODAve5u3G12ifLNsc,4902
96
- eva/core/models/wrappers/base.py,sha256=S3LGbb_wo2ZTeDvoLvSlaymBsRN6UAuKrCmVAGasHWY,1452
97
- eva/core/models/wrappers/from_function.py,sha256=LVnfW3bL1mRtO8kL1D0MLJOiAiyiHkM7RX6-JIJzI0E,1844
98
- eva/core/models/wrappers/from_torchhub.py,sha256=-saKMxYq4KvVpaJL6BdHmUcEYHuaNvm2-0O_eQMg3GA,3250
99
- eva/core/models/wrappers/huggingface.py,sha256=-_fA81YRnoMc7O7SbrnCEj1dM_xArpQ8WdsZk9z_f1E,1449
100
- eva/core/models/wrappers/onnx.py,sha256=34li_xSwPryN8nJDrFyif_Hve1AEH7Ry9E_lZmf7JJM,1834
94
+ eva/core/models/wrappers/base.py,sha256=MvFZcwXvWsgvi9LqJUcUKjqimyFXvJ7P5ftOaNQpecc,1450
95
+ eva/core/models/wrappers/from_function.py,sha256=ccjCMwkdmyKqCxUbNaUDB1V6KvBgKuoXxIb8gH7Giyo,1855
96
+ eva/core/models/wrappers/from_torchhub.py,sha256=VHOigAIkYJfMfaq8WJwYzbex-1ny_ZjszxGSfaDeVbw,3291
97
+ eva/core/models/wrappers/huggingface.py,sha256=rP0DmdZnJ0Zqjy3o7BqwBa8uG3C24Epgb4h1sRPZOJ0,1459
98
+ eva/core/models/wrappers/onnx.py,sha256=BhXlXE0mF3pZ2R8SZtDUF51ooFwdsAjJ47CiJg-wjNY,1837
101
99
  eva/core/trainers/__init__.py,sha256=jhsKJF7HAae7EOiG3gKIAHH_h3dZlTE2JRcCHJmOzJc,208
102
100
  eva/core/trainers/_logging.py,sha256=gi4FqPy2GuVmh0WZY6mYwF7zMPvnoFA050B0XdCP6PU,2571
103
101
  eva/core/trainers/_recorder.py,sha256=M-BJHLgqGxR_MSV6f_WC7GN2JHYEEinV1-hNLpH667A,8062
104
102
  eva/core/trainers/_utils.py,sha256=M3h8lVhUmkeSiEXpX9hRdMvThGFCnTP15gv-hd1CZkc,321
105
103
  eva/core/trainers/functional.py,sha256=_Mw-NIPU2tPffxpK5t3sHBmVI6u163phCpoJFiauH7E,4583
106
- eva/core/trainers/trainer.py,sha256=a3OwLWOZKDqxayrd0ugUmxJKyQx6XDb4GHtdL8-AEV0,4826
107
- eva/core/utils/__init__.py,sha256=cndVBvtYxEW7hykH39GCNVI86zkXNn8Lw2A0sUJHS04,237
104
+ eva/core/trainers/trainer.py,sha256=IC9GevrJYMukTjH7cnhDbKNC9c2CabvFla8W8SVrEyk,5235
105
+ eva/core/utils/__init__.py,sha256=oBWskE1uDMRdTBlJjAIkAbH_yMM-Zj5BMXLHOiGYvcU,291
108
106
  eva/core/utils/clone.py,sha256=qcThZOuAs1cs0uV3BL5eKeM2VIBjuRPBe1t-NiUFM5Y,569
107
+ eva/core/utils/distributed.py,sha256=1qGSpW1Ehp2H7_QVLhd0SptTnnfWqOoICwIAPkleQfc,354
109
108
  eva/core/utils/factory.py,sha256=upWPWkWW7p3_ZoePAzbkkZvEPiAY4OaOQkwNvh0oa-E,2397
110
109
  eva/core/utils/io/__init__.py,sha256=Py03AmoxhmTHkro6CzNps27uXKkXPzdA18mG97xHhWI,172
111
110
  eva/core/utils/io/dataframe.py,sha256=CIHFowljH17waDkJ9YJVEVXAIcxMwoLjUgoBttiNk8w,509
@@ -114,28 +113,87 @@ eva/core/utils/memory.py,sha256=ZvcbS1eUPXdHIoL8ctFU56_-cyUniObBmIctUbvso48,636
114
113
  eva/core/utils/multiprocessing.py,sha256=BWX8AW_KPLgIIlbsPG1kYdtbHPx6Dklw13bu4u84pF0,3006
115
114
  eva/core/utils/operations.py,sha256=eoC_ScuHUMDCuk08j1bosiQZdPrgiIODqqheR9MtJHQ,641
116
115
  eva/core/utils/parser.py,sha256=2czmwEGJJ6PtmaD86s9I14P-_sek4DmDCkEatRGT5sI,725
116
+ eva/core/utils/paths.py,sha256=LlvvPnlvxbYZxHdsC6letpXemqx-46oA97SAffiipnA,284
117
117
  eva/core/utils/progress_bar.py,sha256=KvvsM_v3_Fhb4JvbEEPHb4PJMokg6mNLj-o6dkfzcMc,499
118
118
  eva/core/utils/registry.py,sha256=iEDVsQ7DdPXhzfW32z3lWNgwjagR_jh_g4VkvajjRK4,1348
119
- eva/core/utils/requirements.py,sha256=u01QPnBDu0YApncxgvg7xEANubyGSptqja12cycg3k0,909
119
+ eva/core/utils/requirements.py,sha256=UXtdoStvv6-AkjoUkVv7hVTEYlWdZ_kqyIVc4QPJ4SA,2154
120
120
  eva/core/utils/suppress_logs.py,sha256=pOk1076J0mKWn2lgDqEVC1g65FXhA_2IkC4LBEWhnwQ,902
121
121
  eva/core/utils/workers.py,sha256=hfx63M82qNg0Dwhre2tl53MnhtRsV7APaDONM9nhVB8,634
122
- eva/language/__init__.py,sha256=EQxtGM6zT3y-6EGecGAo2IXKS6J8dyWNOGP2mvD7fZ0,360
122
+ eva/language/__init__.py,sha256=W_u2wedmQvEOWVEw8dmkie7c6ATeVuTVn9_Yw7uc3cU,406
123
+ eva/language/callbacks/__init__.py,sha256=gVTSGjKYvovTgERVJmQLssW6Fz7aJwjYpe6gqUtq0_8,131
124
+ eva/language/callbacks/writers/__init__.py,sha256=FV02MK218j3pxCgmTvMPtgNL8-4d2NbUcnyvsZI0CNs,150
125
+ eva/language/callbacks/writers/prediction.py,sha256=2uUZZWUaN_Tm1lqo31FY436COq6-qLizd9XlsMxXqq8,7778
123
126
  eva/language/data/__init__.py,sha256=ONF-CLBK2HO2p1bMCAbdvaHfSsYjdSE9-O3lWgwQQGk,89
124
- eva/language/data/datasets/__init__.py,sha256=AeGw3EVyz5w8Ja2m8Hd3FoKkCeG68M0BwtF64VCvOk4,211
127
+ eva/language/data/dataloaders/__init__.py,sha256=6pGDiohDxfNepOyE76XhgQMOYzgL1LYNaR9Qu7xb8fQ,169
128
+ eva/language/data/dataloaders/collate_fn/__init__.py,sha256=QZ22JjL4t8VldudGXTaEPv3rH8XKta_nlip1TszWn9g,171
129
+ eva/language/data/dataloaders/collate_fn/text.py,sha256=BrgbgUOFyaitymVAp2lZNaS2kqU7KzmeMOKfNzGaiYY,1944
130
+ eva/language/data/datasets/__init__.py,sha256=FE5tpQ18z2yRE_q60r2xu7WapLT3oGt5d_iZ6_uJ_DI,308
131
+ eva/language/data/datasets/base.py,sha256=BDpyT_mnYuP5qMlGP_vfRejO-gp-bsQYNMBqM0EmXyY,309
125
132
  eva/language/data/datasets/classification/__init__.py,sha256=HXtgJpMt9CgqvdeWc147bOn-9YeUMcL8v-0UHHkY_A4,144
126
- eva/language/data/datasets/classification/base.py,sha256=53Tbu8dRSMuNfRB_xEBk_3wSe0jRqd_S-IwE9WIpgW0,1669
127
- eva/language/data/datasets/classification/pubmedqa.py,sha256=AxqW5OQAtDBLVX-Sr0WIt3E7GBbkGMUPOvhOlKLTLh8,5439
128
- eva/language/data/datasets/language.py,sha256=Kjy1X9xZBIfjjEYJKMikgKhLaquugRSjXTYM_HWiHmw,305
129
- eva/language/models/__init__.py,sha256=ggL8uDv_J8vQTr5fc5j8UENoPA24h2Bo3uNSdd_vRU0,606
130
- eva/language/models/modules/__init__.py,sha256=UWO_yq7kPzTrptl6iWTFy07E_Cyzf-sTu-zAK-sN3CI,112
131
- eva/language/models/modules/text.py,sha256=wknEnS_t8IToLTo_F9AG4EXkt0_6o4n6dYm-8AVxgOY,2906
133
+ eva/language/data/datasets/classification/base.py,sha256=Xdy8quqx4lSZtS04yJ1WubXREMEnaB7BiCnn-Ao8wIQ,589
134
+ eva/language/data/datasets/classification/pubmedqa.py,sha256=zSmX7eLrMxU0HtFO17zQF3NevNkDEgSNEVZtG27A8OI,6533
135
+ eva/language/data/datasets/prediction.py,sha256=4ZyDFK5IWPuVShKy8z2Bn6Uq0dYgolFhf94EUnzYiC8,5880
136
+ eva/language/data/datasets/schemas.py,sha256=x0IBinezADXzQr71SDFSSeRYXW7uuINmzdPQLemWF-Y,405
137
+ eva/language/data/datasets/text.py,sha256=MpVJa5h7Al572UdU-WtfKwbF7nEAt_jd11rJF3ZIuQk,2778
138
+ eva/language/data/datasets/typings.py,sha256=_JZUD6ZlaCQhvWBD851zQZy3czgCxpsAnbnifSvSRCk,904
139
+ eva/language/data/messages.py,sha256=2x7k-rzZkM8Ow-fIm6cBrsJB6W_vlsjExs6IaQkdDa4,1306
140
+ eva/language/models/__init__.py,sha256=QZHt1uz9bB33Ko5mznlLjY0uGCVmnS7SOLb8Z0Bzgm4,725
141
+ eva/language/models/modules/__init__.py,sha256=Dk2pdjkerDA_Omrue38ia0rYmW84jRvyc9pPKziZH9c,172
142
+ eva/language/models/modules/language.py,sha256=y2UJdTxudcbuGQjWfQ7GMQNy4FVC5wQGjcEaWIAEGRU,3144
132
143
  eva/language/models/modules/typings.py,sha256=dWq3FTbvGZGoIMTEIX1yWBk_VFKIHsvxaTvBXlbJfCA,379
133
- eva/language/models/wrappers/__init__.py,sha256=syKHBqX3MRD2oq_MjDjvoNC6W0F8TdmGYqhwrGLBahI,402
134
- eva/language/models/wrappers/huggingface.py,sha256=l3wVOB4QOe2_yeG4xwNm0imP_kWbjM8RG0ISE4ANAyE,2396
135
- eva/language/models/wrappers/litellm.py,sha256=0GSo3gxUv1Ah6FQ6VqTiiu_0TVx-h4xUkZqdOAGbKTM,2619
136
- eva/language/models/wrappers/vllm.py,sha256=LXadfveGSHmjWAlOBrJm1QHkKzB_O-s3M8U7bnKfW-E,5684
137
- eva/language/utils/__init__.py,sha256=jqrU3o80NAwt6HbNDWSM3e3B1-65vw811DqiUWT0Bys,150
138
- eva/language/utils/str_to_int_tensor.py,sha256=YlNppLlAoX0ZRVfcDX4BStCQPbS1NNParcwptxH0_wE,3143
144
+ eva/language/models/networks/__init__.py,sha256=zrRaiFqcIeFsLm6-yJWUeEgh_1xvBY-5QAdRGjEOysg,374
145
+ eva/language/models/networks/alibaba.py,sha256=kSGPdZWnn0q71Dm03HKmoXWACeEyc8V3HVLuk_fIhno,798
146
+ eva/language/models/networks/api/__init__.py,sha256=NrLiFExfplzbiFqOTgQqSUxeXzlAwCoDcbuBH9hbi58,222
147
+ eva/language/models/networks/api/anthropic.py,sha256=EdIKcFS7RCX_vpiOYMh-tS6rM74orOcNRmhw9pETen8,1194
148
+ eva/language/models/networks/registry.py,sha256=yFA1AhIbgoDLRvn9MUU2FPH25H7BODpN49CN_ya7wrY,106
149
+ eva/language/models/typings.py,sha256=XJbDCYOikgAWAaEQjsFckj5OqE9LhQSelMIRJ_leL_s,1451
150
+ eva/language/models/wrappers/__init__.py,sha256=N5DrkKZs_zE7WHY76bnhViO1hpoO88Sm1BOj12tgwJU,626
151
+ eva/language/models/wrappers/base.py,sha256=r_k44u5XVDw8hxfXWmU13qCejBWQUP00afJi23xm5JM,1693
152
+ eva/language/models/wrappers/from_registry.py,sha256=hdGzLfkgjZLrEb9GyqjF1mNlFMTErQ6sY900_tBJHH8,1793
153
+ eva/language/models/wrappers/huggingface.py,sha256=ihYHQSJGdWgwMTCUyn3WZQmZPa7F7DqqkIwrNWpYGvY,4312
154
+ eva/language/models/wrappers/litellm.py,sha256=kFBEDY7w806vKnZ-H8uGLgO6A3zkgEDhZ3oNhvbjLoI,3792
155
+ eva/language/models/wrappers/vllm.py,sha256=puJVOFeyFrqBplvkjvH5dGALlZD4gduaX3lY5fScbQU,6514
156
+ eva/language/utils/__init__.py,sha256=Bvw7Z5Z-mBQp7rTycycrgrxxrbItD5IqNU4uHRAnD9s,238
157
+ eva/language/utils/str_to_int_tensor.py,sha256=_D2FH_5S1Sc4ywsJ6EWrTwuaw-NJVHygwAaRSRs-NPs,3471
158
+ eva/language/utils/text/__init__.py,sha256=fxMel4GvRx-SKrxGcwXDNG77yj_deEOWc6mkePS2aWo,143
159
+ eva/language/utils/text/messages.py,sha256=9i4AUNjAo8XOF0_gB_MaoQy4SHI2zohz65qtMoTYtWE,3989
160
+ eva/multimodal/__init__.py,sha256=aRq8KCWg4h7XHS68EWSHDepu9VeACxVOU3B4DiQhphE,132
161
+ eva/multimodal/callbacks/__init__.py,sha256=tIwSH9Z1YJfebSU3-rSCGJgaX3Io6rptLX13gmI6Hck,135
162
+ eva/multimodal/callbacks/writers/__init__.py,sha256=6UYVvH3Hbya0haKQh9Dci_lRji9kz1RO4Z_vnTnY24U,154
163
+ eva/multimodal/callbacks/writers/prediction.py,sha256=OSfInVpz2qUDTkzM3MzwWZiJoa3N4y8amMLV5TEK-k0,1316
164
+ eva/multimodal/data/__init__.py,sha256=wL6XCRfIuDp-7YWaHsWZ90CdII-reSW1jQ2dn8_OC0Q,113
165
+ eva/multimodal/data/dataloaders/__init__.py,sha256=OZ4KnLxwfs1ccA6FItyoFBtgUL_vd5JnOycCOhk8H5M,143
166
+ eva/multimodal/data/dataloaders/collate_fn/__init__.py,sha256=1CHJ7cL9ELlo92LakB5ib0YD-kbTjzBrMBZ5j5kYu74,160
167
+ eva/multimodal/data/dataloaders/collate_fn/text_image.py,sha256=Hwf4GOmYtYcJYMTiZSVrSppo_SQqcAmvvahe_4xoVb0,883
168
+ eva/multimodal/data/datasets/__init__.py,sha256=XisAN7MOBncOucelkVOch_rX7KSHPIL7W6lmKUQVQuQ,236
169
+ eva/multimodal/data/datasets/base.py,sha256=mRkxiVpZJ3Rn_YRHvqGGJiAr-I1qY1A2H53vhn59d2g,315
170
+ eva/multimodal/data/datasets/multiple_choice/__init__.py,sha256=tmMLCUQWBAGvDPaUVL4qNoXTabkagoZTgbiAJ9Sci-E,148
171
+ eva/multimodal/data/datasets/multiple_choice/patch_camelyon.py,sha256=r2ZgjStennqHDK4H2Q980sDObvZDjTA6XWSLeBmbWaQ,3100
172
+ eva/multimodal/data/datasets/schemas.py,sha256=44ll-3B8V8ctkmUJ1EuoUSow38EmrRTx9K1nfLw3AgE,366
173
+ eva/multimodal/data/datasets/text_image.py,sha256=CxT8ej6lmcWDdCeimgBcujfgMrdCMEm5LhYnzW0RbL0,2608
174
+ eva/multimodal/data/datasets/typings.py,sha256=dkxszTFljKf8CUlIxblsIlNR0Ckjrl2_NTBq7cAY-fk,641
175
+ eva/multimodal/models/__init__.py,sha256=AILD2D1zLnPW6nelWTjwIBA4jS0kx2iSw3HEQ1wMJTo,130
176
+ eva/multimodal/models/modules/__init__.py,sha256=E6bhjdMGPBEUNI_Lq8foLQjRTbv26B7vgxOB8q3jeSQ,147
177
+ eva/multimodal/models/modules/vision_language.py,sha256=fXNJASE7vszTEcGHeTJvNQYNsYSlsHX_3OLll7biApA,1929
178
+ eva/multimodal/models/networks/__init__.py,sha256=RjW6MZ4lCAAIbstTqIq_rkaZd-fm1_4XwLMetIry9gw,463
179
+ eva/multimodal/models/networks/alibaba.py,sha256=bSc9RuvZU_O8OsrfTCfKToNbLtHVG-aRYiTuHJHU90M,1273
180
+ eva/multimodal/models/networks/api/__init__.py,sha256=eE0nB7XjhuSH1itEyyMtJKxHwHg1IfsHU8S69AvfDo8,224
181
+ eva/multimodal/models/networks/api/anthropic.py,sha256=zlPiML2JL0q-l528x29dez-FofO5ktmOjPLFRh1PwTk,1198
182
+ eva/multimodal/models/networks/others.py,sha256=UvsxxN8d1uxvLcBG6469KifCxiyj_9_RTEG5gf3r2C8,1567
183
+ eva/multimodal/models/networks/registry.py,sha256=beZsRZUrKdUhMPq7UYFOEF7z50FgxGT1OCwE64xBf9A,108
184
+ eva/multimodal/models/typings.py,sha256=bwQbUFIsXhAxk7YTXqRdBYw0RqPA0a6RGNLEt4mBrxk,693
185
+ eva/multimodal/models/wrappers/__init__.py,sha256=RvLw74VGP3mh1CMYPj4Ij09TNkBml4ohvdirXeVBm3I,421
186
+ eva/multimodal/models/wrappers/base.py,sha256=d9OWWknXZmDOBOady1-Jp1L6x7DMg4heFmusA5ElNSU,1769
187
+ eva/multimodal/models/wrappers/from_registry.py,sha256=JBCck-ecIOC9_jSaEVMbU8R2MOgjHQRxzb0SzO4whIQ,1807
188
+ eva/multimodal/models/wrappers/huggingface.py,sha256=Etr2g32vDxHkihp30VKaHRwOmwoKGdqApSR6gtrGbUM,7159
189
+ eva/multimodal/models/wrappers/litellm.py,sha256=SWueKikIvpfZA3QJJP5xqdDH0BhSwG7FLkTzeX-VTVc,2166
190
+ eva/multimodal/utils/__init__.py,sha256=pRJUXvuJtcKOJc1yqKHdQv9dDAn8fOoP0d6Q_9cR7ek,32
191
+ eva/multimodal/utils/batch/__init__.py,sha256=kPXShXXImKsFv4PYKqZohSSexKBLX-uVy9rMTGjmP0M,126
192
+ eva/multimodal/utils/batch/unpack.py,sha256=F6C6OeMqJmA5XCFyVdjkZApwEi40uIVujTdusCrnIaw,447
193
+ eva/multimodal/utils/image/__init__.py,sha256=7DCx0FgFC0CwcR40872P6w1bQWgP8HXuwyy47ZQiv-Q,126
194
+ eva/multimodal/utils/image/encode.py,sha256=q_tq6MJtsy6yWu6Fei1j0mMmyKGBIf1CmvJcK4ev3eU,898
195
+ eva/multimodal/utils/text/__init__.py,sha256=Uk1vnstlU7hLa2Pn4cacVhdhQwe2vsBoPsB0_ZWjOdc,37
196
+ eva/multimodal/utils/text/messages.py,sha256=IIYKXE-6FwoKM3zNt3edKFqiJdEpNLnZXR4yhSZdjkM,2541
139
197
  eva/vision/__init__.py,sha256=oUZXFYjwtkWzi8An0uS5Xc84pLKintlXe2iti8zW6BQ,480
140
198
  eva/vision/callbacks/__init__.py,sha256=su1V73L0dDVYWSyvV_lnWbszDi2KikRraF7OsgeaKl4,139
141
199
  eva/vision/callbacks/loggers/__init__.py,sha256=td1JRJbE08nsGIZdO64_yLC3FUuMDp0kma0HjpUdXT4,161
@@ -153,51 +211,55 @@ eva/vision/data/datasets/_validators.py,sha256=77WZj8ewsuxUjW5WegJ-7zDuR6WdF5Jba
153
211
  eva/vision/data/datasets/classification/__init__.py,sha256=5fOGZxKGPeMCf3Jd9qAOYADPrkZnYg97_QE4DC79AMI,1074
154
212
  eva/vision/data/datasets/classification/bach.py,sha256=Qzkb0aUNR8yMXwjDx8RmIfvPYVmlUW3dippMKrIVqzU,5410
155
213
  eva/vision/data/datasets/classification/bracs.py,sha256=FYe33SmdlFOAl1Ef10uXN7Y8kvlbKuWBqIycFPHtMMU,3325
156
- eva/vision/data/datasets/classification/breakhis.py,sha256=e01gguDCHvp6U18exCm5svWr8EpM_HLbLAq9KJifkpo,6883
214
+ eva/vision/data/datasets/classification/breakhis.py,sha256=fxVH6H7Emd_FGkU_8dBgMXDK_cqxmYsx7rqALUoowo8,6781
157
215
  eva/vision/data/datasets/classification/camelyon16.py,sha256=7E0ju4cctUyprBK063TVXLBN4Fp6cKMICoquv3e5JhQ,8261
158
216
  eva/vision/data/datasets/classification/crc.py,sha256=sv18Lw4iUqGkYXEQN-kyZV_Foc_X15praVR4nN_klkg,5648
159
217
  eva/vision/data/datasets/classification/gleason_arvaniti.py,sha256=z1OQlxZYx-n3S2wcfu-GuchySRw0E70PURJDsvejFjE,5871
160
218
  eva/vision/data/datasets/classification/mhist.py,sha256=I-guWIucQZBHdSx-TWP24NXHf9IA9lU4hyfPZbJop0g,3033
161
- eva/vision/data/datasets/classification/panda.py,sha256=HVfCvByyajdo5o_waqTpzZWCbQXQqPjvvyS5I0NAvns,7277
162
- eva/vision/data/datasets/classification/patch_camelyon.py,sha256=1yXkfP680qxkQUFAPKRFbZv0cHAFx23s2vvT9th2nKM,7149
219
+ eva/vision/data/datasets/classification/panda.py,sha256=gCYZNpriqIMJTnNovCqTLvP5mgADqXWTFToYVJh9dRg,7674
220
+ eva/vision/data/datasets/classification/patch_camelyon.py,sha256=mzgbVGQtaoer9yBXV8pXZx3DjbCy1w6aHNDJfC6CAOI,7187
163
221
  eva/vision/data/datasets/classification/unitopatho.py,sha256=IO3msEsuOnmdcYZxF-eBpo0K97y54rWFmCb_KxuF4bk,5129
164
222
  eva/vision/data/datasets/classification/wsi.py,sha256=YMGxU8ECjudizt_uXUevuPS8k66HxtEQ7M2IZJmL6kE,4079
165
223
  eva/vision/data/datasets/segmentation/__init__.py,sha256=f0q9tzk4ahaZfrw_SgIE_puk_D7qmkSCKX1FP9aJITU,668
166
224
  eva/vision/data/datasets/segmentation/_utils.py,sha256=aXUHrnbefP6-OgSvDQHqssFKhUwETul_8aosqYiOfm8,3065
167
225
  eva/vision/data/datasets/segmentation/bcss.py,sha256=rqk6VqK0QCHLFnMnDuHd1JPJVK5_C6WnsmnNSKBw6Uo,8230
168
- eva/vision/data/datasets/segmentation/btcv.py,sha256=9rlEqGyb2SGJBY6Oj42FlHajQF8csf1Jq6jeuPSsfXI,8396
169
- eva/vision/data/datasets/segmentation/consep.py,sha256=VgP69sjwPVfIY8-5MbsNDu1tdDrTac2DQI2e5vukk9c,6065
226
+ eva/vision/data/datasets/segmentation/btcv.py,sha256=aV4jm2ZEGqm6E-hzZU8fbWaGgu2amRgKcmXk1dKVnlM,8396
227
+ eva/vision/data/datasets/segmentation/consep.py,sha256=6sSHn9hq898Z1IWMyiV-Ep4RPnAppYReO_H7vkfkxb8,6072
170
228
  eva/vision/data/datasets/segmentation/embeddings.py,sha256=RsTuAwGEJPnWPY7q3pwcjmqtEj0wtRBNRBD4a0RcGtA,1218
171
- eva/vision/data/datasets/segmentation/lits17.py,sha256=kcSCKxsgtUuCD1YEYvrb_L_BgOtZC8xDq1lX8ldSZc4,7635
229
+ eva/vision/data/datasets/segmentation/lits17.py,sha256=iPPt1bk2mTg0BKo4SWOsihMU63LWDUQEfhw40_vwGrU,7635
172
230
  eva/vision/data/datasets/segmentation/metadata/__init__.py,sha256=o9Od0v6N9dNdf8hfefn2QaNNCD2sZMvc2K58zHA_Nrg,24
173
231
  eva/vision/data/datasets/segmentation/metadata/_msd_task7_pancreas.py,sha256=O2-ye0A7wIjcI_D857uvpYw-jckTqfhBUrhinqSNWq0,2553
174
- eva/vision/data/datasets/segmentation/monusac.py,sha256=iv9-MFaTsGfGV1u6_lQNcSEeSpmVBDQC1Oa123iEtu0,8410
175
- eva/vision/data/datasets/segmentation/msd_task7_pancreas.py,sha256=dTsPD73PAP15VOXdHnX4eQqbpz2jGpCB31YISzinUd4,8964
232
+ eva/vision/data/datasets/segmentation/monusac.py,sha256=y3HpqWND3wDUXxTg2Gwn5ilvWERYOhFjPItzNLU2Djk,9006
233
+ eva/vision/data/datasets/segmentation/msd_task7_pancreas.py,sha256=3f7XtZ-RLbbZBNB2FTUpX-g4vOGZX9UwG6568rM58x4,8964
176
234
  eva/vision/data/datasets/structs.py,sha256=RaTDW-B36PumcR5gymhCiX-r8GiKqIFcjqoEEjjFyUE,389
177
235
  eva/vision/data/datasets/vision.py,sha256=-_WRiyICMgqABR6Ay_RKBMfsPGwgx9MQfCA7WChHo24,3219
178
236
  eva/vision/data/datasets/wsi.py,sha256=dEAT_Si_Qb3qdSovUPeoiWeoPb7m-NGYqq44e3UXHk8,8384
179
- eva/vision/data/transforms/__init__.py,sha256=39KkoDaIILjgbCEi_WD48a0p6TKV7Woe6744a-CLeOU,863
180
- eva/vision/data/transforms/base/__init__.py,sha256=d3gAnEHx8WZHuUpKLr0YAC1JR60qhRY02yeoADrx1Yw,143
181
- eva/vision/data/transforms/base/monai.py,sha256=g2U4eNxKiPm6TXjHjKZ4L8-1zxa1tEf-c73kKI_7WwQ,1081
237
+ eva/vision/data/transforms/__init__.py,sha256=7CpXeo-oSjft1VpzjK-dmozC0Ds-HeBzBU_KYLTnfIo,885
238
+ eva/vision/data/transforms/base/__init__.py,sha256=qH4URP8FGog17Kvb-aAmGglRmCZrKHDYaXvO9p7USHw,248
239
+ eva/vision/data/transforms/base/monai.py,sha256=zeP18Zit_5HCM_vShXu4bxKGgKMIlzZ2P_tDcCfoveQ,1132
240
+ eva/vision/data/transforms/base/torchvision.py,sha256=9i1VL6cqTUxQlMsbwCdXiZ3aHoYxTTlfNYLhJXoq1lM,1065
182
241
  eva/vision/data/transforms/common/__init__.py,sha256=LWA5u0VsWzEEugdKpjpePr7fgV_XIGdASGwoaOU29Ac,211
183
242
  eva/vision/data/transforms/common/resize_and_crop.py,sha256=GI1HTkbJ9qg4p8c6vk_XkXO0Qi6mBeUeiZIA0jVtmAw,1360
184
- eva/vision/data/transforms/common/squeeze.py,sha256=N9G2XRKOCuqaaLc27jWy8a-x1kgxez0hM2fDPH4w5Ak,726
243
+ eva/vision/data/transforms/common/squeeze.py,sha256=F1M5zbS7hUqQBppx_NYKYk4QTmI1kiHNZMA_q-RMurE,800
185
244
  eva/vision/data/transforms/croppad/__init__.py,sha256=sa-M4JMdZGB39JqWOLAJvoun4YK3N4hBFuM--DZ8SnE,606
186
- eva/vision/data/transforms/croppad/crop_foreground.py,sha256=3o27nOgxfRo8ap45lpmnaiAIZ08kdyp14vYpr4BC8zc,4865
187
- eva/vision/data/transforms/croppad/rand_crop_by_label_classes.py,sha256=9oRY1ZuvUGuJNRkAT7JEquWBrYmNAD82FebrbvwVEtc,2587
188
- eva/vision/data/transforms/croppad/rand_crop_by_pos_neg_label.py,sha256=5omKDSECPdnWEt-AXlu8oeN7N-qa1MXekEggZ08KeIQ,5670
189
- eva/vision/data/transforms/croppad/rand_spatial_crop.py,sha256=yKAW5GN1B1vac74REYpBbrRhKxI2BhGA_LDEJ_AcO5w,3769
190
- eva/vision/data/transforms/croppad/spatial_pad.py,sha256=j5V2vvgGcf75GzGyAT7mGgpvlEOS2BnAcThRdt7Und4,2857
245
+ eva/vision/data/transforms/croppad/crop_foreground.py,sha256=jt9zYhwA4pyqOk_ib9MIFjAbNK2oNO1J5Sm8jiET35Q,4896
246
+ eva/vision/data/transforms/croppad/rand_crop_by_label_classes.py,sha256=j5AuN5MN_E8LNpWITaZFbUJ5R0DwoV1hjYmHxJkO6OI,2597
247
+ eva/vision/data/transforms/croppad/rand_crop_by_pos_neg_label.py,sha256=BEcIUKlH4axgA7xEYmtkNtlH106AZmIXiAT8gaJbBtI,5680
248
+ eva/vision/data/transforms/croppad/rand_spatial_crop.py,sha256=zESzeQrhbE-UtoNEp__2OwtcOYXKOSHVAPiIAQ5pJAY,3800
249
+ eva/vision/data/transforms/croppad/spatial_pad.py,sha256=8IC8NkN8iVi9-f2w-my2LhrWD2dXNR6VlKSjDre78y4,2874
191
250
  eva/vision/data/transforms/intensity/__init__.py,sha256=mNp6pi0pnHcA24kQuiGHzMb4XLRaR0Lgi-Vb7Nl-Aoo,408
192
- eva/vision/data/transforms/intensity/rand_scale_intensity.py,sha256=x3gYRRAFbZXFWgqvoUjT0sDFWT6zbhja3PJLXbOBtTg,2184
193
- eva/vision/data/transforms/intensity/rand_shift_intensity.py,sha256=5ngSHfHgJOR9KQykNKJhQMWhQYj781Mj_JKJ_ADchbM,2117
194
- eva/vision/data/transforms/intensity/scale_intensity_ranged.py,sha256=VLvYZYG6jQCuR5poJsAlhIFjw6VjPEpcDPKBlJTjYBM,1873
195
- eva/vision/data/transforms/spatial/__init__.py,sha256=k7C_p4fMZd7A00ikldAMsprYDedKrlMjKQB6BLA5InA,284
196
- eva/vision/data/transforms/spatial/flip.py,sha256=jfRc-wPBvG58OtCNU3GrOkb57kcRddRqpwcAdCB0_No,2553
197
- eva/vision/data/transforms/spatial/rotate.py,sha256=FpMTAPWtgrG10yQ3R1_Ii6obPcn3boNWOuLhsblxUbQ,1793
198
- eva/vision/data/transforms/spatial/spacing.py,sha256=T1UhqK-OhhbLQxzejMyI8BQzYRF44PNc02Qap4nk1hY,2695
251
+ eva/vision/data/transforms/intensity/rand_scale_intensity.py,sha256=L7zZLlh0NhIAEA7cr25Q0m8NlfaDsqPCRR6qYgLzP5s,2181
252
+ eva/vision/data/transforms/intensity/rand_shift_intensity.py,sha256=p9m6-r5TLiVvmpEqGStltbfoshwaKKK1tUfIieHqMuw,2114
253
+ eva/vision/data/transforms/intensity/scale_intensity_ranged.py,sha256=A4MWnWSbJsL2KfyhiHFxXylTF78J-kON-Kqx-IgtGZ4,1891
254
+ eva/vision/data/transforms/spatial/__init__.py,sha256=S2JwmBm98oPWLN497aYM-h1kyPU15Yfg9xPVTvzq6lg,355
255
+ eva/vision/data/transforms/spatial/flip.py,sha256=HpqS3DTuh_ajwZ3C_37r51Guthc2DqTaJnrWOsbzgTQ,2584
256
+ eva/vision/data/transforms/spatial/functional/__init__.py,sha256=OzJ_Hv3CJAvvTQsk6mo_IQS0MqPW2WQ6fwtWE3UQ_Xk,166
257
+ eva/vision/data/transforms/spatial/functional/resize.py,sha256=NBswLluIRs1cJP-dx5Kd3Z01gF57NjPXbtPGKNa0td0,949
258
+ eva/vision/data/transforms/spatial/resize.py,sha256=uG7nV2QjUK1jR5UljQoMmgfGzSWcucGwl-9VzU-Cm0g,2361
259
+ eva/vision/data/transforms/spatial/rotate.py,sha256=Xkl8MFM6OhxdMTxunkkYy8noy6TXkm4v0qdjGEHECh8,1824
260
+ eva/vision/data/transforms/spatial/spacing.py,sha256=n02frUSNfBZP74OMJJKaWh5-WfMOvW0ccE_QlLawJ2E,2727
199
261
  eva/vision/data/transforms/utility/__init__.py,sha256=TjncS2aOgRJwjjRuIvmr4eRz2nKVg6b76tThp4UlzII,163
200
- eva/vision/data/transforms/utility/ensure_channel_first.py,sha256=jpnV7oWel1ZSL2VUf3wUdbB8xM2OFD8R6xpHcPCJVgw,1945
262
+ eva/vision/data/transforms/utility/ensure_channel_first.py,sha256=VD3p6nGvA6fgv93YZVFpIS8AfSybKSykurtdd73Bb0c,1962
201
263
  eva/vision/data/tv_tensors/__init__.py,sha256=qla_QYWN52vP0IlTmHlTZF4kLh9xj-Zy-WxQgXakYyk,125
202
264
  eva/vision/data/tv_tensors/volume.py,sha256=VlWTIbswNv-aUqEWd1EJgoqEH60d-gNALPG815TD_W8,2381
203
265
  eva/vision/data/wsi/__init__.py,sha256=vfSfyogsj4OS1sGKfsYWyj2O5ZMT9iqkc1lvcuZJVGI,422
@@ -253,7 +315,7 @@ eva/vision/models/networks/backbones/registry.py,sha256=ubLPktCXZu_CLTfPk3sO-JzO
253
315
  eva/vision/models/networks/backbones/timm/__init__.py,sha256=cZH3av9gIZcvEVD0rwKsI-MEq7zPqaW4dQ0E05CksvQ,128
254
316
  eva/vision/models/networks/backbones/timm/backbones.py,sha256=ZbF9MMiL4Ylyy79XLew61QxmnH9MPXUHPounzzqOKVc,1638
255
317
  eva/vision/models/networks/backbones/universal/__init__.py,sha256=xgn3crSqlmUPYz-t2CR1zDKxhlyAEeApA-a6Y_eWQvc,417
256
- eva/vision/models/networks/backbones/universal/vit.py,sha256=To0OzwpuX5Y5PwjGidwV0Ssq3xa81dve081buwG_Ofg,3658
318
+ eva/vision/models/networks/backbones/universal/vit.py,sha256=-z-k1Q30olx3CFdDn77Jg1pkB6Vmgbw1qmIc2jAbNLo,4508
257
319
  eva/vision/models/networks/decoders/__init__.py,sha256=RXFWmoYw2i6E9VOUCJmU8c72icHannVuo-cUKy6fnLM,200
258
320
  eva/vision/models/networks/decoders/segmentation/__init__.py,sha256=yVrRo2OisNRAlxDjWJGwipKA9HGeqRXd1ZL88eltoy4,726
259
321
  eva/vision/models/networks/decoders/segmentation/base.py,sha256=b2TIJKiJR9vejVRpNyedMJLPTrpHhAEXvco8atb9TPU,411
@@ -265,8 +327,8 @@ eva/vision/models/networks/decoders/segmentation/semantic/swin_unetr.py,sha256=e
265
327
  eva/vision/models/networks/decoders/segmentation/semantic/with_image.py,sha256=I5PyGKKo8DcXYcw4xlCFzuavRJNRrzGT-szpDidMPXI,3516
266
328
  eva/vision/models/networks/decoders/segmentation/typings.py,sha256=rY4CXp0MNF16SHnx9TgGjXI_r8bVGSqAWdR835hXndg,537
267
329
  eva/vision/models/wrappers/__init__.py,sha256=ogmr-eeVuGaOCcsuxSp6PGyauP2QqWTb8dGTtbC7lRU,210
268
- eva/vision/models/wrappers/from_registry.py,sha256=2vpKTkoa_CGjVLbhnUclstFzDfkXCqMxjdtxTk212HQ,1729
269
- eva/vision/models/wrappers/from_timm.py,sha256=Lkdibly4H_XNjl863YFBj10ZbSTN1onT2Bc6yV072m0,2334
330
+ eva/vision/models/wrappers/from_registry.py,sha256=aZTbPqlfbxvx5vmh2aUym9njTlEaFwmTL5fU2zPW0To,1761
331
+ eva/vision/models/wrappers/from_timm.py,sha256=vf5ZoEdh-QJW-wGD6PgpqkkgQzXgQ4lT1YIaI_kwnfU,2367
270
332
  eva/vision/utils/__init__.py,sha256=vaUovprE743SmyFH8l6uk4pYSWpI4zxn7lN0EwePTJI,96
271
333
  eva/vision/utils/colormap.py,sha256=sP1F0JCX3abZfFgdxEjLJO-LhNYKjXZvXxs03ZgrEvI,2876
272
334
  eva/vision/utils/convert.py,sha256=fqGmKrg5-JJLrTkTXB4YDcWTudXPrO1gGjsckVRUesU,1881
@@ -276,8 +338,8 @@ eva/vision/utils/io/image.py,sha256=IdOkr5MYqhYHz8U9drZ7wULTM3YHwCWSjZlu_Qdl4GQ,
276
338
  eva/vision/utils/io/mat.py,sha256=qpGifyjmpE0Xhv567Si7-zxKrgkgE0sywP70cHiLFGU,808
277
339
  eva/vision/utils/io/nifti.py,sha256=TFMgNhLqIK3sl3RjIRXEABM7FmSQjqVOwk1vXkuvX2w,4983
278
340
  eva/vision/utils/io/text.py,sha256=qYgfo_ZaDZWfG02NkVVYzo5QFySqdCCz5uLA9d-zXtI,701
279
- kaiko_eva-0.3.3.dist-info/METADATA,sha256=3-qTJLt0hRJswZbPVixj9e9Bt0gFXDjOp6YbNf6Ohd4,25704
280
- kaiko_eva-0.3.3.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
281
- kaiko_eva-0.3.3.dist-info/entry_points.txt,sha256=6CSLu9bmQYJSXEg8gbOzRhxH0AGs75BB-vPm3VvfcNE,88
282
- kaiko_eva-0.3.3.dist-info/licenses/LICENSE,sha256=e6AEzr7j_R-PYr2qLO-JwLn8y70jbVD3U2mxbRmwcI4,11338
283
- kaiko_eva-0.3.3.dist-info/RECORD,,
341
+ kaiko_eva-0.4.1.dist-info/METADATA,sha256=vPvZCCuuiafyMbByxXGfMaQ_SeY0mWrnOc6Mw7iuiDA,26166
342
+ kaiko_eva-0.4.1.dist-info/WHEEL,sha256=9P2ygRxDrTJz3gsagc0Z96ukrxjr-LFBGOgv3AuKlCA,90
343
+ kaiko_eva-0.4.1.dist-info/entry_points.txt,sha256=6CSLu9bmQYJSXEg8gbOzRhxH0AGs75BB-vPm3VvfcNE,88
344
+ kaiko_eva-0.4.1.dist-info/licenses/LICENSE,sha256=e6AEzr7j_R-PYr2qLO-JwLn8y70jbVD3U2mxbRmwcI4,11338
345
+ kaiko_eva-0.4.1.dist-info/RECORD,,
@@ -1,5 +0,0 @@
1
- """Collate functions API."""
2
-
3
- from eva.core.data.dataloaders.collate_fn.collate import text_collate_fn
4
-
5
- __all__ = ["text_collate_fn"]
@@ -1,24 +0,0 @@
1
- """Collate functions for text data."""
2
-
3
- from typing import Dict, List, Tuple
4
-
5
- import torch
6
-
7
-
8
- def text_collate_fn(
9
- batch: List[Tuple[str, torch.Tensor, Dict]],
10
- ) -> Tuple[List[str], torch.Tensor, List[Dict]]:
11
- """Collate function for text data that keeps texts as separate strings.
12
-
13
- Args:
14
- batch: List of tuples containing (text, target, metadata) from the dataset
15
-
16
- Returns:
17
- Tuple containing:
18
- - List of text strings
19
- - Batched tensor of targets
20
- - List of metadata dictionaries
21
- """
22
- texts, targets, metadata = zip(*batch, strict=False)
23
- targets = torch.stack(targets)
24
- return list(texts), targets, list(metadata)
@@ -1,85 +0,0 @@
1
- """LLM Text Module for Inference."""
2
-
3
- from typing import Any, List
4
-
5
- from lightning.pytorch.utilities.types import STEP_OUTPUT
6
- from loguru import logger
7
- from torch import nn
8
- from typing_extensions import override
9
-
10
- from eva.core.metrics import structs as metrics_lib
11
- from eva.core.models.modules import module
12
- from eva.core.models.modules.utils import batch_postprocess
13
- from eva.language.models.modules.typings import TEXT_BATCH
14
-
15
-
16
- class TextModule(module.ModelModule):
17
- """Text-based LLM module for inference.
18
-
19
- Uses LLM wrappers for text generation and supports evaluation using
20
- configurable metrics and post-processing transforms.
21
- """
22
-
23
- def __init__(
24
- self,
25
- model: nn.Module,
26
- prompt: str,
27
- metrics: metrics_lib.MetricsSchema | None = None,
28
- postprocess: batch_postprocess.BatchPostProcess | None = None,
29
- ) -> None:
30
- """Initializes the text inference module.
31
-
32
- Args:
33
- model: An LLM wrapper (PyTorch-compatible) for text generation.
34
- prompt: The prompt to use for generating text.
35
- metrics: Metrics schema for evaluation.
36
- postprocess: A helper function to post-process model outputs before evaluation.
37
- """
38
- super().__init__(metrics=metrics, postprocess=postprocess)
39
-
40
- self.model = model
41
- self.prompt = prompt
42
-
43
- @override
44
- def forward(self, prompts: List[str], *args: Any, **kwargs: Any) -> List[str]:
45
- """Generates text responses for a batch of prompts.
46
-
47
- Args:
48
- prompts: List of input texts to generate responses.
49
- args: Additional arguments.
50
- kwargs: Additional keyword arguments.
51
-
52
- Returns:
53
- List of generated responses.
54
- """
55
- return self.model(prompts)
56
-
57
- @override
58
- def validation_step(self, batch: TEXT_BATCH, *args: Any, **kwargs: Any) -> STEP_OUTPUT:
59
- """Validation step that runs batch inference and evaluates metrics.
60
-
61
- Args:
62
- batch: An input batch.
63
- args: Additional arguments.
64
- kwargs: Additional keyword arguments.
65
-
66
- Returns:
67
- Dictionary with predictions, ground truth, and evaluation metrics.
68
- """
69
- return self._batch_step(batch)
70
-
71
- def _batch_step(self, batch: TEXT_BATCH) -> STEP_OUTPUT:
72
- """Runs inference on a batch and evaluates model predictions.
73
-
74
- Args:
75
- batch: Input batch containing data, targets, and metadata.
76
-
77
- Returns:
78
- Dictionary with predictions, ground truth, and evaluation metrics.
79
- """
80
- data, targets, metadata = batch
81
- messages = [str(d) + "\n" + self.prompt for d in data]
82
- predictions = self(messages)
83
- logger.debug(f"Predictions: {predictions}")
84
- logger.debug(f"Targets: {targets}")
85
- return {"predictions": predictions, "targets": targets, "metadata": metadata}