kaiko-eva 0.1.6__tar.gz → 0.1.7__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.

Potentially problematic release.


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

Files changed (568) hide show
  1. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/PKG-INFO +2 -2
  2. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/pyproject.toml +2 -2
  3. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/dataloaders/dataloader.py +5 -2
  4. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/datamodule.py +42 -5
  5. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/schemas.py +18 -1
  6. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/__init__.py +4 -1
  7. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/base.py +23 -0
  8. kaiko_eva-0.1.7/src/eva/core/data/datasets/typings.py +18 -0
  9. kaiko_eva-0.1.7/src/eva/core/data/samplers/__init__.py +7 -0
  10. kaiko_eva-0.1.7/src/eva/core/data/samplers/classification/__init__.py +5 -0
  11. kaiko_eva-0.1.7/src/eva/core/data/samplers/classification/balanced.py +96 -0
  12. kaiko_eva-0.1.7/src/eva/core/data/samplers/random.py +39 -0
  13. kaiko_eva-0.1.7/src/eva/core/data/samplers/sampler.py +33 -0
  14. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/module.py +30 -9
  15. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/__init__.py +8 -1
  16. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/head.py +19 -1
  17. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/utils/__init__.py +2 -1
  18. kaiko_eva-0.1.7/src/eva/core/models/modules/utils/checkpoint.py +21 -0
  19. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/__init__.py +3 -1
  20. kaiko_eva-0.1.7/src/eva/core/models/wrappers/from_torchhub.py +93 -0
  21. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/trainers/functional.py +4 -2
  22. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/trainers/trainer.py +8 -4
  23. kaiko_eva-0.1.7/src/eva/vision/data/datasets/segmentation/_total_segmentator.py +91 -0
  24. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/consep.py +4 -1
  25. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/lits.py +3 -3
  26. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/total_segmentator_2d.py +92 -37
  27. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/vision.py +1 -18
  28. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/losses/dice.py +0 -3
  29. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/__init__.py +5 -1
  30. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/defaults/segmentation/multiclass.py +30 -6
  31. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/__init__.py +4 -0
  32. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/_utils.py +1 -2
  33. kaiko_eva-0.1.7/src/eva/vision/metrics/segmentation/dice.py +69 -0
  34. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/generalized_dice.py +2 -4
  35. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/mean_iou.py +4 -8
  36. kaiko_eva-0.1.7/src/eva/vision/metrics/segmentation/monai_dice.py +57 -0
  37. kaiko_eva-0.1.7/src/eva/vision/metrics/wrappers/__init__.py +5 -0
  38. kaiko_eva-0.1.7/src/eva/vision/metrics/wrappers/monai.py +32 -0
  39. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/modules/semantic_segmentation.py +19 -1
  40. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/__init__.py +2 -2
  41. kaiko_eva-0.1.7/src/eva/vision/models/networks/backbones/torchhub/__init__.py +5 -0
  42. kaiko_eva-0.1.7/src/eva/vision/models/networks/backbones/torchhub/backbones.py +61 -0
  43. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/decoder2d.py +1 -1
  44. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/wrappers/__init__.py +1 -1
  45. kaiko_eva-0.1.7/tests/eva/core/data/samplers/__init__.py +1 -0
  46. kaiko_eva-0.1.7/tests/eva/core/data/samplers/_utils.py +30 -0
  47. kaiko_eva-0.1.7/tests/eva/core/data/samplers/classification/__init__.py +1 -0
  48. kaiko_eva-0.1.7/tests/eva/core/data/samplers/classification/test_balanced.py +75 -0
  49. kaiko_eva-0.1.7/tests/eva/core/models/wrappers/test_from_torchub.py +76 -0
  50. kaiko_eva-0.1.7/tests/eva/vision/data/datasets/segmentation/test_total_segmentator.py +130 -0
  51. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/defaults/segmentation/test_multiclass.py +6 -1
  52. kaiko_eva-0.1.7/tests/eva/vision/metrics/segmentation/test_dice.py +48 -0
  53. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/test_vision_cli.py +2 -2
  54. kaiko_eva-0.1.6/src/eva/core/data/samplers/__init__.py +0 -5
  55. kaiko_eva-0.1.6/src/eva/core/data/samplers/sampler.py +0 -6
  56. kaiko_eva-0.1.6/tests/eva/vision/data/datasets/segmentation/test_total_segmentator.py +0 -68
  57. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/LICENSE +0 -0
  58. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/README.md +0 -0
  59. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/__init__.py +0 -0
  60. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/__main__.py +0 -0
  61. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/__version__.py +0 -0
  62. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/__init__.py +0 -0
  63. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/__init__.py +0 -0
  64. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/config.py +0 -0
  65. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/__init__.py +0 -0
  66. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
  67. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/_manifest.py +0 -0
  68. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/base.py +0 -0
  69. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/classification.py +0 -0
  70. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/segmentation.py +0 -0
  71. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/typings.py +0 -0
  72. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/cli/__init__.py +0 -0
  73. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/cli/cli.py +0 -0
  74. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/cli/logo.py +0 -0
  75. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/cli/setup.py +0 -0
  76. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/__init__.py +0 -0
  77. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/dataloaders/__init__.py +0 -0
  78. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/__init__.py +0 -0
  79. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/call.py +0 -0
  80. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/classification/__init__.py +0 -0
  81. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/classification/embeddings.py +0 -0
  82. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/classification/multi_embeddings.py +0 -0
  83. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/dataset.py +0 -0
  84. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/embeddings.py +0 -0
  85. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/splitting/__init__.py +0 -0
  86. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/splitting/random.py +0 -0
  87. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/splitting/stratified.py +0 -0
  88. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/__init__.py +0 -0
  89. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/dtype/__init__.py +0 -0
  90. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/dtype/array.py +0 -0
  91. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/padding/__init__.py +0 -0
  92. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/padding/pad_2d_tensor.py +0 -0
  93. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/sampling/__init__.py +0 -0
  94. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/sampling/sample_from_axis.py +0 -0
  95. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/interface/__init__.py +0 -0
  96. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/interface/interface.py +0 -0
  97. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/__init__.py +0 -0
  98. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/dummy.py +0 -0
  99. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/experimental_loggers.py +0 -0
  100. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/__init__.py +0 -0
  101. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/image.py +0 -0
  102. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/parameters.py +0 -0
  103. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/utils.py +0 -0
  104. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/loggers/loggers.py +0 -0
  105. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/losses/__init__.py +0 -0
  106. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/losses/cross_entropy.py +0 -0
  107. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/__init__.py +0 -0
  108. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/average_loss.py +0 -0
  109. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/binary_balanced_accuracy.py +0 -0
  110. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/__init__.py +0 -0
  111. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/classification/__init__.py +0 -0
  112. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/classification/binary.py +0 -0
  113. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/classification/multiclass.py +0 -0
  114. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/__init__.py +0 -0
  115. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/collection.py +0 -0
  116. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/metric.py +0 -0
  117. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/schemas.py +0 -0
  118. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/typings.py +0 -0
  119. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/__init__.py +0 -0
  120. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/inference.py +0 -0
  121. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/module.py +0 -0
  122. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/typings.py +0 -0
  123. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/utils/batch_postprocess.py +0 -0
  124. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/modules/utils/grad.py +0 -0
  125. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/networks/__init__.py +0 -0
  126. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/networks/mlp.py +0 -0
  127. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/transforms/__init__.py +0 -0
  128. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/transforms/extract_cls_features.py +0 -0
  129. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/transforms/extract_patch_features.py +0 -0
  130. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/_utils.py +0 -0
  131. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/base.py +0 -0
  132. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/from_function.py +0 -0
  133. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/huggingface.py +0 -0
  134. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/onnx.py +0 -0
  135. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/trainers/__init__.py +0 -0
  136. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/trainers/_logging.py +0 -0
  137. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/trainers/_recorder.py +0 -0
  138. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/trainers/_utils.py +0 -0
  139. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/__init__.py +0 -0
  140. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/clone.py +0 -0
  141. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/io/__init__.py +0 -0
  142. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/io/dataframe.py +0 -0
  143. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/io/gz.py +0 -0
  144. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/memory.py +0 -0
  145. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/multiprocessing.py +0 -0
  146. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/operations.py +0 -0
  147. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/parser.py +0 -0
  148. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/progress_bar.py +0 -0
  149. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/core/utils/workers.py +0 -0
  150. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/__init__.py +0 -0
  151. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/__init__.py +0 -0
  152. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/__init__.py +0 -0
  153. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/batch/__init__.py +0 -0
  154. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/batch/base.py +0 -0
  155. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/batch/segmentation.py +0 -0
  156. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/__init__.py +0 -0
  157. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/__init__.py +0 -0
  158. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/_utils.py +0 -0
  159. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/_validators.py +0 -0
  160. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/__init__.py +0 -0
  161. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/bach.py +0 -0
  162. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/base.py +0 -0
  163. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/camelyon16.py +0 -0
  164. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/crc.py +0 -0
  165. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/mhist.py +0 -0
  166. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/panda.py +0 -0
  167. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/patch_camelyon.py +0 -0
  168. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/wsi.py +0 -0
  169. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/__init__.py +0 -0
  170. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/_utils.py +0 -0
  171. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/base.py +0 -0
  172. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/bcss.py +0 -0
  173. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/embeddings.py +0 -0
  174. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/lits_balanced.py +0 -0
  175. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/monusac.py +0 -0
  176. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/structs.py +0 -0
  177. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/wsi.py +0 -0
  178. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/__init__.py +0 -0
  179. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/common/__init__.py +0 -0
  180. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/common/resize_and_clamp.py +0 -0
  181. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/common/resize_and_crop.py +0 -0
  182. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/__init__.py +0 -0
  183. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/clamp.py +0 -0
  184. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/functional/__init__.py +0 -0
  185. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/functional/rescale_intensity.py +0 -0
  186. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/rescale_intensity.py +0 -0
  187. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/__init__.py +0 -0
  188. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/__init__.py +0 -0
  189. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/base.py +0 -0
  190. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/openslide.py +0 -0
  191. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/pil.py +0 -0
  192. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/tiffslide.py +0 -0
  193. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/__init__.py +0 -0
  194. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/coordinates.py +0 -0
  195. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/mask.py +0 -0
  196. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
  197. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/_utils.py +0 -0
  198. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/base.py +0 -0
  199. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/foreground_grid.py +0 -0
  200. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/grid.py +0 -0
  201. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/random.py +0 -0
  202. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/losses/__init__.py +0 -0
  203. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/defaults/__init__.py +0 -0
  204. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
  205. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/BUILD +0 -0
  206. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/__init__.py +0 -0
  207. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/modules/__init__.py +0 -0
  208. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/__init__.py +0 -0
  209. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/abmil.py +0 -0
  210. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/_utils.py +0 -0
  211. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/__init__.py +0 -0
  212. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/bioptimus.py +0 -0
  213. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/gigapath.py +0 -0
  214. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/histai.py +0 -0
  215. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/kaiko.py +0 -0
  216. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/lunit.py +0 -0
  217. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/mahmood.py +0 -0
  218. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/owkin.py +0 -0
  219. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/paige.py +0 -0
  220. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/registry.py +0 -0
  221. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/timm/__init__.py +0 -0
  222. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/timm/backbones.py +0 -0
  223. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/universal/__init__.py +0 -0
  224. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/universal/vit.py +0 -0
  225. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/__init__.py +0 -0
  226. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
  227. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/base.py +0 -0
  228. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/linear.py +0 -0
  229. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/semantic/__init__.py +0 -0
  230. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/semantic/common.py +0 -0
  231. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/semantic/with_image.py +0 -0
  232. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/typings.py +0 -0
  233. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/wrappers/from_registry.py +0 -0
  234. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/models/wrappers/from_timm.py +0 -0
  235. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/__init__.py +0 -0
  236. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/colormap.py +0 -0
  237. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/convert.py +0 -0
  238. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/__init__.py +0 -0
  239. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/_utils.py +0 -0
  240. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/image.py +0 -0
  241. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/mat.py +0 -0
  242. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/nifti.py +0 -0
  243. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/text.py +0 -0
  244. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/__init__.py +0 -0
  245. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/__init__.py +0 -0
  246. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/_cli.py +0 -0
  247. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/archives/test.txt.gz +0 -0
  248. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_0_shape_8.pt +0 -0
  249. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_1_shape_8.pt +0 -0
  250. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_2_shape_8_list.pt +0 -0
  251. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_3_shape_8_list.pt +0 -0
  252. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_4_shape_1x8.pt +0 -0
  253. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_5_shape_1x8.pt +0 -0
  254. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
  255. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_7_shape_1x8_list.pt +0 -0
  256. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/manifest.csv +0 -0
  257. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_0_shape_6x8.pt +0 -0
  258. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_1_shape_3x8.pt +0 -0
  259. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_2_shape_1x8.pt +0 -0
  260. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_3_shape_2x8.pt +0 -0
  261. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_4_shape_5x8.pt +0 -0
  262. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_5_shape_3x8.pt +0 -0
  263. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
  264. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_7_shape_6x8_list.pt +0 -0
  265. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_8_shape_2x8_list.pt +0 -0
  266. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_9_shape_5x8_list.pt +0 -0
  267. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/manifest.csv +0 -0
  268. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/images/random_bgr_32x32.png +0 -0
  269. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/images/random_grayscale_32x32.png +0 -0
  270. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b001.tif +0 -0
  271. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b002.tif +0 -0
  272. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b003.tif +0 -0
  273. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b004.tif +0 -0
  274. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b005.tif +0 -0
  275. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b006.tif +0 -0
  276. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is001.tif +0 -0
  277. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is002.tif +0 -0
  278. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is003.tif +0 -0
  279. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is004.tif +0 -0
  280. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is005.tif +0 -0
  281. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is006.tif +0 -0
  282. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv001.tif +0 -0
  283. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv002.tif +0 -0
  284. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv003.tif +0 -0
  285. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv004.tif +0 -0
  286. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv005.tif +0 -0
  287. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv006.tif +0 -0
  288. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n001.tif +0 -0
  289. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n002.tif +0 -0
  290. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n003.tif +0 -0
  291. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n004.tif +0 -0
  292. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n005.tif +0 -0
  293. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n006.tif +0 -0
  294. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
  295. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
  296. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
  297. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
  298. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
  299. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
  300. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
  301. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
  302. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
  303. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
  304. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
  305. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
  306. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
  307. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
  308. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
  309. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
  310. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
  311. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
  312. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
  313. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
  314. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_001.tif +0 -0
  315. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_002.tif +0 -0
  316. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/testing/reference.csv +0 -0
  317. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_001.tif +0 -0
  318. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_002.tif +0 -0
  319. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_001.tif +0 -0
  320. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_002.tif +0 -0
  321. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Images/test_1.png +0 -0
  322. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Images/test_2.png +0 -0
  323. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Images/test_3.png +0 -0
  324. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_1.mat +0 -0
  325. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_2.mat +0 -0
  326. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_3.mat +0 -0
  327. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_1.png +0 -0
  328. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_2.png +0 -0
  329. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_3.png +0 -0
  330. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_4.png +0 -0
  331. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_1.mat +0 -0
  332. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_2.mat +0 -0
  333. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_3.mat +0 -0
  334. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_4.mat +0 -0
  335. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHVHHPH.tif +0 -0
  336. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHWWQMY.tif +0 -0
  337. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYHKNMK.tif +0 -0
  338. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYMDTNW.tif +0 -0
  339. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYRSHLP.tif +0 -0
  340. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYTCTDR.tif +0 -0
  341. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYWRPGDD.tif +0 -0
  342. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYYTKMWW.tif +0 -0
  343. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYNWSAM.tif +0 -0
  344. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYRQDLW.tif +0 -0
  345. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYNVQVQ.tif +0 -0
  346. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYRWWNH.tif +0 -0
  347. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYTTIRVD.tif +0 -0
  348. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYVAFTKA.tif +0 -0
  349. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYHNSSM.tif +0 -0
  350. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYWVWFG.tif +0 -0
  351. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYSGWYW.tif +0 -0
  352. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYYQFVN.tif +0 -0
  353. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHVHHPH.tif +0 -0
  354. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHWWQMY.tif +0 -0
  355. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYHKNMK.tif +0 -0
  356. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYMDTNW.tif +0 -0
  357. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYRSHLP.tif +0 -0
  358. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYTCTDR.tif +0 -0
  359. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYWRPGDD.tif +0 -0
  360. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYYTKMWW.tif +0 -0
  361. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYNWSAM.tif +0 -0
  362. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYRQDLW.tif +0 -0
  363. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYNVQVQ.tif +0 -0
  364. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYRWWNH.tif +0 -0
  365. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYTTIRVD.tif +0 -0
  366. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYVAFTKA.tif +0 -0
  367. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYHNSSM.tif +0 -0
  368. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYWVWFG.tif +0 -0
  369. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYSGWYW.tif +0 -0
  370. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYYQFVN.tif +0 -0
  371. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHVHHPH.tif +0 -0
  372. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHWWQMY.tif +0 -0
  373. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYHKNMK.tif +0 -0
  374. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYMDTNW.tif +0 -0
  375. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYRSHLP.tif +0 -0
  376. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYTCTDR.tif +0 -0
  377. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYWRPGDD.tif +0 -0
  378. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYYTKMWW.tif +0 -0
  379. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYNWSAM.tif +0 -0
  380. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYRQDLW.tif +0 -0
  381. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYNVQVQ.tif +0 -0
  382. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYRWWNH.tif +0 -0
  383. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYTTIRVD.tif +0 -0
  384. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYVAFTKA.tif +0 -0
  385. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYHNSSM.tif +0 -0
  386. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYWVWFG.tif +0 -0
  387. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYSGWYW.tif +0 -0
  388. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYYQFVN.tif +0 -0
  389. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-31.nii +0 -0
  390. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-45.nii +0 -0
  391. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-31.nii +0 -0
  392. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-45.nii +0 -0
  393. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/annotations.csv +0 -0
  394. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaa.png +0 -0
  395. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aab.png +0 -0
  396. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aac.png +0 -0
  397. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aae.png +0 -0
  398. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaf.png +0 -0
  399. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aag.png +0 -0
  400. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aah.png +0 -0
  401. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_1.tif +0 -0
  402. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_1.xml +0 -0
  403. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_2.tif +0 -0
  404. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_2.xml +0 -0
  405. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_3.tif +0 -0
  406. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_3.xml +0 -0
  407. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JN-01Z-00-DX1/TCGA-2Z-A9JN-01Z-00-DX1_1.tif +0 -0
  408. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JN-01Z-00-DX1/TCGA-2Z-A9JN-01Z-00-DX1_1.xml +0 -0
  409. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-55-1594-01Z-00-DX1/TCGA-55-1594-01Z-00-DX1_003.tif +0 -0
  410. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-55-1594-01Z-00-DX1/TCGA-55-1594-01Z-00-DX1_003.xml +0 -0
  411. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-5P-A9K0-01Z-00-DX1/TCGA-5P-A9K0-01Z-00-DX1_3.tif +0 -0
  412. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-5P-A9K0-01Z-00-DX1/TCGA-5P-A9K0-01Z-00-DX1_3.xml +0 -0
  413. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-7760-01Z-00-DX1/TCGA-69-7760-01Z-00-DX1_001.tif +0 -0
  414. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-7760-01Z-00-DX1/TCGA-69-7760-01Z-00-DX1_001.xml +0 -0
  415. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_001.tif +0 -0
  416. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_001.xml +0 -0
  417. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_002.tif +0 -0
  418. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_002.xml +0 -0
  419. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/0214df71ae527e2144021178c453d204.tiff +0 -0
  420. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/02d302a8d723fa00331f373091b29135.tiff +0 -0
  421. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/157565e23ba28d5a42f63f34f3dd4425.tiff +0 -0
  422. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/682a1fd346b6fff340afbdb80c2f7caf.tiff +0 -0
  423. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/8582b59b41635fa38401d1bddad66707.tiff +0 -0
  424. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/8c357871e57c5c60277230412f2d9028.tiff +0 -0
  425. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/979cf5a2fa4079eaf74343d6ff5e1b51.tiff +0 -0
  426. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/9dd40c0127d217bc4917e4db40e06e94.tiff +0 -0
  427. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/9ed8ec7bf90653bc4ca86b3ca53cbb96.tiff +0 -0
  428. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/a04310d441e8d2c7a5066627baeec9b6.tiff +0 -0
  429. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/fb8886059879eaac70139336cb525838.tiff +0 -0
  430. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_with_noisy_labels.csv +0 -0
  431. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_x.h5 +0 -0
  432. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_y.h5 +0 -0
  433. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_x.h5 +0 -0
  434. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_y.h5 +0 -0
  435. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_x.h5 +0 -0
  436. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_y.h5 +0 -0
  437. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/meta.csv +0 -0
  438. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/ct.nii.gz +0 -0
  439. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/aorta_small.nii.gz +0 -0
  440. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/brain_small.nii.gz +0 -0
  441. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/colon_small.nii.gz +0 -0
  442. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/semantic_labels/masks.nii.gz +0 -0
  443. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/ct.nii.gz +0 -0
  444. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/aorta_small.nii.gz +0 -0
  445. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/brain_small.nii.gz +0 -0
  446. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/colon_small.nii.gz +0 -0
  447. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/semantic_labels/masks.nii.gz +0 -0
  448. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/ct.nii.gz +0 -0
  449. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/aorta_small.nii.gz +0 -0
  450. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/brain_small.nii.gz +0 -0
  451. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/colon_small.nii.gz +0 -0
  452. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/semantic_labels/masks.nii.gz +0 -0
  453. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/0/a.tiff +0 -0
  454. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/0/b.tiff +0 -0
  455. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/1/a.tiff +0 -0
  456. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/manifest.csv +0 -0
  457. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/conftest.py +0 -0
  458. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/__init__.py +0 -0
  459. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/conftest.py +0 -0
  460. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/writers/__init__.py +0 -0
  461. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
  462. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/writers/embeddings/test_classification.py +0 -0
  463. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/__init__.py +0 -0
  464. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/dataloaders/__init__.py +0 -0
  465. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/dataloaders/test_dataloader.py +0 -0
  466. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/__init__.py +0 -0
  467. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/_utils.py +0 -0
  468. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/test_datamodule.py +0 -0
  469. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/test_schemas.py +0 -0
  470. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/__init__.py +0 -0
  471. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/classification/__init__.py +0 -0
  472. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/classification/test_embeddings.py +0 -0
  473. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/classification/test_multi_embeddings.py +0 -0
  474. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/splitting/__init__.py +0 -0
  475. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/splitting/test_random.py +0 -0
  476. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/splitting/test_stratified.py +0 -0
  477. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/__init__.py +0 -0
  478. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/padding/__init__.py +0 -0
  479. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/padding/test_pad_2d_tensor.py +0 -0
  480. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/sampling/__init__.py +0 -0
  481. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/sampling/test_sample_from_axis.py +0 -0
  482. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/__init__.py +0 -0
  483. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/core/__init__.py +0 -0
  484. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/core/test_metric_module.py +0 -0
  485. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/core/test_schemas.py +0 -0
  486. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/__init__.py +0 -0
  487. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/classification/__init__.py +0 -0
  488. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/classification/test_binary.py +0 -0
  489. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/classification/test_multiclass.py +0 -0
  490. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/test_average_loss.py +0 -0
  491. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/metrics/test_binary_balanced_accuracy.py +0 -0
  492. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/__init__.py +0 -0
  493. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/__init__.py +0 -0
  494. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/conftest.py +0 -0
  495. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/test_head.py +0 -0
  496. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/test_inference.py +0 -0
  497. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/utils/__init__.py +0 -0
  498. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/utils/test_batch_postproces.py +0 -0
  499. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/networks/__init__.py +0 -0
  500. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/networks/test_mlp.py +0 -0
  501. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/__init__.py +0 -0
  502. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/test_from_function.py +0 -0
  503. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/test_huggingface.py +0 -0
  504. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/test_onnx.py +0 -0
  505. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/test_cli.py +0 -0
  506. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/trainers/__init__.py +0 -0
  507. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/trainers/test_recorder.py +0 -0
  508. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/utils/__init__.py +0 -0
  509. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/utils/io/__init__.py +0 -0
  510. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/utils/io/test_gz.py +0 -0
  511. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/core/utils/test_operations.py +0 -0
  512. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/__init__.py +0 -0
  513. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/__init__.py +0 -0
  514. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/__init__.py +0 -0
  515. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/__init__.py +0 -0
  516. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_bach.py +0 -0
  517. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_camelyon16.py +0 -0
  518. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_crc.py +0 -0
  519. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_mhist.py +0 -0
  520. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_panda.py +0 -0
  521. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_patch_camelyon.py +0 -0
  522. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_wsi.py +0 -0
  523. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/__init__.py +0 -0
  524. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_bcss.py +0 -0
  525. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_consep.py +0 -0
  526. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_lits.py +0 -0
  527. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_lits_balanced.py +0 -0
  528. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_monusac.py +0 -0
  529. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/test_wsi.py +0 -0
  530. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/__init__.py +0 -0
  531. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/common/__init__.py +0 -0
  532. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/common/test_resize_and_clamp.py +0 -0
  533. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/common/test_resize_and_crop.py +0 -0
  534. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/normalization/__init__.py +0 -0
  535. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/normalization/functional/__init__.py +0 -0
  536. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/normalization/functional/test_rescale_intensity.py +0 -0
  537. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/__init__.py +0 -0
  538. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/__init__.py +0 -0
  539. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
  540. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/test_foreground_grid.py +0 -0
  541. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/test_grid.py +0 -0
  542. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/test_random.py +0 -0
  543. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/test_mask.py +0 -0
  544. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/defaults/__init__.py +0 -0
  545. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
  546. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/__init__.py +0 -0
  547. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/_utils.py +0 -0
  548. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/test_generalized_dice.py +0 -0
  549. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/test_mean_iou.py +0 -0
  550. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/__init__.py +0 -0
  551. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/modules/__init__.py +0 -0
  552. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/modules/conftest.py +0 -0
  553. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/modules/test_semantic_segmentation.py +0 -0
  554. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/__init__.py +0 -0
  555. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/backbones/__init__.py +0 -0
  556. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/backbones/test_registry.py +0 -0
  557. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/__init__.py +0 -0
  558. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
  559. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/segmentation/conv.py +0 -0
  560. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/segmentation/linear.py +0 -0
  561. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/test_abmil.py +0 -0
  562. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/wrappers/__init__.py +0 -0
  563. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/wrappers/test_backbone.py +0 -0
  564. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/models/wrappers/test_from_timm.py +0 -0
  565. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/utils/__init__.py +0 -0
  566. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/utils/io/__init__.py +0 -0
  567. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/utils/io/test_image.py +0 -0
  568. {kaiko_eva-0.1.6 → kaiko_eva-0.1.7}/tests/eva/vision/utils/test_convert.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: kaiko-eva
