kaiko-eva 0.1.8__tar.gz → 0.2.1__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 (657) hide show
  1. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/PKG-INFO +3 -1
  2. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/pyproject.toml +3 -1
  3. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/base.py +7 -2
  4. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/classification/embeddings.py +2 -2
  5. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/classification/multi_embeddings.py +2 -2
  6. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/embeddings.py +4 -4
  7. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/samplers/classification/balanced.py +19 -18
  8. kaiko_eva-0.2.1/src/eva/core/loggers/utils/wandb.py +33 -0
  9. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/head.py +5 -3
  10. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/typings.py +2 -2
  11. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/transforms/__init__.py +2 -1
  12. kaiko_eva-0.2.1/src/eva/core/models/transforms/as_discrete.py +57 -0
  13. kaiko_eva-0.2.1/src/eva/core/models/wrappers/_utils.py +145 -0
  14. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/trainers/functional.py +8 -5
  15. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/trainers/trainer.py +32 -17
  16. kaiko_eva-0.2.1/src/eva/core/utils/suppress_logs.py +28 -0
  17. kaiko_eva-0.2.1/src/eva/vision/data/__init__.py +5 -0
  18. kaiko_eva-0.2.1/src/eva/vision/data/dataloaders/__init__.py +5 -0
  19. kaiko_eva-0.2.1/src/eva/vision/data/dataloaders/collate_fn/__init__.py +5 -0
  20. kaiko_eva-0.2.1/src/eva/vision/data/dataloaders/collate_fn/collection.py +22 -0
  21. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/__init__.py +10 -2
  22. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/__init__.py +9 -0
  23. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/bach.py +3 -4
  24. kaiko_eva-0.2.1/src/eva/vision/data/datasets/classification/bracs.py +111 -0
  25. kaiko_eva-0.2.1/src/eva/vision/data/datasets/classification/breakhis.py +209 -0
  26. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/camelyon16.py +4 -5
  27. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/crc.py +3 -4
  28. kaiko_eva-0.2.1/src/eva/vision/data/datasets/classification/gleason_arvaniti.py +171 -0
  29. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/mhist.py +3 -4
  30. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/panda.py +4 -5
  31. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/patch_camelyon.py +3 -4
  32. kaiko_eva-0.2.1/src/eva/vision/data/datasets/classification/unitopatho.py +158 -0
  33. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/classification/wsi.py +6 -5
  34. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/__init__.py +2 -2
  35. kaiko_eva-0.2.1/src/eva/vision/data/datasets/segmentation/_utils.py +85 -0
  36. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/bcss.py +7 -8
  37. kaiko_eva-0.2.1/src/eva/vision/data/datasets/segmentation/btcv.py +236 -0
  38. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/consep.py +6 -7
  39. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/embeddings.py +2 -2
  40. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/lits.py +9 -8
  41. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/lits_balanced.py +2 -1
  42. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/monusac.py +4 -5
  43. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/total_segmentator_2d.py +12 -10
  44. kaiko_eva-0.1.8/src/eva/vision/data/datasets/classification/base.py → kaiko_eva-0.2.1/src/eva/vision/data/datasets/vision.py +46 -25
  45. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/wsi.py +5 -5
  46. kaiko_eva-0.2.1/src/eva/vision/data/transforms/__init__.py +25 -0
  47. kaiko_eva-0.2.1/src/eva/vision/data/transforms/common/__init__.py +5 -0
  48. kaiko_eva-0.2.1/src/eva/vision/data/transforms/croppad/__init__.py +11 -0
  49. kaiko_eva-0.2.1/src/eva/vision/data/transforms/croppad/crop_foreground.py +110 -0
  50. kaiko_eva-0.2.1/src/eva/vision/data/transforms/croppad/rand_crop_by_pos_neg_label.py +109 -0
  51. kaiko_eva-0.2.1/src/eva/vision/data/transforms/croppad/spatial_pad.py +67 -0
  52. kaiko_eva-0.2.1/src/eva/vision/data/transforms/intensity/__init__.py +11 -0
  53. kaiko_eva-0.2.1/src/eva/vision/data/transforms/intensity/rand_scale_intensity.py +59 -0
  54. kaiko_eva-0.2.1/src/eva/vision/data/transforms/intensity/rand_shift_intensity.py +55 -0
  55. kaiko_eva-0.2.1/src/eva/vision/data/transforms/intensity/scale_intensity_ranged.py +56 -0
  56. kaiko_eva-0.2.1/src/eva/vision/data/transforms/spatial/__init__.py +7 -0
  57. kaiko_eva-0.2.1/src/eva/vision/data/transforms/spatial/flip.py +72 -0
  58. kaiko_eva-0.2.1/src/eva/vision/data/transforms/spatial/rotate.py +53 -0
  59. kaiko_eva-0.2.1/src/eva/vision/data/transforms/spatial/spacing.py +69 -0
  60. kaiko_eva-0.2.1/src/eva/vision/data/transforms/utility/__init__.py +5 -0
  61. kaiko_eva-0.2.1/src/eva/vision/data/transforms/utility/ensure_channel_first.py +51 -0
  62. kaiko_eva-0.2.1/src/eva/vision/data/tv_tensors/__init__.py +5 -0
  63. kaiko_eva-0.2.1/src/eva/vision/data/tv_tensors/volume.py +61 -0
  64. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/segmentation/monai_dice.py +9 -2
  65. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/modules/semantic_segmentation.py +28 -20
  66. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/__init__.py +13 -0
  67. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/__init__.py +11 -2
  68. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/pathology/bioptimus.py +80 -0
  69. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/pathology/hkust.py +69 -0
  70. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/kaiko.py +18 -0
  71. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/pathology/mahmood.py +82 -0
  72. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/radiology/__init__.py +11 -0
  73. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/radiology/swin_unetr.py +231 -0
  74. kaiko_eva-0.2.1/src/eva/vision/models/networks/backbones/radiology/voco.py +75 -0
  75. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/__init__.py +6 -2
  76. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/linear.py +5 -10
  77. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/__init__.py +8 -1
  78. kaiko_eva-0.2.1/src/eva/vision/models/networks/decoders/segmentation/semantic/swin_unetr.py +104 -0
  79. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/io/__init__.py +2 -0
  80. kaiko_eva-0.2.1/src/eva/vision/utils/io/nifti.py +169 -0
  81. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/arvaniti_gleason_patches/test_patches_750/patho_1/ZT80_38_A_1_2/ZT80_38_A_1_2_patch_18_class_1.jpg +3 -0
  82. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/arvaniti_gleason_patches/train_validation_patches_750/ZT111_4_B_4_6/ZT111_4_B_4_6_patch_12_class_1.jpg +3 -0
  83. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/arvaniti_gleason_patches/train_validation_patches_750/ZT204_6_B_7_8/ZT204_6_B_7_8_patch_3_class_2.jpg +3 -0
  84. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/arvaniti_gleason_patches/train_validation_patches_750/ZT76_39_A_1_2/ZT76_39_A_1_2_patch_00_class_0.jpg +3 -0
  85. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/test/1_PB/BRACS_264_PB_18.png +3 -0
  86. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/train/0_N/BRACS_280_N_2.png +3 -0
  87. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/train/1_PB/BRACS_281_PB_2.png +3 -0
  88. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/val/0_N/BRACS_265_N_5.png +3 -0
  89. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/val/1_PB/BRACS_265_PB_7.png +3 -0
  90. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/breakhis/BreaKHis_v1/histology_slides/breast/benign/SOB/fibroadenoma/SOB_B_F_14-9133/40X/SOB_B_F-14-9133-40-001.png +3 -0
  91. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/breakhis/BreaKHis_v1/histology_slides/breast/benign/SOB/tubular_adenoma/SOB_B_A_14-21978AB/SOB_B_TA_14-3411F/40X/SOB_B_TA-14-3411F-40-001.png +3 -0
  92. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/breakhis/BreaKHis_v1/histology_slides/breast/benign/SOB/tubular_adenoma/SOB_B_A_14-22549AB/SOB_B_TA_14-13200/40X/SOB_B_TA-14-13200-40-001.png +3 -0
  93. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/breakhis/BreaKHis_v1/histology_slides/breast/malignant/SOB/mucinous_carcinoma/SOB_M_MC_14-19979/40X/SOB_M_MC-14-19979-40-001.png +3 -0
  94. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/btcv/imagesTr/img0001.nii.gz +3 -0
  95. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/btcv/imagesTr/img0002.nii.gz +3 -0
  96. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/btcv/labelsTr/label0001.nii.gz +3 -0
  97. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/btcv/labelsTr/label0002.nii.gz +3 -0
  98. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/consep/Test/Images/test_1.png +3 -0
  99. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-31.nii +3 -0
  100. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-45.nii +3 -0
  101. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-31.nii +3 -0
  102. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-45.nii +3 -0
  103. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/ct.nii.gz +3 -0
  104. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/aorta_small.nii.gz +3 -0
  105. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/brain_small.nii.gz +3 -0
  106. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/colon_small.nii.gz +3 -0
  107. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/semantic_labels/masks.nii.gz +3 -0
  108. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/ct.nii.gz +3 -0
  109. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/aorta_small.nii.gz +3 -0
  110. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/brain_small.nii.gz +3 -0
  111. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/colon_small.nii.gz +3 -0
  112. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/semantic_labels/masks.nii.gz +3 -0
  113. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/ct.nii.gz +3 -0
  114. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/aorta_small.nii.gz +3 -0
  115. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/brain_small.nii.gz +3 -0
  116. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/colon_small.nii.gz +3 -0
  117. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/semantic_labels/masks.nii.gz +3 -0
  118. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/unitopatho/800/HP/149-B3-HP.ndpi_ROI__mpp0.44_reg000_crop_sk00003_(12824,33871,1812,1812).png +3 -0
  119. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/unitopatho/800/NORM/188-B4-NORM.ndpi_ROI__mpp0.44_reg001_crop_sk00026_(15904,10751,1812,1812).png +3 -0
  120. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/unitopatho/800/TVA.LG/243-B5-TVALG.ndpi_ROI__mpp0.44_reg002_crop_sk00033_(7688,23775,1812,1812).png +3 -0
  121. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/unitopatho/800/TVA.LG/TVA.LG CASO 2 - 2018-12-04 13.19.16.ndpi_ROI__mpp0.44_reg000_crop_sk00021_(9060,9947,1812,1812).png +3 -0
  122. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/unitopatho/800/test.csv +3 -0
  123. kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/unitopatho/800/train.csv +3 -0
  124. kaiko_eva-0.2.1/tests/eva/vision/data/datasets/classification/test_bracs.py +52 -0
  125. kaiko_eva-0.2.1/tests/eva/vision/data/datasets/classification/test_breakhis.py +45 -0
  126. kaiko_eva-0.2.1/tests/eva/vision/data/datasets/classification/test_gleason_arvaniti.py +47 -0
  127. kaiko_eva-0.2.1/tests/eva/vision/data/datasets/classification/test_unitopatho.py +45 -0
  128. kaiko_eva-0.2.1/tests/eva/vision/data/datasets/segmentation/test_btcv.py +62 -0
  129. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/test_lits.py +2 -2
  130. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/test_lits_balanced.py +2 -2
  131. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/test_total_segmentator.py +2 -2
  132. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/patching/samplers/test_foreground_grid.py +1 -0
  133. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/patching/samplers/test_random.py +1 -0
  134. kaiko_eva-0.2.1/tests/eva/vision/models/modules/test_semantic_segmentation.py +98 -0
  135. kaiko_eva-0.2.1/tests/eva/vision/models/networks/backbones/radiology/test_swin_unetr.py +55 -0
  136. kaiko_eva-0.1.8/tests/eva/vision/models/networks/decoders/segmentation/conv.py → kaiko_eva-0.2.1/tests/eva/vision/models/networks/decoders/segmentation/test_conv.py +5 -3
  137. kaiko_eva-0.1.8/tests/eva/vision/models/networks/decoders/segmentation/linear.py → kaiko_eva-0.2.1/tests/eva/vision/models/networks/decoders/segmentation/test_linear.py +5 -3
  138. kaiko_eva-0.2.1/tests/eva/vision/models/networks/decoders/segmentation/test_swin_unetr.py +32 -0
  139. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/test_vision_cli.py +8 -0
  140. kaiko_eva-0.1.8/src/eva/core/models/wrappers/_utils.py +0 -25
  141. kaiko_eva-0.1.8/src/eva/vision/data/__init__.py +0 -5
  142. kaiko_eva-0.1.8/src/eva/vision/data/datasets/segmentation/_utils.py +0 -38
  143. kaiko_eva-0.1.8/src/eva/vision/data/datasets/segmentation/base.py +0 -96
  144. kaiko_eva-0.1.8/src/eva/vision/data/datasets/vision.py +0 -26
  145. kaiko_eva-0.1.8/src/eva/vision/data/transforms/__init__.py +0 -6
  146. kaiko_eva-0.1.8/src/eva/vision/data/transforms/common/__init__.py +0 -6
  147. kaiko_eva-0.1.8/src/eva/vision/data/transforms/common/resize_and_clamp.py +0 -51
  148. kaiko_eva-0.1.8/src/eva/vision/data/transforms/normalization/__init__.py +0 -6
  149. kaiko_eva-0.1.8/src/eva/vision/data/transforms/normalization/clamp.py +0 -43
  150. kaiko_eva-0.1.8/src/eva/vision/data/transforms/normalization/functional/__init__.py +0 -5
  151. kaiko_eva-0.1.8/src/eva/vision/data/transforms/normalization/functional/rescale_intensity.py +0 -28
  152. kaiko_eva-0.1.8/src/eva/vision/data/transforms/normalization/rescale_intensity.py +0 -53
  153. kaiko_eva-0.1.8/src/eva/vision/metrics/segmentation/BUILD +0 -1
  154. kaiko_eva-0.1.8/src/eva/vision/models/networks/backbones/__init__.py +0 -6
  155. kaiko_eva-0.1.8/src/eva/vision/models/networks/backbones/pathology/bioptimus.py +0 -34
  156. kaiko_eva-0.1.8/src/eva/vision/models/networks/backbones/pathology/mahmood.py +0 -55
  157. kaiko_eva-0.1.8/src/eva/vision/models/networks/backbones/torchhub/__init__.py +0 -5
  158. kaiko_eva-0.1.8/src/eva/vision/models/networks/backbones/torchhub/backbones.py +0 -61
  159. kaiko_eva-0.1.8/src/eva/vision/utils/io/nifti.py +0 -89
  160. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-31.nii +0 -3
  161. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-45.nii +0 -3
  162. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-31.nii +0 -3
  163. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-45.nii +0 -3
  164. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/ct.nii.gz +0 -0
  165. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/aorta_small.nii.gz +0 -0
  166. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/brain_small.nii.gz +0 -0
  167. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/colon_small.nii.gz +0 -0
  168. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/semantic_labels/masks.nii.gz +0 -0
  169. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/ct.nii.gz +0 -0
  170. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/aorta_small.nii.gz +0 -0
  171. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/brain_small.nii.gz +0 -0
  172. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/colon_small.nii.gz +0 -0
  173. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/semantic_labels/masks.nii.gz +0 -0
  174. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/ct.nii.gz +0 -0
  175. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/aorta_small.nii.gz +0 -0
  176. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/brain_small.nii.gz +0 -0
  177. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/colon_small.nii.gz +0 -0
  178. kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/semantic_labels/masks.nii.gz +0 -0
  179. kaiko_eva-0.1.8/tests/eva/vision/data/transforms/common/test_resize_and_clamp.py +0 -47
  180. kaiko_eva-0.1.8/tests/eva/vision/data/transforms/normalization/__init__.py +0 -1
  181. kaiko_eva-0.1.8/tests/eva/vision/data/transforms/normalization/functional/__init__.py +0 -1
  182. kaiko_eva-0.1.8/tests/eva/vision/data/transforms/normalization/functional/test_rescale_intensity.py +0 -37
  183. kaiko_eva-0.1.8/tests/eva/vision/models/modules/test_semantic_segmentation.py +0 -58
  184. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/LICENSE +0 -0
  185. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/README.md +0 -0
  186. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/__init__.py +0 -0
  187. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/__main__.py +0 -0
  188. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/__version__.py +0 -0
  189. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/__init__.py +0 -0
  190. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/__init__.py +0 -0
  191. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/config.py +0 -0
  192. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/__init__.py +0 -0
  193. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
  194. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/embeddings/_manifest.py +0 -0
  195. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/embeddings/base.py +0 -0
  196. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/embeddings/classification.py +0 -0
  197. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/embeddings/segmentation.py +0 -0
  198. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/callbacks/writers/embeddings/typings.py +0 -0
  199. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/cli/__init__.py +0 -0
  200. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/cli/cli.py +0 -0
  201. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/cli/logo.py +0 -0
  202. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/cli/setup.py +0 -0
  203. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/__init__.py +0 -0
  204. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/dataloaders/__init__.py +0 -0
  205. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/dataloaders/dataloader.py +0 -0
  206. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datamodules/__init__.py +0 -0
  207. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datamodules/call.py +0 -0
  208. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datamodules/datamodule.py +0 -0
  209. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datamodules/schemas.py +0 -0
  210. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/__init__.py +0 -0
  211. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/classification/__init__.py +0 -0
  212. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/dataset.py +0 -0
  213. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/datasets/typings.py +0 -0
  214. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/samplers/__init__.py +0 -0
  215. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/samplers/classification/__init__.py +0 -0
  216. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/samplers/random.py +0 -0
  217. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/samplers/sampler.py +0 -0
  218. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/splitting/__init__.py +0 -0
  219. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/splitting/random.py +0 -0
  220. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/splitting/stratified.py +0 -0
  221. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/__init__.py +0 -0
  222. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/dtype/__init__.py +0 -0
  223. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/dtype/array.py +0 -0
  224. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/padding/__init__.py +0 -0
  225. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/padding/pad_2d_tensor.py +0 -0
  226. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/sampling/__init__.py +0 -0
  227. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/data/transforms/sampling/sample_from_axis.py +0 -0
  228. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/interface/__init__.py +0 -0
  229. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/interface/interface.py +0 -0
  230. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/__init__.py +0 -0
  231. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/dummy.py +0 -0
  232. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/experimental_loggers.py +0 -0
  233. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/log/__init__.py +0 -0
  234. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/log/image.py +0 -0
  235. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/log/parameters.py +0 -0
  236. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/log/utils.py +0 -0
  237. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/loggers/loggers.py +0 -0
  238. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/losses/__init__.py +0 -0
  239. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/losses/cross_entropy.py +0 -0
  240. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/__init__.py +0 -0
  241. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/average_loss.py +0 -0
  242. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/binary_balanced_accuracy.py +0 -0
  243. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/defaults/__init__.py +0 -0
  244. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/defaults/classification/__init__.py +0 -0
  245. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/defaults/classification/binary.py +0 -0
  246. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/defaults/classification/multiclass.py +0 -0
  247. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/structs/__init__.py +0 -0
  248. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/structs/collection.py +0 -0
  249. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/structs/metric.py +0 -0
  250. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/structs/module.py +0 -0
  251. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/structs/schemas.py +0 -0
  252. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/metrics/structs/typings.py +0 -0
  253. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/__init__.py +0 -0
  254. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/__init__.py +0 -0
  255. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/inference.py +0 -0
  256. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/module.py +0 -0
  257. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/utils/__init__.py +0 -0
  258. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/utils/batch_postprocess.py +0 -0
  259. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/utils/checkpoint.py +0 -0
  260. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/modules/utils/grad.py +0 -0
  261. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/networks/__init__.py +0 -0
  262. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/networks/mlp.py +0 -0
  263. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/transforms/extract_cls_features.py +0 -0
  264. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/transforms/extract_patch_features.py +0 -0
  265. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/wrappers/__init__.py +0 -0
  266. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/wrappers/base.py +0 -0
  267. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/wrappers/from_function.py +0 -0
  268. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/wrappers/from_torchhub.py +0 -0
  269. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/wrappers/huggingface.py +0 -0
  270. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/models/wrappers/onnx.py +0 -0
  271. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/trainers/__init__.py +0 -0
  272. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/trainers/_logging.py +0 -0
  273. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/trainers/_recorder.py +0 -0
  274. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/trainers/_utils.py +0 -0
  275. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/__init__.py +0 -0
  276. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/clone.py +0 -0
  277. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/io/__init__.py +0 -0
  278. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/io/dataframe.py +0 -0
  279. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/io/gz.py +0 -0
  280. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/memory.py +0 -0
  281. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/multiprocessing.py +0 -0
  282. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/operations.py +0 -0
  283. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/parser.py +0 -0
  284. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/progress_bar.py +0 -0
  285. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/core/utils/workers.py +0 -0
  286. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/__init__.py +0 -0
  287. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/callbacks/__init__.py +0 -0
  288. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/callbacks/loggers/__init__.py +0 -0
  289. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/callbacks/loggers/batch/__init__.py +0 -0
  290. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/callbacks/loggers/batch/base.py +0 -0
  291. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/callbacks/loggers/batch/segmentation.py +0 -0
  292. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/_utils.py +0 -0
  293. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/_validators.py +0 -0
  294. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/segmentation/_total_segmentator.py +0 -0
  295. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/datasets/structs.py +0 -0
  296. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/transforms/common/resize_and_crop.py +0 -0
  297. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/__init__.py +0 -0
  298. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/backends/__init__.py +0 -0
  299. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/backends/base.py +0 -0
  300. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/backends/openslide.py +0 -0
  301. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/backends/pil.py +0 -0
  302. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/backends/tiffslide.py +0 -0
  303. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/__init__.py +0 -0
  304. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/coordinates.py +0 -0
  305. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/mask.py +0 -0
  306. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
  307. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/samplers/_utils.py +0 -0
  308. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/samplers/base.py +0 -0
  309. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/samplers/foreground_grid.py +0 -0
  310. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/samplers/grid.py +0 -0
  311. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/data/wsi/patching/samplers/random.py +0 -0
  312. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/losses/__init__.py +0 -0
  313. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/losses/dice.py +0 -0
  314. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/__init__.py +0 -0
  315. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/defaults/__init__.py +0 -0
  316. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
  317. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/defaults/segmentation/multiclass.py +0 -0
  318. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/segmentation/__init__.py +0 -0
  319. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/segmentation/_utils.py +0 -0
  320. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/segmentation/dice.py +0 -0
  321. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/segmentation/generalized_dice.py +0 -0
  322. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/segmentation/mean_iou.py +0 -0
  323. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/wrappers/__init__.py +0 -0
  324. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/metrics/wrappers/monai.py +0 -0
  325. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/__init__.py +0 -0
  326. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/modules/__init__.py +0 -0
  327. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/__init__.py +0 -0
  328. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/abmil.py +0 -0
  329. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/_utils.py +0 -0
  330. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/gigapath.py +0 -0
  331. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/histai.py +0 -0
  332. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/lunit.py +0 -0
  333. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/owkin.py +0 -0
  334. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/pathology/paige.py +0 -0
  335. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/registry.py +0 -0
  336. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/timm/__init__.py +0 -0
  337. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/timm/backbones.py +0 -0
  338. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/universal/__init__.py +0 -0
  339. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/backbones/universal/vit.py +0 -0
  340. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/__init__.py +0 -0
  341. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/base.py +0 -0
  342. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/decoder2d.py +0 -0
  343. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/common.py +0 -0
  344. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/with_image.py +0 -0
  345. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/networks/decoders/segmentation/typings.py +0 -0
  346. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/wrappers/__init__.py +0 -0
  347. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/wrappers/from_registry.py +0 -0
  348. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/models/wrappers/from_timm.py +0 -0
  349. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/__init__.py +0 -0
  350. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/colormap.py +0 -0
  351. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/convert.py +0 -0
  352. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/io/_utils.py +0 -0
  353. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/io/image.py +0 -0
  354. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/io/mat.py +0 -0
  355. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/src/eva/vision/utils/io/text.py +0 -0
  356. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/__init__.py +0 -0
  357. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/__init__.py +0 -0
  358. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/_cli.py +0 -0
  359. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/archives/test.txt.gz +0 -0
  360. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_0_shape_8.pt +0 -0
  361. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_1_shape_8.pt +0 -0
  362. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_2_shape_8_list.pt +0 -0
  363. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_3_shape_8_list.pt +0 -0
  364. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_4_shape_1x8.pt +0 -0
  365. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_5_shape_1x8.pt +0 -0
  366. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
  367. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_7_shape_1x8_list.pt +0 -0
  368. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/embeddings/manifest.csv +0 -0
  369. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_0_shape_6x8.pt +0 -0
  370. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_1_shape_3x8.pt +0 -0
  371. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_2_shape_1x8.pt +0 -0
  372. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_3_shape_2x8.pt +0 -0
  373. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_4_shape_5x8.pt +0 -0
  374. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_5_shape_3x8.pt +0 -0
  375. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
  376. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_7_shape_6x8_list.pt +0 -0
  377. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_8_shape_2x8_list.pt +0 -0
  378. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_9_shape_5x8_list.pt +0 -0
  379. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/core/datasets/multi-embeddings/manifest.csv +0 -0
  380. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/images/random_bgr_32x32.png +0 -0
  381. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/images/random_grayscale_32x32.png +0 -0
  382. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b001.tif +0 -0
  383. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b002.tif +0 -0
  384. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b003.tif +0 -0
  385. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b004.tif +0 -0
  386. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b005.tif +0 -0
  387. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b006.tif +0 -0
  388. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is001.tif +0 -0
  389. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is002.tif +0 -0
  390. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is003.tif +0 -0
  391. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is004.tif +0 -0
  392. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is005.tif +0 -0
  393. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is006.tif +0 -0
  394. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv001.tif +0 -0
  395. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv002.tif +0 -0
  396. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv003.tif +0 -0
  397. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv004.tif +0 -0
  398. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv005.tif +0 -0
  399. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv006.tif +0 -0
  400. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n001.tif +0 -0
  401. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n002.tif +0 -0
  402. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n003.tif +0 -0
  403. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n004.tif +0 -0
  404. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n005.tif +0 -0
  405. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n006.tif +0 -0
  406. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
  407. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
  408. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
  409. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
  410. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
  411. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
  412. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
  413. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
  414. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
  415. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
  416. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
  417. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
  418. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
  419. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
  420. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
  421. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
  422. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
  423. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
  424. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
  425. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
  426. /kaiko_eva-0.1.8/tests/eva/assets/vision/datasets/consep/Test/Images/test_1.png → /kaiko_eva-0.2.1/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/test/0_N/BRACS_264_N_1.png +0 -0
  427. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_001.tif +0 -0
  428. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_002.tif +0 -0
  429. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/testing/reference.csv +0 -0
  430. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_001.tif +0 -0
  431. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_002.tif +0 -0
  432. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_001.tif +0 -0
  433. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_002.tif +0 -0
  434. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Test/Images/test_2.png +0 -0
  435. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Test/Images/test_3.png +0 -0
  436. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_1.mat +0 -0
  437. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_2.mat +0 -0
  438. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_3.mat +0 -0
  439. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_1.png +0 -0
  440. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_2.png +0 -0
  441. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_3.png +0 -0
  442. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_4.png +0 -0
  443. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_1.mat +0 -0
  444. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_2.mat +0 -0
  445. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_3.mat +0 -0
  446. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_4.mat +0 -0
  447. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHVHHPH.tif +0 -0
  448. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHWWQMY.tif +0 -0
  449. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYHKNMK.tif +0 -0
  450. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYMDTNW.tif +0 -0
  451. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYRSHLP.tif +0 -0
  452. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYTCTDR.tif +0 -0
  453. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYWRPGDD.tif +0 -0
  454. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYYTKMWW.tif +0 -0
  455. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYNWSAM.tif +0 -0
  456. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYRQDLW.tif +0 -0
  457. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYNVQVQ.tif +0 -0
  458. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYRWWNH.tif +0 -0
  459. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYTTIRVD.tif +0 -0
  460. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYVAFTKA.tif +0 -0
  461. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYHNSSM.tif +0 -0
  462. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYWVWFG.tif +0 -0
  463. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYSGWYW.tif +0 -0
  464. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYYQFVN.tif +0 -0
  465. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHVHHPH.tif +0 -0
  466. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHWWQMY.tif +0 -0
  467. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYHKNMK.tif +0 -0
  468. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYMDTNW.tif +0 -0
  469. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYRSHLP.tif +0 -0
  470. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYTCTDR.tif +0 -0
  471. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYWRPGDD.tif +0 -0
  472. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYYTKMWW.tif +0 -0
  473. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYNWSAM.tif +0 -0
  474. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYRQDLW.tif +0 -0
  475. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYNVQVQ.tif +0 -0
  476. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYRWWNH.tif +0 -0
  477. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYTTIRVD.tif +0 -0
  478. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYVAFTKA.tif +0 -0
  479. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYHNSSM.tif +0 -0
  480. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYWVWFG.tif +0 -0
  481. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYSGWYW.tif +0 -0
  482. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYYQFVN.tif +0 -0
  483. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHVHHPH.tif +0 -0
  484. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHWWQMY.tif +0 -0
  485. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYHKNMK.tif +0 -0
  486. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYMDTNW.tif +0 -0
  487. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYRSHLP.tif +0 -0
  488. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYTCTDR.tif +0 -0
  489. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYWRPGDD.tif +0 -0
  490. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYYTKMWW.tif +0 -0
  491. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYNWSAM.tif +0 -0
  492. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYRQDLW.tif +0 -0
  493. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYNVQVQ.tif +0 -0
  494. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYRWWNH.tif +0 -0
  495. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYTTIRVD.tif +0 -0
  496. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYVAFTKA.tif +0 -0
  497. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYHNSSM.tif +0 -0
  498. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYWVWFG.tif +0 -0
  499. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYSGWYW.tif +0 -0
  500. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYYQFVN.tif +0 -0
  501. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/annotations.csv +0 -0
  502. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaa.png +0 -0
  503. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aab.png +0 -0
  504. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aac.png +0 -0
  505. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aae.png +0 -0
  506. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaf.png +0 -0
  507. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aag.png +0 -0
  508. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aah.png +0 -0
  509. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  510. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  511. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  512. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  513. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  514. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  515. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  516. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  517. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  518. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  519. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  520. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  521. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  522. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  523. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  524. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  525. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  526. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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
  527. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/0214df71ae527e2144021178c453d204.tiff +0 -0
  528. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/02d302a8d723fa00331f373091b29135.tiff +0 -0
  529. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/157565e23ba28d5a42f63f34f3dd4425.tiff +0 -0
  530. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/682a1fd346b6fff340afbdb80c2f7caf.tiff +0 -0
  531. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/8582b59b41635fa38401d1bddad66707.tiff +0 -0
  532. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/8c357871e57c5c60277230412f2d9028.tiff +0 -0
  533. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/979cf5a2fa4079eaf74343d6ff5e1b51.tiff +0 -0
  534. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/9dd40c0127d217bc4917e4db40e06e94.tiff +0 -0
  535. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/9ed8ec7bf90653bc4ca86b3ca53cbb96.tiff +0 -0
  536. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/a04310d441e8d2c7a5066627baeec9b6.tiff +0 -0
  537. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_images/fb8886059879eaac70139336cb525838.tiff +0 -0
  538. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/panda/train_with_noisy_labels.csv +0 -0
  539. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_x.h5 +0 -0
  540. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_y.h5 +0 -0
  541. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_x.h5 +0 -0
  542. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_y.h5 +0 -0
  543. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_x.h5 +0 -0
  544. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_y.h5 +0 -0
  545. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/meta.csv +0 -0
  546. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/wsi/0/a.tiff +0 -0
  547. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/wsi/0/b.tiff +0 -0
  548. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/wsi/1/a.tiff +0 -0
  549. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/assets/vision/datasets/wsi/manifest.csv +0 -0
  550. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/conftest.py +0 -0
  551. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/callbacks/__init__.py +0 -0
  552. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/callbacks/conftest.py +0 -0
  553. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/callbacks/writers/__init__.py +0 -0
  554. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
  555. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/callbacks/writers/embeddings/test_classification.py +0 -0
  556. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/__init__.py +0 -0
  557. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/dataloaders/__init__.py +0 -0
  558. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/dataloaders/test_dataloader.py +0 -0
  559. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datamodules/__init__.py +0 -0
  560. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datamodules/_utils.py +0 -0
  561. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datamodules/test_datamodule.py +0 -0
  562. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datamodules/test_schemas.py +0 -0
  563. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datasets/__init__.py +0 -0
  564. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datasets/classification/__init__.py +0 -0
  565. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datasets/classification/test_embeddings.py +0 -0
  566. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/datasets/classification/test_multi_embeddings.py +0 -0
  567. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/samplers/__init__.py +0 -0
  568. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/samplers/_utils.py +0 -0
  569. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/samplers/classification/__init__.py +0 -0
  570. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/samplers/classification/test_balanced.py +0 -0
  571. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/splitting/__init__.py +0 -0
  572. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/splitting/test_random.py +0 -0
  573. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/splitting/test_stratified.py +0 -0
  574. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/transforms/__init__.py +0 -0
  575. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/transforms/padding/__init__.py +0 -0
  576. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/transforms/padding/test_pad_2d_tensor.py +0 -0
  577. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/transforms/sampling/__init__.py +0 -0
  578. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/data/transforms/sampling/test_sample_from_axis.py +0 -0
  579. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/__init__.py +0 -0
  580. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/core/__init__.py +0 -0
  581. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/core/test_metric_module.py +0 -0
  582. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/core/test_schemas.py +0 -0
  583. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/defaults/__init__.py +0 -0
  584. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/defaults/classification/__init__.py +0 -0
  585. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/defaults/classification/test_binary.py +0 -0
  586. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/defaults/classification/test_multiclass.py +0 -0
  587. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/test_average_loss.py +0 -0
  588. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/metrics/test_binary_balanced_accuracy.py +0 -0
  589. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/__init__.py +0 -0
  590. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/modules/__init__.py +0 -0
  591. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/modules/conftest.py +0 -0
  592. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/modules/test_head.py +0 -0
  593. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/modules/test_inference.py +0 -0
  594. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/modules/utils/__init__.py +0 -0
  595. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/modules/utils/test_batch_postproces.py +0 -0
  596. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/networks/__init__.py +0 -0
  597. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/networks/test_mlp.py +0 -0
  598. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/wrappers/__init__.py +0 -0
  599. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/wrappers/test_from_function.py +0 -0
  600. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/wrappers/test_from_torchub.py +0 -0
  601. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/wrappers/test_huggingface.py +0 -0
  602. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/models/wrappers/test_onnx.py +0 -0
  603. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/test_cli.py +0 -0
  604. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/trainers/__init__.py +0 -0
  605. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/trainers/test_recorder.py +0 -0
  606. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/utils/__init__.py +0 -0
  607. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/utils/io/__init__.py +0 -0
  608. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/utils/io/test_gz.py +0 -0
  609. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/core/utils/test_operations.py +0 -0
  610. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/__init__.py +0 -0
  611. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/__init__.py +0 -0
  612. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/__init__.py +0 -0
  613. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/__init__.py +0 -0
  614. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_bach.py +0 -0
  615. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_camelyon16.py +0 -0
  616. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_crc.py +0 -0
  617. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_mhist.py +0 -0
  618. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_panda.py +0 -0
  619. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_patch_camelyon.py +0 -0
  620. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/classification/test_wsi.py +0 -0
  621. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/__init__.py +0 -0
  622. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/test_bcss.py +0 -0
  623. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/test_consep.py +0 -0
  624. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/segmentation/test_monusac.py +0 -0
  625. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/datasets/test_wsi.py +0 -0
  626. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/transforms/__init__.py +0 -0
  627. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/transforms/common/__init__.py +0 -0
  628. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/transforms/common/test_resize_and_crop.py +0 -0
  629. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/__init__.py +0 -0
  630. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/patching/__init__.py +0 -0
  631. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
  632. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/patching/samplers/test_grid.py +0 -0
  633. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/data/wsi/patching/test_mask.py +0 -0
  634. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/defaults/__init__.py +0 -0
  635. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
  636. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/defaults/segmentation/test_multiclass.py +0 -0
  637. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/segmentation/__init__.py +0 -0
  638. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/segmentation/_utils.py +0 -0
  639. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/segmentation/test_dice.py +0 -0
  640. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/segmentation/test_generalized_dice.py +0 -0
  641. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/metrics/segmentation/test_mean_iou.py +0 -0
  642. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/__init__.py +0 -0
  643. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/modules/__init__.py +0 -0
  644. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/modules/conftest.py +0 -0
  645. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/networks/__init__.py +0 -0
  646. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/networks/backbones/__init__.py +0 -0
  647. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/networks/backbones/test_registry.py +0 -0
  648. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/networks/decoders/__init__.py +0 -0
  649. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
  650. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/networks/test_abmil.py +0 -0
  651. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/wrappers/__init__.py +0 -0
  652. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/wrappers/test_backbone.py +0 -0
  653. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/models/wrappers/test_from_timm.py +0 -0
  654. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/utils/__init__.py +0 -0
  655. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/utils/io/__init__.py +0 -0
  656. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/tests/eva/vision/utils/io/test_image.py +0 -0
  657. {kaiko_eva-0.1.8 → kaiko_eva-0.2.1}/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.8
3
+ Version: 0.2.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>
@@ -241,6 +241,7 @@ Requires-Dist: scikit-image>=0.24.0; extra == "vision"
241
241
  Requires-Dist: imagesize>=1.4.1; extra == "vision"
242
242
  Requires-Dist: scipy>=1.14.0; extra == "vision"
243
243
  Requires-Dist: monai>=1.3.2; extra == "vision"
244
+ Requires-Dist: einops>=0.8.1; extra == "vision"
244
245
  Provides-Extra: all
245
246
  Requires-Dist: h5py>=3.10.0; extra == "all"
246
247
  Requires-Dist: nibabel>=4.0.1; extra == "all"
@@ -253,6 +254,7 @@ Requires-Dist: scikit-image>=0.24.0; extra == "all"
253
254
  Requires-Dist: imagesize>=1.4.1; extra == "all"
254
255
  Requires-Dist: scipy>=1.14.0; extra == "all"
255
256
  Requires-Dist: monai>=1.3.2; extra == "all"
257
+ Requires-Dist: einops>=0.8.1; extra == "all"
256
258
  Description-Content-Type: text/markdown
257
259
 
258
260
  <div align="center">
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
6
6
 
7
7
  [project]
8
8
  name = "kaiko-eva"
9
- version = "0.1.8"
9
+ version = "0.2.1"
10
10
  description = "Evaluation Framework for oncology foundation models."