3
- Version: 0.1.6
3
+ Version: 0.1.7
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>
@@ -227,7 +227,7 @@ Requires-Dist: onnxruntime>=1.15.1
227
227
  Requires-Dist: onnx>=1.16.0
228
228
  Requires-Dist: toolz>=0.12.1
229
229
  Requires-Dist: rich>=13.7.1
230
- Requires-Dist: torchmetrics>=1.4.2
230
+ Requires-Dist: torchmetrics>=1.6.0
231
231
  Provides-Extra: vision
232
232
  Requires-Dist: h5py>=3.10.0; extra == "vision"
233
233
  Requires-Dist: nibabel>=4.0.1; extra == "vision"
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
6
6
 
7
7
  [project]
8
8
  name = "kaiko-eva"
9
- version = "0.1.6"
9
+ version = "0.1.7"
10
10
  description = "Evaluation Framework for oncology foundation models."
11
11
  keywords = [
12
12
  "machine-learning",
@@ -45,7 +45,7 @@ dependencies = [
45
45
  "onnx>=1.16.0",
46
46
  "toolz>=0.12.1",
47
47
  "rich>=13.7.1",
48
- "torchmetrics>=1.4.2",
48
+ "torchmetrics>=1.6.0",
49
49
  ]
50
50
 
51
51
  [project.urls]
@@ -59,17 +59,20 @@ class DataLoader:
59
59
  prefetch_factor: int | None = 2
60
60
  """Number of batches loaded in advance by each worker."""
61
61
 
62
- def __call__(self, dataset: datasets.TorchDataset) -> dataloader.DataLoader:
62
+ def __call__(
63
+ self, dataset: datasets.TorchDataset, sampler: samplers.Sampler | None = None
64
+ ) -> dataloader.DataLoader:
63
65
  """Returns the dataloader on the provided dataset.
64
66
 
65
67
  Args:
66
68
  dataset: dataset from which to load the data.
69
+ sampler: defines the strategy to draw samples from the dataset.
67
70
  """
68
71
  return dataloader.DataLoader(
69
72
  dataset=dataset,
70
73
  batch_size=self.batch_size,
71
74
  shuffle=self.shuffle,
72
- sampler=self.sampler,
75
+ sampler=sampler or self.sampler,
73
76
  batch_sampler=self.batch_sampler,
74
77
  num_workers=self.num_workers or multiprocessing.cpu_count(),
75
78
  collate_fn=self.collate_fn,
@@ -8,6 +8,7 @@ from typing_extensions import override
8
8
 
9
9
  from eva.core.data import dataloaders as dataloaders_lib
10
10
  from eva.core.data import datasets as datasets_lib
11
+ from eva.core.data import samplers as samplers_lib
11
12
  from eva.core.data.datamodules import call, schemas
12
13
 
13
14
 
@@ -24,17 +25,20 @@ class DataModule(pl.LightningDataModule):
24
25
  self,
25
26
  datasets: schemas.DatasetsSchema | None = None,
26
27
  dataloaders: schemas.DataloadersSchema | None = None,
28
+ samplers: schemas.SamplersSchema | None = None,
27
29
  ) -> None:
28
30
  """Initializes the datamodule.
29
31
 
30
32
  Args:
31
33
  datasets: The desired datasets.
32
34
  dataloaders: The desired dataloaders.
35
+ samplers: The desired samplers for the dataloaders.
33
36
  """
34
37
  super().__init__()
35
38
 
36
39
  self.datasets = datasets or self.default_datasets
37
40
  self.dataloaders = dataloaders or self.default_dataloaders
41
+ self.samplers = samplers or self.default_samplers
38
42
 
39
43
  @property
40
44
  def default_datasets(self) -> schemas.DatasetsSchema:
@@ -46,6 +50,11 @@ class DataModule(pl.LightningDataModule):
46
50
  """Returns the default dataloader schema."""
47
51
  return schemas.DataloadersSchema()
48
52
 
53
+ @property
54
+ def default_samplers(self) -> schemas.SamplersSchema:
55
+ """Returns the default samplers schema."""
56
+ return schemas.SamplersSchema()
57
+
49
58
  @override
50
59
  def prepare_data(self) -> None:
51
60
  call.call_method_if_exists(self.datasets.tolist(), "prepare_data")
@@ -64,7 +73,12 @@ class DataModule(pl.LightningDataModule):
64
73
  raise ValueError(
65
74
  "Train dataloader can not be initialized as `self.datasets.train` is `None`."
66
75
  )
67
- return self.dataloaders.train(self.datasets.train)
76
+ if isinstance(self.datasets.train, list) and len(self.datasets.train) > 1:
77
+ raise ValueError("Train dataloader can not be initialized with multiple datasets.")
78
+
79
+ return self._initialize_dataloaders(
80
+ self.dataloaders.train, self.datasets.train, self.samplers.train
81
+ )[0]
68
82
 
69
83
  @override
70
84
  def val_dataloader(self) -> EVAL_DATALOADERS:
@@ -72,7 +86,9 @@ class DataModule(pl.LightningDataModule):
72
86
  raise ValueError(
73
87
  "Validation dataloader can not be initialized as `self.datasets.val` is `None`."
74
88
  )
75
- return self._initialize_dataloaders(self.dataloaders.val, self.datasets.val)
89
+ return self._initialize_dataloaders(
90
+ self.dataloaders.val, self.datasets.val, self.samplers.val
91
+ )
76
92
 
77
93
  @override
78
94
  def test_dataloader(self) -> EVAL_DATALOADERS:
@@ -80,7 +96,9 @@ class DataModule(pl.LightningDataModule):
80
96
  raise ValueError(
81
97
  "Test dataloader can not be initialized as `self.datasets.test` is `None`."
82
98
  )
83
- return self._initialize_dataloaders(self.dataloaders.test, self.datasets.test)
99
+ return self._initialize_dataloaders(
100
+ self.dataloaders.test, self.datasets.test, self.samplers.test
101
+ )
84
102
 
85
103
  @override
86
104
  def predict_dataloader(self) -> EVAL_DATALOADERS:
@@ -88,21 +106,40 @@ class DataModule(pl.LightningDataModule):
88
106
  raise ValueError(
89
107
  "Predict dataloader can not be initialized as `self.datasets.predict` is `None`."
90
108
  )
91
- return self._initialize_dataloaders(self.dataloaders.predict, self.datasets.predict)
109
+ if isinstance(self.datasets.predict, list) and len(self.datasets.predict) > 1:
110
+ # Only apply sampler to the first predict dataset (should correspond to train split)
111
+ train_dataloader = self._initialize_dataloaders(
112
+ self.dataloaders.predict, self.datasets.predict[0], self.samplers.predict
113
+ )
114
+ return train_dataloader + self._initialize_dataloaders(
115
+ self.dataloaders.predict, self.datasets.predict[1:]
116
+ )
117
+
118
+ return self._initialize_dataloaders(
119
+ self.dataloaders.predict, self.datasets.predict, self.samplers.predict
120
+ )
92
121
 
93
122
  def _initialize_dataloaders(
94
123
  self,
95
124
  dataloader: dataloaders_lib.DataLoader,
96
125
  datasets: datasets_lib.TorchDataset | List[datasets_lib.TorchDataset],
126
+ sampler: samplers_lib.Sampler | None = None,
97
127
  ) -> EVAL_DATALOADERS:
98
128
  """Initializes dataloaders from a given set of dataset.
99
129
 
100
130
  Args:
101
131
  dataloader: The dataloader to apply to the provided datasets.
102
132
  datasets: The desired dataset(s) to allocate dataloader(s).
133
+ sampler: The sampler to use for the dataloader.
103
134
 
104
135
  Returns:
105
136
  A list with the dataloaders of the provided dataset(s).
106
137
  """
107
138
  datasets = datasets if isinstance(datasets, list) else [datasets]
108
- return list(map(dataloader, datasets))
139
+
140
+ dataloaders = []
141
+ for dataset in datasets:
142
+ if sampler is not None and isinstance(sampler, samplers_lib.SamplerWithDataSource):
143
+ sampler.set_dataset(dataset) # type: ignore
144
+ dataloaders.append(dataloader(dataset, sampler=sampler))
145
+ return dataloaders
@@ -3,7 +3,7 @@
3
3
  import dataclasses
4
4
  from typing import List
5
5
 
6
- from eva.core.data import dataloaders, datasets
6
+ from eva.core.data import dataloaders, datasets, samplers
7
7
 
8
8
  TRAIN_DATASET = datasets.TorchDataset | None
9
9
  """Train dataset."""
@@ -60,3 +60,20 @@ class DataloadersSchema:
60
60
 
61
61
  predict: dataloaders.DataLoader = dataclasses.field(default_factory=dataloaders.DataLoader)
62
62
  """Predict dataloader."""
63
+
64
+
65
+ @dataclasses.dataclass(frozen=True)
66
+ class SamplersSchema:
67
+ """Samplers schema used in DataModule."""
68
+
69
+ train: samplers.Sampler | None = None
70
+ """Train sampler."""
71
+
72
+ val: samplers.Sampler | None = None
73
+ """Validation sampler."""
74
+
75
+ test: samplers.Sampler | None = None
76
+ """Test sampler."""
77
+
78
+ predict: samplers.Sampler | None = None
79
+ """Predict sampler."""
@@ -1,15 +1,18 @@
1
1
  """Datasets API."""
2
2
 
3
- from eva.core.data.datasets.base import Dataset
3
+ from eva.core.data.datasets.base import Dataset, MapDataset
4
4
  from eva.core.data.datasets.classification import (
5
5
  EmbeddingsClassificationDataset,
6
6
  MultiEmbeddingsClassificationDataset,
7
7
  )
8
8
  from eva.core.data.datasets.dataset import TorchDataset
9
+ from eva.core.data.datasets.typings import DataSample
9
10
 
10
11
  __all__ = [
11
12
  "Dataset",
13
+ "MapDataset",
12
14
  "EmbeddingsClassificationDataset",
13
15
  "MultiEmbeddingsClassificationDataset",
14
16
  "TorchDataset",
17
+ "DataSample",
15
18
  ]
@@ -1,5 +1,7 @@
1
1
  """Base dataset class."""
2
2
 
3
+ import abc
4
+
3
5
  from eva.core.data.datasets import dataset
4
6
 
5
7
 
@@ -51,3 +53,24 @@ class Dataset(dataset.TorchDataset):
51
53
  of fit (train + validate), validate, test, or predict and it will be
52
54
  called from every process (i.e. GPU) across all the nodes in DDP.
53
55
  """
56
+
57
+
58
+ class MapDataset(Dataset):
59
+ """Abstract base class for all map-style datasets."""
60
+
61
+ @abc.abstractmethod
62
+ def __getitem__(self, index: int):
63
+ """Retrieves the item at the given index.
64
+
65
+ Args:
66
+ index: Index of the item to retrieve.
67
+
68
+ Returns:
69
+ The data at the given index.
70
+ """
71
+ raise NotImplementedError
72
+
73
+ @abc.abstractmethod
74
+ def __len__(self) -> int:
75
+ """Returns the length of the dataset."""
76
+ raise NotImplementedError
@@ -0,0 +1,18 @@
1
+ """Typing definitions for the datasets module."""
2
+
3
+ from typing import Any, Dict, NamedTuple
4
+
5
+ import torch
6
+
7
+
8
+ class DataSample(NamedTuple):
9
+ """The default input batch data scheme."""
10
+
11
+ data: torch.Tensor
12
+ """The data batch."""
13
+
14
+ targets: torch.Tensor | None = None
15
+ """The target batch."""
16
+
17
+ metadata: Dict[str, Any] | None = None
18
+ """The associated metadata."""
@@ -0,0 +1,7 @@
1
+ """Data samplers API."""
2
+
3
+ from eva.core.data.samplers.classification.balanced import BalancedSampler
4
+ from eva.core.data.samplers.random import RandomSampler
5
+ from eva.core.data.samplers.sampler import Sampler, SamplerWithDataSource
6
+
7
+ __all__ = ["Sampler", "SamplerWithDataSource", "RandomSampler", "BalancedSampler"]
@@ -0,0 +1,5 @@
1
+ """Classification data samplers API."""
2
+
3
+ from eva.core.data.samplers.classification.balanced import BalancedSampler
4
+
5
+ __all__ = ["BalancedSampler"]
@@ -0,0 +1,96 @@
1
+ """Random class sampler for data loading."""
2
+
3
+ from collections import defaultdict
4
+ from typing import Dict, Iterator, List
5
+
6
+ import numpy as np
7
+ from typing_extensions import override
8
+
9
+ from eva.core.data import datasets
10
+ from eva.core.data.datasets.typings import DataSample
11
+ from eva.core.data.samplers.sampler import SamplerWithDataSource
12
+ from eva.core.utils.progress_bar import tqdm
13
+
14
+
15
+ class BalancedSampler(SamplerWithDataSource[int]):
16
+ """Balanced class sampler for data loading.
17
+
18
+ The sampler ensures that:
19
+ 1. Each class has the same number of samples
20
+ 2. Samples within each class are randomly selected
21
+ 3. Samples of different classes appear in random order
22
+ """
23
+
24
+ def __init__(self, num_samples: int, replacement: bool = False, seed: int | None = 42):
25
+ """Initializes the balanced sampler.
26
+
27
+ Args:
28
+ num_samples: The number of samples to draw per class.
29
+ replacement: samples are drawn on-demand with replacement if ``True``, default=``False``
30
+ seed: Random seed for reproducibility.
31
+ """
32
+ self._num_samples = num_samples
33
+ self._replacement = replacement
34
+ self._class_indices: Dict[int, List[int]] = defaultdict(list)
35
+ self._random_generator = np.random.default_rng(seed)
36
+
37
+ def __len__(self) -> int:
38
+ """Returns the total number of samples."""
39
+ return self._num_samples * len(self._class_indices)
40
+
41
+ def __iter__(self) -> Iterator[int]:
42
+ """Creates an iterator that yields indices in a class balanced way.
43
+
44
+ Returns:
45
+ Iterator yielding dataset indices.
46
+ """
47
+ indices = []
48
+
49
+ for class_idx in self._class_indices:
50
+ class_indices = self._class_indices[class_idx]
51
+ sampled_indices = self._random_generator.choice(
52
+ class_indices, size=self._num_samples, replace=self._replacement
53
+ ).tolist()
54
+ indices.extend(sampled_indices)
55
+
56
+ self._random_generator.shuffle(indices)
57
+
58
+ return iter(indices)
59
+
60
+ @override
61
+ def set_dataset(self, data_source: datasets.MapDataset):
62
+ """Sets the dataset and builds class indices.
63
+
64
+ Args:
65
+ data_source: The dataset to sample from.
66
+
67
+ Raises:
68
+ ValueError: If the dataset doesn't have targets or if any class has
69
+ fewer samples than `num_samples` and `replacement` is `False`.
70
+ """
71
+ super().set_dataset(data_source)
72
+ self._make_indices()
73
+
74
+ def _make_indices(self):
75
+ """Builds indices for each class in the dataset."""
76
+ self._class_indices.clear()
77
+
78
+ for idx in tqdm(
79
+ range(len(self.data_source)), desc="Fetching class indices for balanced sampler"
80
+ ):
81
+ _, target, _ = DataSample(*self.data_source[idx])
82
+ if target is None:
83
+ raise ValueError("The dataset must return non-empty targets.")
84
+ if target.numel() != 1:
85
+ raise ValueError("The dataset must return a single & scalar target.")
86
+
87
+ class_idx = int(target.item())
88
+ self._class_indices[class_idx].append(idx)
89
+
90
+ if not self._replacement:
91
+ for class_idx, indices in self._class_indices.items():
92
+ if len(indices) < self._num_samples:
93
+ raise ValueError(
94
+ f"Class {class_idx} has only {len(indices)} samples, "
95
+ f"which is less than the required {self._num_samples} samples."
96
+ )
@@ -0,0 +1,39 @@
1
+ """Random sampler for data loading."""
2
+
3
+ from typing import Optional
4
+
5
+ from torch.utils import data
6
+ from typing_extensions import override
7
+
8
+ from eva.core.data import datasets
9
+ from eva.core.data.samplers.sampler import SamplerWithDataSource
10
+
11
+
12
+ class RandomSampler(data.RandomSampler, SamplerWithDataSource[int]):
13
+ """Samples elements randomly."""
14
+
15
+ data_source: datasets.MapDataset # type: ignore
16
+
17
+ def __init__(
18
+ self, replacement: bool = False, num_samples: Optional[int] = None, generator=None
19
+ ) -> None:
20
+ """Initializes the random sampler.
21
+
22
+ Args:
23
+ data_source: dataset to sample from
24
+ replacement: samples are drawn on-demand with replacement if ``True``, default=``False``
25
+ num_samples: number of samples to draw, default=`len(dataset)`.
26
+ generator: Generator used in sampling.
27
+ """
28
+ self.replacement = replacement
29
+ self._num_samples = num_samples
30
+ self.generator = generator
31
+
32
+ @override
33
+ def set_dataset(self, data_source: datasets.MapDataset) -> None:
34
+ super().__init__(
35
+ data_source,
36
+ replacement=self.replacement,
37
+ num_samples=self.num_samples,
38
+ generator=self.generator,
39
+ )
@@ -0,0 +1,33 @@
1
+ """Core data sampler."""
2
+
3
+ from typing import Generic, TypeVar
4
+
5
+ from torch.utils import data
6
+
7
+ from eva.core.data import datasets
8
+
9
+ Sampler = data.Sampler
10
+ """Core abstract data sampler class."""
11
+
12
+ T_co = TypeVar("T_co", covariant=True)
13
+
14
+
15
+ class SamplerWithDataSource(Sampler, Generic[T_co]):
16
+ """A sampler base class that enables to specify the data source after initialization.
17
+
18
+ The `set_dataset` can also be overwritten to expand the functionality of the derived
19
+ sampler classes.
20
+ """
21
+
22
+ data_source: datasets.MapDataset
23
+
24
+ def set_dataset(self, data_source: datasets.MapDataset) -> None:
25
+ """Sets the dataset to sample from.
26
+
27
+ This is not done in the constructor because the dataset might not be
28
+ available at that time.
29
+
30
+ Args:
31
+ data_source: The dataset to sample from.
32
+ """
33
+ self.data_source = data_source
@@ -2,6 +2,8 @@
2
2
 
3
3
  from __future__ import annotations
4
4
 
5
+ from typing import List
6
+
5
7
  from torch import nn
6
8
 
7
9
  from eva.core.metrics.structs import collection, schemas
@@ -46,6 +48,7 @@ class MetricModule(nn.Module):
46
48
  test: MetricModuleType | None,
47
49
  *,
48
50
  separator: str = "/",
51
+ compute_groups: bool | List[List[str]] = True,
49
52
  ) -> MetricModule:
50
53
  """Initializes a metric module from a list of metrics.
51
54
 
@@ -55,19 +58,25 @@ class MetricModule(nn.Module):
55
58
  test: Metrics for the test stage.
56
59
  separator: The separator between the group name of the metric
57
60
  and the metric itself.
61
+ compute_groups: All metrics in a compute group share the same metric state
62
+ and are therefore only different in their compute step. To disable this
63
+ behavior, set to `False`.
58
64
  """
59
65
  return cls(
60
- train=_create_collection_from_metrics(train, prefix="train" + separator),
61
- val=_create_collection_from_metrics(val, prefix="val" + separator),
62
- test=_create_collection_from_metrics(test, prefix="test" + separator),
66
+ train=_create_collection_from_metrics(
67
+ train, prefix="train" + separator, compute_groups=compute_groups
68
+ ),
69
+ val=_create_collection_from_metrics(
70
+ val, prefix="val" + separator, compute_groups=compute_groups
71
+ ),
72
+ test=_create_collection_from_metrics(
73
+ test, prefix="test" + separator, compute_groups=compute_groups
74
+ ),
63
75
  )
64
76
 
65
77
  @classmethod
66
78
  def from_schema(
67
- cls,
68
- schema: schemas.MetricsSchema,
69
- *,
70
- separator: str = "/",
79
+ cls, schema: schemas.MetricsSchema, *, separator: str = "/", compute_groups: bool = True
71
80
  ) -> MetricModule:
72
81
  """Initializes a metric module from the metrics schema.
73
82
 
@@ -75,12 +84,16 @@ class MetricModule(nn.Module):
75
84
  schema: The dataclass metric schema.
76
85
  separator: The separator between the group name of the metric
77
86
  and the metric itself.
87
+ compute_groups: All metrics in a compute group share the same metric state
88
+ and are therefore only different in their compute step. To disable this
89
+ behavior, set to `False`.
78
90
  """
79
91
  return cls.from_metrics(
80
92
  train=schema.training_metrics,
81
93
  val=schema.evaluation_metrics,
82
94
  test=schema.evaluation_metrics,
83
95
  separator=separator,
96
+ compute_groups=compute_groups,
84
97
  )
85
98
 
86
99
  @property
@@ -100,16 +113,24 @@ class MetricModule(nn.Module):
100
113
 
101
114
 
102
115
  def _create_collection_from_metrics(
103
- metrics: MetricModuleType | None, *, prefix: str | None = None
116
+ metrics: MetricModuleType | None,
117
+ *,
118
+ prefix: str | None = None,
119
+ compute_groups: bool | List[List[str]] = True,
104
120
  ) -> collection.MetricCollection | None:
105
121
  """Create a unique collection from metrics.
106
122
 
107
123
  Args:
108
124
  metrics: The desired metrics.
109
125
  prefix: A prefix to added to the collection.
126
+ compute_groups: All metrics in a compute group share the same metric state
127
+ and are therefore only different in their compute step. To disable this
128
+ behavior, set to `False`.
110
129
 
111
130
  Returns:
112
131
  The resulted metrics collection.
113
132
  """
114
- metrics_collection = collection.MetricCollection(metrics or [], prefix=prefix) # type: ignore
133
+ metrics_collection = collection.MetricCollection(
134
+ metrics=metrics or [], prefix=prefix, compute_groups=compute_groups # type: ignore
135
+ )
115
136
  return metrics_collection.clone()
@@ -2,7 +2,13 @@
2
2
 
3
3
  from eva.core.models.modules import HeadModule, InferenceModule
4
4
  from eva.core.models.networks import MLP
5
- from eva.core.models.wrappers import BaseModel, HuggingFaceModel, ModelFromFunction, ONNXModel
5
+ from eva.core.models.wrappers import (
6
+ BaseModel,
7
+ HuggingFaceModel,
8
+ ModelFromFunction,
9
+ ONNXModel,
10
+ TorchHubModel,
11
+ )
6
12
 
7
13
  __all__ = [
8
14
  "HeadModule",
@@ -12,4 +18,5 @@ __all__ = [
12
18
  "HuggingFaceModel",
13
19
  "ModelFromFunction",
14
20
  "ONNXModel",
21
+ "TorchHubModel",
15
22
  ]
@@ -12,7 +12,7 @@ from typing_extensions import override
12
12
  from eva.core.metrics import structs as metrics_lib
13
13
  from eva.core.models.modules import module
14
14
  from eva.core.models.modules.typings import INPUT_BATCH, MODEL_TYPE
15
- from eva.core.models.modules.utils import batch_postprocess, grad
15
+ from eva.core.models.modules.utils import batch_postprocess, grad, submodule_state_dict
16
16
  from eva.core.utils import parser
17
17
 
18
18
 
@@ -32,6 +32,7 @@ class HeadModule(module.ModelModule):
32
32
  lr_scheduler: LRSchedulerCallable = lr_scheduler.ConstantLR,
33
33
  metrics: metrics_lib.MetricsSchema | None = None,
34
34
  postprocess: batch_postprocess.BatchPostProcess | None = None,
35
+ save_head_only: bool = True,
35
36
  ) -> None:
36
37
  """Initializes the neural net head module.
37
38
 
@@ -48,6 +49,8 @@ class HeadModule(module.ModelModule):
48
49
  postprocess: A list of helper functions to apply after the
49
50
  loss and before the metrics calculation to the model
50
51
  predictions and targets.
52
+ save_head_only: Whether to save only the head during checkpointing. If False,
53
+ will also save the backbone (not recommended when frozen).
51
54
  """
52
55
  super().__init__(metrics=metrics, postprocess=postprocess)
53
56
 
@@ -56,6 +59,7 @@ class HeadModule(module.ModelModule):
56
59
  self.backbone = backbone
57
60
  self.optimizer = optimizer
58
61
  self.lr_scheduler = lr_scheduler
62
+ self.save_head_only = save_head_only
59
63
 
60
64
  @override
61
65
  def configure_model(self) -> Any:
@@ -72,6 +76,20 @@ class HeadModule(module.ModelModule):
72
76
  lr_scheduler = self.lr_scheduler(optimizer)
73
77
  return {"optimizer": optimizer, "lr_scheduler": lr_scheduler}
74
78
 
79
+ @override
80
+ def on_save_checkpoint(self, checkpoint: Dict[str, Any]) -> None:
81
+ if self.save_head_only:
82
+ checkpoint["state_dict"] = submodule_state_dict(checkpoint["state_dict"], "head")
83
+ super().on_save_checkpoint(checkpoint)
84
+
85
+ @override
86
+ def on_load_checkpoint(self, checkpoint: Dict[str, Any]) -> None:
87
+ if self.save_head_only and self.backbone is not None:
88
+ checkpoint["state_dict"].update(
89
+ {f"backbone.{k}": v for k, v in self.backbone.state_dict().items()}
90
+ )
91
+ super().on_load_checkpoint(checkpoint)
92
+
75
93
  @override
76
94
  def forward(self, tensor: torch.Tensor, *args: Any, **kwargs: Any) -> torch.Tensor:
77
95
  features = tensor if self.backbone is None else self.backbone(tensor)
@@ -2,5 +2,6 @@
2
2
 
3
3
  from eva.core.models.modules.utils import grad
4
4
  from eva.core.models.modules.utils.batch_postprocess import BatchPostProcess
5
+ from eva.core.models.modules.utils.checkpoint import submodule_state_dict
5
6
 
6
- __all__ = ["grad", "BatchPostProcess"]
7
+ __all__ = ["grad", "BatchPostProcess", "submodule_state_dict"]
@@ -0,0 +1,21 @@
1
+ """Checkpointing related utilities and helper functions."""
2
+
3
+ from typing import Any, Dict
4
+
5
+
6
+ def submodule_state_dict(state_dict: Dict[str, Any], submodule_key: str) -> Dict[str, Any]:
7
+ """Get the state dict of a specific submodule.
8
+
9
+ Args:
10
+ state_dict: The state dict to extract the submodule from.
11
+ submodule_key: The key of the submodule to extract.
12
+
13
+ Returns:
14
+ The subset of the state dict corresponding to the specified submodule.
15
+ """
16
+ submodule_key = submodule_key if submodule_key.endswith(".") else submodule_key + "."
17
+ return {
18
+ module: weights
19
+ for module, weights in state_dict.items()
20
+ if module.startswith(submodule_key)
21
+ }