11
11
  keywords = [
12
12
  "machine-learning",
@@ -70,6 +70,7 @@ vision = [
70
70
  "imagesize>=1.4.1",
71
71
  "scipy>=1.14.0",
72
72
  "monai>=1.3.2",
73
+ "einops>=0.8.1",
73
74
  ]
74
75
  all = [
75
76
  "h5py>=3.10.0",
@@ -83,6 +84,7 @@ all = [
83
84
  "imagesize>=1.4.1",
84
85
  "scipy>=1.14.0",
85
86
  "monai>=1.3.2",
87
+ "einops>=0.8.1",
86
88
  ]
87
89
 
88
90
  [project.scripts]
@@ -1,6 +1,7 @@
1
1
  """Base dataset class."""
2
2
 
3
3
  import abc
4
+ from typing import Generic, TypeVar
4
5
 
5
6
  from eva.core.data.datasets import dataset
6
7
 
@@ -55,11 +56,15 @@ class Dataset(dataset.TorchDataset):
55
56
  """
56
57
 
57
58
 
58
- class MapDataset(Dataset):
59
+ DataSample = TypeVar("DataSample")
60
+ """The data sample type."""
61
+
62
+
63
+ class MapDataset(Dataset, abc.ABC, Generic[DataSample]):
59
64
  """Abstract base class for all map-style datasets."""
60
65
 
61
66
  @abc.abstractmethod
62
- def __getitem__(self, index: int):
67
+ def __getitem__(self, index: int) -> DataSample:
63
68
  """Retrieves the item at the given index.
64
69
 
65
70
  Args:
@@ -12,7 +12,7 @@ class EmbeddingsClassificationDataset(embeddings_base.EmbeddingsDataset[torch.Te
12
12
  """Embeddings dataset class for classification tasks."""
13
13
 
14
14
  @override
15
- def _load_embeddings(self, index: int) -> torch.Tensor:
15
+ def load_embeddings(self, index: int) -> torch.Tensor:
16
16
  filename = self.filename(index)
17
17
  embeddings_path = os.path.join(self._root, filename)
18
18
  tensor = torch.load(embeddings_path, map_location="cpu")
@@ -25,7 +25,7 @@ class EmbeddingsClassificationDataset(embeddings_base.EmbeddingsDataset[torch.Te
25
25
  return tensor.squeeze(0)
26
26
 
27
27
  @override
28
- def _load_target(self, index: int) -> torch.Tensor:
28
+ def load_target(self, index: int) -> torch.Tensor:
29
29
  target = self._data.at[index, self._column_mapping["target"]]
30
30
  return torch.tensor(target, dtype=torch.int64)
31
31
 
@@ -66,7 +66,7 @@ class MultiEmbeddingsClassificationDataset(embeddings_base.EmbeddingsDataset[tor
66
66
  self._multi_ids = list(self._data[self._column_mapping["multi_id"]].unique())
67
67
 
68
68
  @override
69
- def _load_embeddings(self, index: int) -> torch.Tensor:
69
+ def load_embeddings(self, index: int) -> torch.Tensor:
70
70
  """Loads and stacks all embedding corresponding to the `index`'th multi_id."""
71
71
  # Get all embeddings for the given index (multi_id)
72
72
  multi_id = self._multi_ids[index]
@@ -89,7 +89,7 @@ class MultiEmbeddingsClassificationDataset(embeddings_base.EmbeddingsDataset[tor
89
89
  return embeddings
90
90
 
91
91
  @override
92
- def _load_target(self, index: int) -> np.ndarray:
92
+ def load_target(self, index: int) -> np.ndarray:
93
93
  """Returns the target corresponding to the `index`'th multi_id.
94
94
 
95
95
  This method assumes that all the embeddings corresponding to the same `multi_id`
@@ -98,12 +98,12 @@ class EmbeddingsDataset(base.Dataset, Generic[TargetType]):
98
98
  Returns:
99
99
  A data sample and its target.
100
100
  """
101
- embeddings = self._load_embeddings(index)
102
- target = self._load_target(index)
101
+ embeddings = self.load_embeddings(index)
102
+ target = self.load_target(index)
103
103
  return self._apply_transforms(embeddings, target)
104
104
 
105
105
  @abc.abstractmethod
106
- def _load_embeddings(self, index: int) -> torch.Tensor:
106
+ def load_embeddings(self, index: int) -> torch.Tensor:
107
107
  """Returns the `index`'th embedding sample.
108
108
 
109
109
  Args:
@@ -114,7 +114,7 @@ class EmbeddingsDataset(base.Dataset, Generic[TargetType]):
114
114
  """
115
115
 
116
116
  @abc.abstractmethod
117
- def _load_target(self, index: int) -> TargetType:
117
+ def load_target(self, index: int) -> TargetType:
118
118
  """Returns the `index`'th target sample.
119
119
 
120
120
  Args:
@@ -4,6 +4,7 @@ from collections import defaultdict
4
4
  from typing import Dict, Iterator, List
5
5
 
6
6
  import numpy as np
7
+ from loguru import logger
7
8
  from typing_extensions import override
8
9
 
9
10
  from eva.core.data import datasets
@@ -33,6 +34,7 @@ class BalancedSampler(SamplerWithDataSource[int]):
33
34
  self._replacement = replacement
34
35
  self._class_indices: Dict[int, List[int]] = defaultdict(list)
35
36
  self._random_generator = np.random.default_rng(seed)
37
+ self._indices: List[int] = []
36
38
 
37
39
  def __len__(self) -> int:
38
40
  """Returns the total number of samples."""
@@ -44,18 +46,7 @@ class BalancedSampler(SamplerWithDataSource[int]):
44
46
  Returns:
45
47
  Iterator yielding dataset indices.
46
48
  """
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)
49
+ return iter(self._indices)
59
50
 
60
51
  @override
61
52
  def set_dataset(self, data_source: datasets.MapDataset):
@@ -72,13 +63,13 @@ class BalancedSampler(SamplerWithDataSource[int]):
72
63
  self._make_indices()
73
64
 
74
65
  def _make_indices(self):
75
- """Builds indices for each class in the dataset."""
66
+ """Samples the indices for each class in the dataset."""
76
67
  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])
68
+ for idx in tqdm(range(len(self.data_source)), desc="Fetching class indices for sampler"):
69
+ if hasattr(self.data_source, "load_target"):
70
+ target = self.data_source.load_target(idx) # type: ignore
71
+ else:
72
+ _, target, _ = DataSample(*self.data_source[idx])
82
73
  if target is None:
83
74
  raise ValueError("The dataset must return non-empty targets.")
84
75
  if target.numel() != 1:
@@ -94,3 +85,13 @@ class BalancedSampler(SamplerWithDataSource[int]):
94
85
  f"Class {class_idx} has only {len(indices)} samples, "
95
86
  f"which is less than the required {self._num_samples} samples."
96
87
  )
88
+
89
+ self._indices = []
90
+ for class_idx in self._class_indices:
91
+ class_indices = self._class_indices[class_idx]
92
+ sampled_indices = self._random_generator.choice(
93
+ class_indices, size=self._num_samples, replace=self._replacement
94
+ ).tolist()
95
+ self._indices.extend(sampled_indices)
96
+ self._random_generator.shuffle(self._indices)
97
+ logger.debug(f"Sampled indices: {self._indices}")
@@ -0,0 +1,33 @@
1
+ # type: ignore
2
+ """Utility functions for logging with Weights & Biases."""
3
+
4
+ from typing import Any, Dict
5
+
6
+ from loguru import logger
7
+
8
+
9
+ def rename_active_run(name: str) -> None:
10
+ """Renames the current run."""
11
+ import wandb
12
+
13
+ if wandb.run:
14
+ wandb.run.name = name
15
+ wandb.run.save()
16
+ else:
17
+ logger.warning("No active wandb run found that could be renamed.")
18
+
19
+
20
+ def init_run(name: str, init_kwargs: Dict[str, Any]) -> None:
21
+ """Initializes a new run. If there is an active run, it will be renamed and reused."""
22
+ import wandb
23
+
24
+ init_kwargs["name"] = name
25
+ rename_active_run(name)
26
+ wandb.init(**init_kwargs)
27
+
28
+
29
+ def finish_run() -> None:
30
+ """Finish the current run."""
31
+ import wandb
32
+
33
+ wandb.finish()
@@ -1,6 +1,6 @@
1
- """"Neural Network Head Module."""
1
+ """Neural Network Head Module."""
2
2
 
3
- from typing import Any, Callable, Dict
3
+ from typing import Any, Callable, Dict, List
4
4
 
5
5
  import torch
6
6
  from lightning.pytorch.cli import LRSchedulerCallable, OptimizerCallable
@@ -108,7 +108,9 @@ class HeadModule(module.ModelModule):
108
108
  return self._batch_step(batch)
109
109
 
110
110
  @override
111
- def predict_step(self, batch: INPUT_BATCH, *args: Any, **kwargs: Any) -> torch.Tensor:
111
+ def predict_step(
112
+ self, batch: INPUT_BATCH, *args: Any, **kwargs: Any
113
+ ) -> torch.Tensor | List[torch.Tensor]:
112
114
  tensor = INPUT_BATCH(*batch).data
113
115
  return tensor if self.backbone is None else self.backbone(tensor)
114
116
 
@@ -1,6 +1,6 @@
1
1
  """Type annotations for model modules."""
2
2
 
3
- from typing import Any, Dict, NamedTuple
3
+ from typing import Any, Dict, List, NamedTuple
4
4
 
5
5
  import lightning.pytorch as pl
6
6
  import torch
@@ -13,7 +13,7 @@ MODEL_TYPE = nn.Module | pl.LightningModule
13
13
  class INPUT_BATCH(NamedTuple):
14
14
  """The default input batch data scheme."""
15
15
 
16
- data: torch.Tensor
16
+ data: torch.Tensor | List[torch.Tensor]
17
17
  """The data batch."""
18
18
 
19
19
  targets: torch.Tensor | None = None
@@ -1,6 +1,7 @@
1
1
  """Model outputs transforms API."""
2
2
 
3
+ from eva.core.models.transforms.as_discrete import AsDiscrete
3
4
  from eva.core.models.transforms.extract_cls_features import ExtractCLSFeatures
4
5
  from eva.core.models.transforms.extract_patch_features import ExtractPatchFeatures
5
6
 
6
- __all__ = ["ExtractCLSFeatures", "ExtractPatchFeatures"]
7
+ __all__ = ["AsDiscrete", "ExtractCLSFeatures", "ExtractPatchFeatures"]
@@ -0,0 +1,57 @@
1
+ """Defines the AsDiscrete transformation."""
2
+
3
+ import torch
4
+
5
+
6
+ class AsDiscrete:
7
+ """Convert the logits tensor to discrete values."""
8
+
9
+ def __init__(
10
+ self,
11
+ argmax: bool = False,
12
+ to_onehot: int | bool | None = None,
13
+ threshold: float | None = None,
14
+ ) -> None:
15
+ """Convert the input tensor/array into discrete values.
16
+
17
+ Args:
18
+ argmax: Whether to execute argmax function on input data before transform.
19
+ to_onehot: if not None, convert input data into the one-hot format with
20
+ specified number of classes. If bool, it will try to infer the number
21
+ of classes.
22
+ threshold: If not None, threshold the float values to int number 0 or 1
23
+ with specified threshold.
24
+ """
25
+ super().__init__()
26
+
27
+ self._argmax = argmax
28
+ self._to_onehot = to_onehot
29
+ self._threshold = threshold
30
+
31
+ def __call__(self, tensor: torch.Tensor) -> torch.Tensor:
32
+ """Call method for the transformation."""
33
+ if self._argmax:
34
+ tensor = torch.argmax(tensor, dim=1, keepdim=True)
35
+
36
+ if self._to_onehot is not None:
37
+ tensor = _one_hot(tensor, num_classes=self._to_onehot, dim=1, dtype=torch.long)
38
+
39
+ if self._threshold is not None:
40
+ tensor = tensor >= self._threshold
41
+
42
+ return tensor
43
+
44
+
45
+ def _one_hot(
46
+ tensor: torch.Tensor, num_classes: int, dtype: torch.dtype = torch.float, dim: int = 1
47
+ ) -> torch.Tensor:
48
+ """Convert input tensor into one-hot format (implementation taken from MONAI)."""
49
+ shape = list(tensor.shape)
50
+ if shape[dim] != 1:
51
+ raise AssertionError(f"Input tensor must have 1 channel at dim {dim}.")
52
+
53
+ shape[dim] = num_classes
54
+ o = torch.zeros(size=shape, dtype=dtype, device=tensor.device)
55
+ tensor = o.scatter_(dim=dim, index=tensor.long(), value=1)
56
+
57
+ return tensor
@@ -0,0 +1,145 @@
1
+ """Utilities and helper functions for models."""
2
+
3
+ import hashlib
4
+ import os
5
+ import sys
6
+ from typing import Any, Dict
7
+
8
+ import torch
9
+ from fsspec.core import url_to_fs
10
+ from lightning_fabric.utilities import cloud_io
11
+ from loguru import logger
12
+ from torch import hub, nn
13
+
14
+ from eva.core.utils.progress_bar import tqdm
15
+
16
+
17
+ def load_model_weights(model: nn.Module, checkpoint_path: str) -> None:
18
+ """Loads (local or remote) weights to the model in-place.
19
+
20
+ Args:
21
+ model: The model to load the weights to.
22
+ checkpoint_path: The path to the model weights/checkpoint.
23
+ """
24
+ logger.info(f"Loading '{model.__class__.__name__}' model from checkpoint '{checkpoint_path}'")
25
+
26
+ fs = cloud_io.get_filesystem(checkpoint_path)
27
+ with fs.open(checkpoint_path, "rb") as file:
28
+ checkpoint = cloud_io._load(file, map_location="cpu") # type: ignore
29
+ if isinstance(checkpoint, dict) and "state_dict" in checkpoint:
30
+ checkpoint = checkpoint["state_dict"]
31
+
32
+ model.load_state_dict(checkpoint, strict=True)
33
+
34
+ logger.info(f"Loading weights from '{checkpoint_path}' completed successfully.")
35
+
36
+
37
+ def load_state_dict_from_url(
38
+ url: str,
39
+ *,
40
+ model_dir: str | None = None,
41
+ filename: str | None = None,
42
+ progress: bool = True,
43
+ md5: str | None = None,
44
+ force: bool = False,
45
+ ) -> Dict[str, Any]:
46
+ """Loads the Torch serialized object at the given URL.
47
+
48
+ If the object is already present and valid in `model_dir`, it's
49
+ deserialized and returned.
50
+
51
+ The default value of ``model_dir`` is ``<hub_dir>/checkpoints`` where
52
+ ``hub_dir`` is the directory returned by :func:`~torch.hub.get_dir`.
53
+
54
+ Args:
55
+ url: URL of the object to download.
56
+ model_dir: Directory in which to save the object.
57
+ filename: Name for the downloaded file. Filename from ``url`` will be used if not set.
58
+ progress: Whether or not to display a progress bar to stderr.
59
+ md5: MD5 file code to check whether the file is valid. If not, it will re-download it.
60
+ force: Whether to download the file regardless if it exists.
61
+ """
62
+ model_dir = model_dir or os.path.join(hub.get_dir(), "checkpoints")
63
+ os.makedirs(model_dir, exist_ok=True)
64
+
65
+ cached_file = os.path.join(model_dir, filename or os.path.basename(url))
66
+ if force or not os.path.exists(cached_file) or not _check_integrity(cached_file, md5):
67
+ sys.stderr.write(f"Downloading: '{url}' to {cached_file}\n")
68
+ _download_url_to_file(url, cached_file, progress=progress)
69
+ if md5 is None or not _check_integrity(cached_file, md5):
70
+ sys.stderr.write(f"File MD5: {_calculate_md5(cached_file)}\n")
71
+
72
+ return torch.load(cached_file, map_location="cpu")
73
+
74
+
75
+ def _download_url_to_file(
76
+ url: str,
77
+ dst: str,
78
+ *,
79
+ progress: bool = True,
80
+ ) -> None:
81
+ """Download object at the given URL to a local path.
82
+
83
+ Args:
84
+ url: URL of the object to download.
85
+ dst: Full path where object will be saved.
86
+ chunk_size: The size of each chunk to read in bytes.
87
+ progress: Whether or not to display a progress bar to stderr.
88
+ """
89
+ try:
90
+ _download_with_fsspec(url=url, dst=dst, progress=progress)
91
+ except Exception:
92
+ try:
93
+ hub.download_url_to_file(url=url, dst=dst, progress=progress)
94
+ except Exception as hub_e:
95
+ raise RuntimeError(
96
+ f"Failed to download file from {url} using both fsspec and hub."
97
+ ) from hub_e
98
+
99
+
100
+ def _download_with_fsspec(
101
+ url: str,
102
+ dst: str,
103
+ *,
104
+ chunk_size: int = 1024 * 1024,
105
+ progress: bool = True,
106
+ ) -> None:
107
+ """Download object at the given URL to a local path using fsspec.
108
+
109
+ Args:
110
+ url: URL of the object to download.
111
+ dst: Full path where object will be saved.
112
+ chunk_size: The size of each chunk to read in bytes.
113
+ progress: Whether or not to display a progress bar to stderr.
114
+ """
115
+ filesystem, _ = url_to_fs(url, anon=False)
116
+ total_size_bytes = filesystem.size(url)
117
+ with (
118
+ filesystem.open(url, "rb") as remote_file,
119
+ tqdm(
120
+ total=total_size_bytes,
121
+ unit="iB",
122
+ unit_scale=True,
123
+ unit_divisor=1024,
124
+ disable=not progress,
125
+ ) as pbar,
126
+ ):
127
+ with open(dst, "wb") as local_file:
128
+ while True:
129
+ data = remote_file.read(chunk_size)
130
+ if not data:
131
+ break
132
+
133
+ local_file.write(data)
134
+ pbar.update(chunk_size)
135
+
136
+
137
+ def _calculate_md5(path: str) -> str:
138
+ """Calculate the md5 hash of a file."""
139
+ with open(path, "rb") as file:
140
+ return hashlib.md5(file.read(), usedforsecurity=False).hexdigest()
141
+
142
+
143
+ def _check_integrity(path: str, md5: str | None) -> bool:
144
+ """Check if the file matches the specified md5 hash."""
145
+ return (md5 is None) or (md5 == _calculate_md5(path))
@@ -39,7 +39,7 @@ def run_evaluation_session(
39
39
  base_trainer,
40
40
  base_model,
41
41
  datamodule,
42
- run_id=f"run_{run_index}",
42
+ run_id=run_index,
43
43
  verbose=not verbose,
44
44
  )
45
45
  recorder.update(validation_scores, test_scores)
@@ -51,7 +51,7 @@ def run_evaluation(
51
51
  base_model: modules.ModelModule,
52
52
  datamodule: datamodules.DataModule,
53
53
  *,
54
- run_id: str | None = None,
54
+ run_id: int | None = None,
55
55
  verbose: bool = True,
56
56
  ) -> Tuple[_EVALUATE_OUTPUT, _EVALUATE_OUTPUT | None]:
57
57
  """Fits and evaluates a model out-of-place.
@@ -61,7 +61,6 @@ def run_evaluation(
61
61
  base_model: The model module to use but not modify.
62
62
  datamodule: The data module.
63
63
  run_id: The run id to be appended to the output log directory.
64
- If `None`, it will use the log directory of the trainer as is.
65
64
  verbose: Whether to print the validation and test metrics
66
65
  in the end of the training.
67
66
 
@@ -70,8 +69,12 @@ def run_evaluation(
70
69
  """
71
70
  trainer, model = _utils.clone(base_trainer, base_model)
72
71
  model.configure_model()
73
- trainer.setup_log_dirs(run_id or "")
74
- return fit_and_validate(trainer, model, datamodule, verbose=verbose)
72
+
73
+ trainer.init_logger_run(run_id)
74
+ results = fit_and_validate(trainer, model, datamodule, verbose=verbose)
75
+ trainer.finish_logger_run(run_id)
76
+
77
+ return results
75
78
 
76
79
 
77
80
  def fit_and_validate(
@@ -12,6 +12,7 @@ from typing_extensions import override
12
12
 
13
13
  from eva.core import loggers as eva_loggers
14
14
  from eva.core.data import datamodules
15
+ from eva.core.loggers.utils import wandb as wandb_utils
15
16
  from eva.core.models import modules
16
17
  from eva.core.trainers import _logging, functional
17
18
 
@@ -53,7 +54,7 @@ class Trainer(pl_trainer.Trainer):
53
54
  self._session_id: str = _logging.generate_session_id()
54
55
  self._log_dir: str = self.default_log_dir
55
56
 
56
- self.setup_log_dirs()
57
+ self.init_logger_run(0)
57
58
 
58
59
  @property
59
60
  def default_log_dir(self) -> str:
@@ -65,31 +66,45 @@ class Trainer(pl_trainer.Trainer):
65
66
  def log_dir(self) -> str | None:
66
67
  return self.strategy.broadcast(self._log_dir)
67
68
 
68
- def setup_log_dirs(self, subdirectory: str = "") -> None:
69
- """Setups the logging directory of the trainer and experimental loggers in-place.
69
+ def init_logger_run(self, run_id: int | None) -> None:
70
+ """Setup the loggers & log directories when starting a new run.
70
71
 
71
72
  Args:
72
- subdirectory: Whether to append a subdirectory to the output log.
73
+ run_id: The id of the current run.
73
74
  """
75
+ subdirectory = f"run_{run_id}" if run_id is not None else ""
74
76
  self._log_dir = os.path.join(self.default_root_dir, self._session_id, subdirectory)
75
77
 
76
78
  enabled_loggers = []
77
- if isinstance(self.loggers, list) and len(self.loggers) > 0:
78
- for logger in self.loggers:
79
- if isinstance(logger, (pl_loggers.CSVLogger, pl_loggers.TensorBoardLogger)):
80
- if not cloud_io._is_local_file_protocol(self.default_root_dir):
81
- loguru.logger.warning(
82
- f"Skipped {type(logger).__name__} as remote storage is not supported."
83
- )
84
- continue
85
- else:
86
- logger._root_dir = self.default_root_dir
87
- logger._name = self._session_id
88
- logger._version = subdirectory
89
- enabled_loggers.append(logger)
79
+ for logger in self.loggers or []:
80
+ if isinstance(logger, (pl_loggers.CSVLogger, pl_loggers.TensorBoardLogger)):
81
+ if not cloud_io._is_local_file_protocol(self.default_root_dir):
82
+ loguru.logger.warning(
83
+ f"Skipped {type(logger).__name__} as remote storage is not supported."
84
+ )
85
+ continue
86
+ else:
87
+ logger._root_dir = self.default_root_dir
88
+ logger._name = self._session_id
89
+ logger._version = subdirectory
90
+ elif isinstance(logger, pl_loggers.WandbLogger):
91
+ task_name = self.default_root_dir.split("/")[-1]
92
+ run_name = os.getenv("WANDB_RUN_NAME", f"{task_name}_{self._session_id}")
93
+ wandb_utils.init_run(f"{run_name}_{run_id}", logger._wandb_init)
94
+ enabled_loggers.append(logger)
90
95
 
91
96
  self._loggers = enabled_loggers or [eva_loggers.DummyLogger(self._log_dir)]
92
97
 
98
+ def finish_logger_run(self, run_id: int | None) -> None:
99
+ """Finish the current run in the enabled loggers.
100
+
101
+ Args:
102
+ run_id: The id of the current run.
103
+ """
104
+ for logger in self.loggers or []:
105
+ if isinstance(logger, pl_loggers.WandbLogger):
106
+ wandb_utils.finish_run()
107
+
93
108
  def run_evaluation_session(
94
109
  self,
95
110
  model: modules.ModelModule,
@@ -0,0 +1,28 @@
1
+ """Context manager to temporarily suppress all logging outputs."""
2
+
3
+ import logging
4
+ import sys
5
+ from types import TracebackType
6
+ from typing import Type
7
+
8
+
9
+ class SuppressLogs:
10
+ """Context manager to suppress all logs but print exceptions if they occur."""
11
+
12
+ def __enter__(self) -> None:
13
+ """Temporarily increase log level to suppress all logs."""
14
+ self._logger = logging.getLogger()
15
+ self._previous_level = self._logger.level
16
+ self._logger.setLevel(logging.CRITICAL + 1)
17
+
18
+ def __exit__(
19
+ self,
20
+ exc_type: Type[BaseException] | None,
21
+ exc_value: BaseException | None,
22
+ traceback: TracebackType | None,
23
+ ) -> bool:
24
+ """Restores the previous logging level and print exceptions."""
25
+ self._logger.setLevel(self._previous_level)
26
+ if exc_value:
27
+ print(f"Error: {exc_value}", file=sys.stderr)
28
+ return False
@@ -0,0 +1,5 @@
1
+ """Vision data API."""
2
+
3
+ from eva.vision.data import datasets, transforms, tv_tensors
4
+
5
+ __all__ = ["datasets", "transforms", "tv_tensors"]
@@ -0,0 +1,5 @@
1
+ """Dataloader related utilities and functions."""
2
+
3
+ from eva.vision.data.dataloaders import collate_fn
4
+
5
+ __all__ = ["collate_fn"]
@@ -0,0 +1,5 @@
1
+ """Dataloader collate API."""
2
+
3
+ from eva.vision.data.dataloaders.collate_fn.collection import collection_collate
4
+
5
+ __all__ = ["collection_collate"]