kaiko-eva 0.3.3__tar.gz → 0.4.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.
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/PKG-INFO +17 -3
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/README.md +11 -2
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/pyproject.toml +7 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/config.py +15 -6
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/embeddings/base.py +44 -10
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/cli/setup.py +1 -1
- kaiko_eva-0.4.1/src/eva/core/data/dataloaders/__init__.py +5 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/samplers/classification/balanced.py +24 -12
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/samplers/random.py +17 -10
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/interface/interface.py +21 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/utils/wandb.py +4 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/module.py +2 -2
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/base.py +2 -2
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/from_function.py +3 -3
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/from_torchhub.py +9 -7
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/huggingface.py +4 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/onnx.py +5 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/trainers/trainer.py +13 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/__init__.py +2 -1
- kaiko_eva-0.4.1/src/eva/core/utils/distributed.py +12 -0
- kaiko_eva-0.4.1/src/eva/core/utils/paths.py +14 -0
- kaiko_eva-0.4.1/src/eva/core/utils/requirements.py +72 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/__init__.py +2 -1
- kaiko_eva-0.4.1/src/eva/language/callbacks/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/callbacks/writers/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/callbacks/writers/prediction.py +201 -0
- kaiko_eva-0.4.1/src/eva/language/data/dataloaders/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/data/dataloaders/collate_fn/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/data/dataloaders/collate_fn/text.py +57 -0
- kaiko_eva-0.4.1/src/eva/language/data/datasets/__init__.py +11 -0
- kaiko_eva-0.3.3/src/eva/language/data/datasets/language.py → kaiko_eva-0.4.1/src/eva/language/data/datasets/base.py +1 -1
- kaiko_eva-0.4.1/src/eva/language/data/datasets/classification/base.py +23 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/data/datasets/classification/pubmedqa.py +36 -4
- kaiko_eva-0.4.1/src/eva/language/data/datasets/prediction.py +151 -0
- kaiko_eva-0.4.1/src/eva/language/data/datasets/schemas.py +18 -0
- kaiko_eva-0.4.1/src/eva/language/data/datasets/text.py +92 -0
- kaiko_eva-0.4.1/src/eva/language/data/datasets/typings.py +39 -0
- kaiko_eva-0.4.1/src/eva/language/data/messages.py +60 -0
- kaiko_eva-0.4.1/src/eva/language/models/__init__.py +29 -0
- kaiko_eva-0.4.1/src/eva/language/models/modules/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/models/modules/language.py +94 -0
- kaiko_eva-0.4.1/src/eva/language/models/networks/__init__.py +12 -0
- kaiko_eva-0.4.1/src/eva/language/models/networks/alibaba.py +26 -0
- kaiko_eva-0.4.1/src/eva/language/models/networks/api/__init__.py +11 -0
- kaiko_eva-0.4.1/src/eva/language/models/networks/api/anthropic.py +34 -0
- kaiko_eva-0.4.1/src/eva/language/models/networks/registry.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/models/typings.py +56 -0
- kaiko_eva-0.4.1/src/eva/language/models/wrappers/__init__.py +19 -0
- kaiko_eva-0.4.1/src/eva/language/models/wrappers/base.py +47 -0
- kaiko_eva-0.4.1/src/eva/language/models/wrappers/from_registry.py +54 -0
- kaiko_eva-0.4.1/src/eva/language/models/wrappers/huggingface.py +115 -0
- kaiko_eva-0.4.1/src/eva/language/models/wrappers/litellm.py +122 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/models/wrappers/vllm.py +37 -13
- kaiko_eva-0.4.1/src/eva/language/utils/__init__.py +6 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/utils/str_to_int_tensor.py +20 -12
- kaiko_eva-0.4.1/src/eva/language/utils/text/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/language/utils/text/messages.py +113 -0
- kaiko_eva-0.4.1/src/eva/multimodal/__init__.py +6 -0
- kaiko_eva-0.4.1/src/eva/multimodal/callbacks/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/callbacks/writers/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/callbacks/writers/prediction.py +39 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/dataloaders/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/dataloaders/collate_fn/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/dataloaders/collate_fn/text_image.py +28 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/__init__.py +6 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/base.py +13 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/multiple_choice/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/multiple_choice/patch_camelyon.py +80 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/schemas.py +14 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/text_image.py +77 -0
- kaiko_eva-0.4.1/src/eva/multimodal/data/datasets/typings.py +27 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/__init__.py +8 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/modules/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/modules/vision_language.py +56 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/networks/__init__.py +14 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/networks/alibaba.py +40 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/networks/api/__init__.py +11 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/networks/api/anthropic.py +34 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/networks/others.py +48 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/networks/registry.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/typings.py +27 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/wrappers/__init__.py +13 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/wrappers/base.py +48 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/wrappers/from_registry.py +54 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/wrappers/huggingface.py +193 -0
- kaiko_eva-0.4.1/src/eva/multimodal/models/wrappers/litellm.py +58 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/__init__.py +1 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/batch/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/batch/unpack.py +11 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/image/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/image/encode.py +28 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/text/__init__.py +1 -0
- kaiko_eva-0.4.1/src/eva/multimodal/utils/text/messages.py +79 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/breakhis.py +5 -8
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/panda.py +12 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/patch_camelyon.py +8 -6
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/btcv.py +1 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/consep.py +1 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/lits17.py +1 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/monusac.py +15 -6
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/msd_task7_pancreas.py +1 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/__init__.py +2 -1
- kaiko_eva-0.4.1/src/eva/vision/data/transforms/base/__init__.py +6 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/base/monai.py +2 -2
- kaiko_eva-0.4.1/src/eva/vision/data/transforms/base/torchvision.py +33 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/common/squeeze.py +6 -3
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/croppad/crop_foreground.py +8 -7
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/croppad/rand_crop_by_label_classes.py +6 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/croppad/rand_crop_by_pos_neg_label.py +6 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/croppad/rand_spatial_crop.py +8 -7
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/croppad/spatial_pad.py +6 -6
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/intensity/rand_scale_intensity.py +3 -3
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/intensity/rand_shift_intensity.py +3 -3
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/intensity/scale_intensity_ranged.py +5 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/spatial/__init__.py +2 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/spatial/flip.py +8 -7
- kaiko_eva-0.4.1/src/eva/vision/data/transforms/spatial/functional/__init__.py +5 -0
- kaiko_eva-0.4.1/src/eva/vision/data/transforms/spatial/functional/resize.py +26 -0
- kaiko_eva-0.4.1/src/eva/vision/data/transforms/spatial/resize.py +63 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/spatial/rotate.py +8 -7
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/spatial/spacing.py +7 -6
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/utility/ensure_channel_first.py +6 -6
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/universal/vit.py +24 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/wrappers/from_registry.py +6 -5
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/wrappers/from_timm.py +6 -4
- kaiko_eva-0.4.1/tests/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/assets/language/predictions/pubmedqa.csv +3 -0
- kaiko_eva-0.4.1/tests/eva/assets/language/predictions/pubmedqa.jsonl +3 -0
- kaiko_eva-0.4.1/tests/eva/assets/language/predictions/pubmedqa.parquet +3 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/test_cli.py +1 -1
- kaiko_eva-0.4.1/tests/eva/core/utils/test_requirements.py +131 -0
- kaiko_eva-0.4.1/tests/eva/language/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/language/callbacks/writers/test_prediction.py +243 -0
- kaiko_eva-0.4.1/tests/eva/language/data/dataloaders/collate_fn/test_text.py +182 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/data/datasets/classification/test_pubmedqa.py +7 -4
- kaiko_eva-0.4.1/tests/eva/language/data/datasets/test_prediction.py +174 -0
- kaiko_eva-0.4.1/tests/eva/language/data/datasets/test_text.py +80 -0
- kaiko_eva-0.4.1/tests/eva/language/models/modules/test_language.py +72 -0
- kaiko_eva-0.4.1/tests/eva/language/models/wrappers/test_from_registry.py +28 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/models/wrappers/test_huggingface.py +15 -8
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/models/wrappers/test_litellm.py +9 -7
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/models/wrappers/test_vllm.py +8 -8
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/test_language_cli.py +40 -3
- kaiko_eva-0.4.1/tests/eva/language/utils/test_messages.py +241 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/utils/test_str_to_int_tensor.py +13 -5
- kaiko_eva-0.4.1/tests/eva/multimodal/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/dataloaders/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/dataloaders/collate_fn/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/dataloaders/collate_fn/test_text_image.py +88 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/multiple_choice/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/multiple_choice/test_patch_camelyon.py +104 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/test_base.py +31 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/test_dataset_typings.py +50 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/test_schemas.py +48 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/data/datasets/test_text_image.py +90 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/modules/test_vision_language.py +123 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/test_typings.py +36 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/wrappers/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/wrappers/test_base.py +46 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/wrappers/test_from_registry.py +28 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/wrappers/test_huggingface.py +133 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/models/wrappers/test_litellm.py +89 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/test_multimodal_cli.py +120 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/utils/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/utils/image/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/utils/image/test_encode.py +38 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/utils/text/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/multimodal/utils/text/test_messages.py +65 -0
- kaiko_eva-0.4.1/tests/eva/vision/__init__.py +1 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_panda.py +19 -13
- kaiko_eva-0.4.1/tests/eva/vision/data/transforms/croppad/__init__.py +1 -0
- kaiko_eva-0.4.1/tests/eva/vision/data/transforms/croppad/test_rand_crop_by_label_classes.py +77 -0
- kaiko_eva-0.4.1/tests/eva/vision/data/transforms/spatial/test_resize.py +58 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/test_vision_cli.py +14 -0
- kaiko_eva-0.3.3/src/eva/core/data/dataloaders/__init__.py +0 -6
- kaiko_eva-0.3.3/src/eva/core/data/dataloaders/collate_fn/__init__.py +0 -5
- kaiko_eva-0.3.3/src/eva/core/data/dataloaders/collate_fn/collate.py +0 -24
- kaiko_eva-0.3.3/src/eva/core/utils/requirements.py +0 -26
- kaiko_eva-0.3.3/src/eva/language/data/datasets/__init__.py +0 -9
- kaiko_eva-0.3.3/src/eva/language/data/datasets/classification/base.py +0 -63
- kaiko_eva-0.3.3/src/eva/language/models/__init__.py +0 -25
- kaiko_eva-0.3.3/src/eva/language/models/modules/__init__.py +0 -5
- kaiko_eva-0.3.3/src/eva/language/models/modules/text.py +0 -85
- kaiko_eva-0.3.3/src/eva/language/models/wrappers/__init__.py +0 -11
- kaiko_eva-0.3.3/src/eva/language/models/wrappers/huggingface.py +0 -69
- kaiko_eva-0.3.3/src/eva/language/models/wrappers/litellm.py +0 -77
- kaiko_eva-0.3.3/src/eva/language/utils/__init__.py +0 -5
- kaiko_eva-0.3.3/src/eva/vision/data/transforms/base/__init__.py +0 -5
- kaiko_eva-0.3.3/tests/__init__.py +0 -1
- kaiko_eva-0.3.3/tests/eva/language/__init__.py +0 -1
- kaiko_eva-0.3.3/tests/eva/language/models/modules/test_text.py +0 -69
- kaiko_eva-0.3.3/tests/eva/vision/__init__.py +0 -1
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/LICENSE +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/__main__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/__version__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/embeddings/_manifest.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/embeddings/classification.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/embeddings/segmentation.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/callbacks/writers/embeddings/typings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/cli/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/cli/cli.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/cli/logo.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/dataloaders/dataloader.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datamodules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datamodules/call.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datamodules/datamodule.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datamodules/schemas.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/base.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/classification/embeddings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/classification/multi_embeddings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/dataset.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/embeddings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/datasets/typings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/samplers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/samplers/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/samplers/sampler.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/splitting/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/splitting/random.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/splitting/stratified.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/dtype/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/dtype/array.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/padding/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/padding/pad_2d_tensor.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/sampling/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/data/transforms/sampling/sample_from_axis.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/interface/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/dummy.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/experimental_loggers.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/log/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/log/image.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/log/parameters.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/log/table.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/log/utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/loggers/loggers.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/losses/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/losses/cross_entropy.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/average_loss.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/binary_balanced_accuracy.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/defaults/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/defaults/classification/binary.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/defaults/classification/multiclass.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/structs/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/structs/collection.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/structs/metric.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/structs/module.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/structs/schemas.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/metrics/structs/typings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/head.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/inference.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/scheduler.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/typings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/utils/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/utils/batch_postprocess.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/utils/checkpoint.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/modules/utils/grad.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/networks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/networks/mlp.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/transforms/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/transforms/as_discrete.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/transforms/extract_cls_features.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/transforms/extract_patch_features.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/models/wrappers/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/trainers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/trainers/_logging.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/trainers/_recorder.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/trainers/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/trainers/functional.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/clone.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/factory.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/io/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/io/dataframe.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/io/gz.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/memory.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/multiprocessing.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/operations.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/parser.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/progress_bar.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/registry.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/suppress_logs.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/core/utils/workers.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/data/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/language/models/modules/typings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/callbacks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/callbacks/loggers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/callbacks/loggers/batch/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/callbacks/loggers/batch/base.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/callbacks/loggers/batch/segmentation.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/dataloaders/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/dataloaders/collate_fn/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/dataloaders/collate_fn/collection.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/dataloaders/worker_init.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/_validators.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/bach.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/bracs.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/camelyon16.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/crc.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/gleason_arvaniti.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/mhist.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/unitopatho.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/classification/wsi.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/bcss.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/embeddings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/metadata/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/segmentation/metadata/_msd_task7_pancreas.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/structs.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/vision.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/datasets/wsi.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/common/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/common/resize_and_crop.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/croppad/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/intensity/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/transforms/utility/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/tv_tensors/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/tv_tensors/volume.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/backends/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/backends/base.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/backends/openslide.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/backends/pil.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/backends/tiffslide.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/coordinates.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/mask.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/samplers/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/samplers/base.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/samplers/foreground_grid.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/samplers/grid.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/data/wsi/patching/samplers/random.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/losses/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/losses/dice.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/defaults/segmentation/multiclass.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/segmentation/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/segmentation/dice.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/segmentation/generalized_dice.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/segmentation/mean_iou.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/segmentation/monai_dice.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/wrappers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/metrics/wrappers/monai.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/modules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/modules/semantic_segmentation.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/abmil.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/bioptimus.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/gigapath.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/histai.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/hkust.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/kaiko.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/lunit.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/mahmood.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/owkin.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/pathology/paige.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/radiology/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/radiology/swin_unetr.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/radiology/voco.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/registry.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/timm/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/timm/backbones.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/backbones/universal/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/base.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/decoder2d.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/linear.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/common.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/swin_unetr.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/semantic/with_image.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/networks/decoders/segmentation/typings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/colormap.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/convert.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/io/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/io/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/io/image.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/io/mat.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/io/nifti.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/src/eva/vision/utils/io/text.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/_cli.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/archives/test.txt.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_0_shape_8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_1_shape_8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_2_shape_8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_3_shape_8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_4_shape_1x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_5_shape_1x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_7_shape_1x8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/embeddings/manifest.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_0_shape_6x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_1_shape_3x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_2_shape_1x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_3_shape_2x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_4_shape_5x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_5_shape_3x8.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_7_shape_6x8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_8_shape_2x8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_9_shape_5x8_list.pt +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/core/datasets/multi-embeddings/manifest.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/images/random_bgr_32x32.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/images/random_grayscale_32x32.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b003.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b004.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b005.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b006.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is003.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is004.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is005.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is006.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv003.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv004.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv005.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv006.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n003.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n004.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n005.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n006.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/test/0_N/BRACS_264_N_1.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/test/1_PB/BRACS_264_PB_18.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/train/0_N/BRACS_280_N_2.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/train/1_PB/BRACS_281_PB_2.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/val/0_N/BRACS_265_N_5.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/bracs/BRACS_RoI/latest_version/val/1_PB/BRACS_265_PB_7.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/btcv/imagesTr/img0001.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/btcv/imagesTr/img0002.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/btcv/labelsTr/label0001.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/btcv/labelsTr/label0002.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/testing/reference.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_001.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_002.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Test/Images/test_1.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Test/Images/test_2.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Test/Images/test_3.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_1.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_2.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_3.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_1.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_2.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_3.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Images/train_4.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_1.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_2.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_3.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_4.mat +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHVHHPH.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHWWQMY.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYHKNMK.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYMDTNW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYRSHLP.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYTCTDR.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYWRPGDD.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYYTKMWW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYNWSAM.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYRQDLW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYNVQVQ.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYRWWNH.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYTTIRVD.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYVAFTKA.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYHNSSM.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYWVWFG.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYSGWYW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYYQFVN.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHVHHPH.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHWWQMY.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYHKNMK.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYMDTNW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYRSHLP.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYTCTDR.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYWRPGDD.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYYTKMWW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYNWSAM.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYRQDLW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYNVQVQ.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYRWWNH.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYTTIRVD.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYVAFTKA.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYHNSSM.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYWVWFG.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYSGWYW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYYQFVN.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHVHHPH.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHWWQMY.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYHKNMK.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYMDTNW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYRSHLP.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYTCTDR.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYWRPGDD.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYYTKMWW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYNWSAM.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYRQDLW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYNVQVQ.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYRWWNH.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYTTIRVD.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYVAFTKA.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYHNSSM.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYWVWFG.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYSGWYW.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYYQFVN.tif +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/lits17/Training_Batch2/segmentation-31.nii +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/lits17/Training_Batch2/segmentation-45.nii +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/lits17/Training_Batch2/volume-31.nii +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/lits17/Training_Batch2/volume-45.nii +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/annotations.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaa.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aab.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aac.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aae.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaf.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aag.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aah.png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/msd_task7_pancreas/imagesTr/pancreas_001_0000.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/msd_task7_pancreas/imagesTr/pancreas_006_0000.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/msd_task7_pancreas/labelsTr/pancreas_001.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/msd_task7_pancreas/labelsTr/pancreas_006.nii.gz +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/0214df71ae527e2144021178c453d204.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/02d302a8d723fa00331f373091b29135.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/157565e23ba28d5a42f63f34f3dd4425.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/682a1fd346b6fff340afbdb80c2f7caf.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/8582b59b41635fa38401d1bddad66707.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/8c357871e57c5c60277230412f2d9028.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/979cf5a2fa4079eaf74343d6ff5e1b51.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/9dd40c0127d217bc4917e4db40e06e94.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/9ed8ec7bf90653bc4ca86b3ca53cbb96.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/a04310d441e8d2c7a5066627baeec9b6.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_images/fb8886059879eaac70139336cb525838.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/panda/train_with_noisy_labels.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_x.h5 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_y.h5 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_x.h5 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_y.h5 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_x.h5 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_y.h5 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/unitopatho/800/HP/149-B3-HP.ndpi_ROI__mpp0.44_reg000_crop_sk00003_(12824,33871,1812,1812).png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/unitopatho/800/NORM/188-B4-NORM.ndpi_ROI__mpp0.44_reg001_crop_sk00026_(15904,10751,1812,1812).png +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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 +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/unitopatho/800/test.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/unitopatho/800/train.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/wsi/0/a.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/wsi/0/b.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/wsi/1/a.tiff +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/assets/vision/datasets/wsi/manifest.csv +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/conftest.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/callbacks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/callbacks/conftest.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/callbacks/writers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/callbacks/writers/embeddings/test_classification.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/dataloaders/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/dataloaders/test_dataloader.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datamodules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datamodules/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datamodules/test_datamodule.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datamodules/test_schemas.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datasets/classification/test_embeddings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/datasets/classification/test_multi_embeddings.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/samplers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/samplers/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/samplers/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/samplers/classification/test_balanced.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/splitting/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/splitting/test_random.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/splitting/test_stratified.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/transforms/padding/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/transforms/padding/test_pad_2d_tensor.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/transforms/sampling/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/data/transforms/sampling/test_sample_from_axis.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/core/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/core/test_metric_module.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/core/test_schemas.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/defaults/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/defaults/classification/test_binary.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/defaults/classification/test_multiclass.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/test_average_loss.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/metrics/test_binary_balanced_accuracy.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/modules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/modules/conftest.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/modules/test_head.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/modules/test_inference.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/modules/utils/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/modules/utils/test_batch_postproces.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/networks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/networks/test_mlp.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/wrappers/test_from_function.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/wrappers/test_from_torchub.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/wrappers/test_huggingface.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/models/wrappers/test_onnx.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/trainers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/trainers/test_recorder.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/utils/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/utils/io/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/utils/io/test_gz.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/utils/test_factory.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/core/utils/test_operations.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/data/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/models/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/models/modules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/language/utils/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_bach.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_bracs.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_breakhis.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_camelyon16.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_crc.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_gleason_arvaniti.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_mhist.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_patch_camelyon.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_unitopatho.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/classification/test_wsi.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/test_bcss.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/test_btcv.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/test_consep.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/test_lits17.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/test_monusac.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/segmentation/test_msd_task7_pancreas.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/datasets/test_wsi.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/transforms/common/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/transforms/common/test_resize_and_crop.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/patching/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/patching/samplers/test_foreground_grid.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/patching/samplers/test_grid.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/patching/samplers/test_random.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/data/wsi/patching/test_mask.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/defaults/segmentation/test_multiclass.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/segmentation/_utils.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/segmentation/test_dice.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/segmentation/test_generalized_dice.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/metrics/segmentation/test_mean_iou.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/modules/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/modules/conftest.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/modules/test_semantic_segmentation.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/backbones/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/backbones/radiology/test_swin_unetr.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/backbones/test_registry.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/decoders/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/decoders/segmentation/test_conv.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/decoders/segmentation/test_linear.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/decoders/segmentation/test_swin_unetr.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/networks/test_abmil.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/wrappers/test_backbone.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/models/wrappers/test_from_timm.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/utils/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/utils/io/__init__.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.1}/tests/eva/vision/utils/io/test_image.py +0 -0
- {kaiko_eva-0.3.3 → kaiko_eva-0.4.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.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Evaluation Framework for oncology foundation models.
|
|
5
5
|
Keywords: machine-learning,evaluation-framework,oncology,foundation-models
|
|
6
6
|
Author-Email: Ioannis Gatopoulos <ioannis@kaiko.ai>, =?utf-8?q?Nicolas_K=C3=A4nzig?= <nicolas@kaiko.ai>, Roman Moser <roman@kaiko.ai>
|
|
@@ -245,6 +245,10 @@ Requires-Dist: einops>=0.8.1; extra == "vision"
|
|
|
245
245
|
Provides-Extra: language
|
|
246
246
|
Requires-Dist: datasets<4.0.0,>=2.19.0; extra == "language"
|
|
247
247
|
Requires-Dist: litellm>=1.61.8; extra == "language"
|
|
248
|
+
Requires-Dist: backoff>=2.2.1; extra == "language"
|
|
249
|
+
Provides-Extra: multimodal
|
|
250
|
+
Requires-Dist: litellm>=1.61.8; extra == "multimodal"
|
|
251
|
+
Requires-Dist: backoff>=2.2.1; extra == "multimodal"
|
|
248
252
|
Provides-Extra: all
|
|
249
253
|
Requires-Dist: h5py>=3.10.0; extra == "all"
|
|
250
254
|
Requires-Dist: nibabel>=4.0.1; extra == "all"
|
|
@@ -260,6 +264,7 @@ Requires-Dist: monai>=1.3.2; extra == "all"
|
|
|
260
264
|
Requires-Dist: einops>=0.8.1; extra == "all"
|
|
261
265
|
Requires-Dist: datasets<4.0.0,>=2.19.0; extra == "all"
|
|
262
266
|
Requires-Dist: litellm>=1.61.8; extra == "all"
|
|
267
|
+
Requires-Dist: backoff>=2.2.1; extra == "all"
|
|
263
268
|
Description-Content-Type: text/markdown
|
|
264
269
|
|
|
265
270
|
<div align="center">
|
|
@@ -298,7 +303,7 @@ Check out the [documentation](https://kaiko-ai.github.io/eva/) for more informat
|
|
|
298
303
|
|
|
299
304
|
### Highlights:
|
|
300
305
|
- Easy and reliable benchmark of Oncology FMs
|
|
301
|
-
- Supports patch-level classification, slide-level classification, semantic segmentation, and
|
|
306
|
+
- Supports patch-level classification, slide-level classification, semantic segmentation, and (visual) question answering tasks.
|
|
302
307
|
- Automatic embedding inference and evaluation of a downstream task
|
|
303
308
|
- Native support of popular medical [datasets](https://kaiko-ai.github.io/eva/dev/datasets/) and models
|
|
304
309
|
- Produce statistics over multiple evaluation fits and multiple metrics
|
|
@@ -316,6 +321,9 @@ pip install 'kaiko-eva[vision]'
|
|
|
316
321
|
# to install the expanded `language` version
|
|
317
322
|
pip install 'kaiko-eva[language]'
|
|
318
323
|
|
|
324
|
+
# to install the expanded `multimodal` version
|
|
325
|
+
pip install 'kaiko-eva[multimodal]'
|
|
326
|
+
|
|
319
327
|
# to install everything
|
|
320
328
|
pip install 'kaiko-eva[all]'
|
|
321
329
|
```
|
|
@@ -483,7 +491,13 @@ and [tutorials](https://kaiko-ai.github.io/eva/main/user-guide/advanced/replicat
|
|
|
483
491
|
|
|
484
492
|
The following table shows the FMs we have evaluated with _`eva`_. For more detailed information about the evaluation process, please refer to our [documentation](https://kaiko-ai.github.io/eva/main/leaderboards/).
|
|
485
493
|
|
|
486
|
-
|
|
494
|
+
### Pathology
|
|
495
|
+
|
|
496
|
+
<img src="./docs/images/leaderboards/pathology.svg" alt="Pathology Leaderboard">
|
|
497
|
+
|
|
498
|
+
### Radiology
|
|
499
|
+
|
|
500
|
+
<img src="./docs/images/leaderboards/radiology.svg" alt="Radiology Leaderboard" width="600">
|
|
487
501
|
|
|
488
502
|
|
|
489
503
|
## Contributing
|
|
@@ -34,7 +34,7 @@ Check out the [documentation](https://kaiko-ai.github.io/eva/) for more informat
|
|
|
34
34
|
|
|
35
35
|
### Highlights:
|
|
36
36
|
- Easy and reliable benchmark of Oncology FMs
|
|
37
|
-
- Supports patch-level classification, slide-level classification, semantic segmentation, and
|
|
37
|
+
- Supports patch-level classification, slide-level classification, semantic segmentation, and (visual) question answering tasks.
|
|
38
38
|
- Automatic embedding inference and evaluation of a downstream task
|
|
39
39
|
- Native support of popular medical [datasets](https://kaiko-ai.github.io/eva/dev/datasets/) and models
|
|
40
40
|
- Produce statistics over multiple evaluation fits and multiple metrics
|
|
@@ -52,6 +52,9 @@ pip install 'kaiko-eva[vision]'
|
|
|
52
52
|
# to install the expanded `language` version
|
|
53
53
|
pip install 'kaiko-eva[language]'
|
|
54
54
|
|
|
55
|
+
# to install the expanded `multimodal` version
|
|
56
|
+
pip install 'kaiko-eva[multimodal]'
|
|
57
|
+
|
|
55
58
|
# to install everything
|
|
56
59
|
pip install 'kaiko-eva[all]'
|
|
57
60
|
```
|
|
@@ -219,7 +222,13 @@ and [tutorials](https://kaiko-ai.github.io/eva/main/user-guide/advanced/replicat
|
|
|
219
222
|
|
|
220
223
|
The following table shows the FMs we have evaluated with _`eva`_. For more detailed information about the evaluation process, please refer to our [documentation](https://kaiko-ai.github.io/eva/main/leaderboards/).
|
|
221
224
|
|
|
222
|
-
|
|
225
|
+
### Pathology
|
|
226
|
+
|
|
227
|
+
<img src="./docs/images/leaderboards/pathology.svg" alt="Pathology Leaderboard">
|
|
228
|
+
|
|
229
|
+
### Radiology
|
|
230
|
+
|
|
231
|
+
<img src="./docs/images/leaderboards/radiology.svg" alt="Radiology Leaderboard" width="600">
|
|
223
232
|
|
|
224
233
|
|
|
225
234
|
## Contributing
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "kaiko-eva"
|
|
9
|
-
version = "0.
|
|
9
|
+
version = "0.4.1"
|
|
10
10
|
description = "Evaluation Framework for oncology foundation models."
|
|
11
11
|
keywords = [
|
|
12
12
|
"machine-learning",
|
|
@@ -75,6 +75,11 @@ vision = [
|
|
|
75
75
|
language = [
|
|
76
76
|
"datasets<4.0.0,>=2.19.0",
|
|
77
77
|
"litellm>=1.61.8",
|
|
78
|
+
"backoff>=2.2.1",
|
|
79
|
+
]
|
|
80
|
+
multimodal = [
|
|
81
|
+
"litellm>=1.61.8",
|
|
82
|
+
"backoff>=2.2.1",
|
|
78
83
|
]
|
|
79
84
|
all = [
|
|
80
85
|
"h5py>=3.10.0",
|
|
@@ -91,6 +96,7 @@ all = [
|
|
|
91
96
|
"einops>=0.8.1",
|
|
92
97
|
"datasets<4.0.0,>=2.19.0",
|
|
93
98
|
"litellm>=1.61.8",
|
|
99
|
+
"backoff>=2.2.1",
|
|
94
100
|
]
|
|
95
101
|
|
|
96
102
|
[project.scripts]
|
|
@@ -9,11 +9,13 @@ from typing import Any, Dict, List
|
|
|
9
9
|
import lightning.pytorch as pl
|
|
10
10
|
import yaml
|
|
11
11
|
from lightning_fabric.utilities import cloud_io
|
|
12
|
+
from loguru import logger
|
|
12
13
|
from loguru import logger as cli_logger
|
|
13
14
|
from omegaconf import OmegaConf
|
|
14
15
|
from typing_extensions import TypeGuard, override
|
|
15
16
|
|
|
16
17
|
from eva.core import loggers
|
|
18
|
+
from eva.core.utils import distributed as dist_utils
|
|
17
19
|
|
|
18
20
|
|
|
19
21
|
class ConfigurationLogger(pl.Callback):
|
|
@@ -39,8 +41,14 @@ class ConfigurationLogger(pl.Callback):
|
|
|
39
41
|
pl_module: pl.LightningModule,
|
|
40
42
|
stage: str | None = None,
|
|
41
43
|
) -> None:
|
|
42
|
-
|
|
43
|
-
|
|
44
|
+
if dist_utils.is_distributed():
|
|
45
|
+
logger.info("ConfigurationLogger skipped as not supported in distributed mode.")
|
|
46
|
+
# TODO: Enabling leads to deadlocks in DDP mode, but I could not yet figure out why.
|
|
47
|
+
return
|
|
48
|
+
|
|
49
|
+
if not trainer.is_global_zero or not _logdir_exists(
|
|
50
|
+
log_dir := trainer.log_dir, self._verbose
|
|
51
|
+
):
|
|
44
52
|
return
|
|
45
53
|
|
|
46
54
|
configuration = _load_submitted_config()
|
|
@@ -51,6 +59,10 @@ class ConfigurationLogger(pl.Callback):
|
|
|
51
59
|
|
|
52
60
|
save_as = os.path.join(log_dir, self._save_as)
|
|
53
61
|
fs = cloud_io.get_filesystem(log_dir)
|
|
62
|
+
|
|
63
|
+
if not fs.exists(log_dir):
|
|
64
|
+
fs.makedirs(log_dir)
|
|
65
|
+
|
|
54
66
|
with fs.open(save_as, "w") as output_file:
|
|
55
67
|
yaml.dump(configuration, output_file, sort_keys=False)
|
|
56
68
|
|
|
@@ -126,7 +138,7 @@ def _type_resolver(mapping: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
126
138
|
for key, value in mapping.items():
|
|
127
139
|
if isinstance(value, dict):
|
|
128
140
|
formatted_value = _type_resolver(value)
|
|
129
|
-
elif isinstance(value, list) and isinstance(value[0], dict):
|
|
141
|
+
elif isinstance(value, list) and value and isinstance(value[0], dict):
|
|
130
142
|
formatted_value = [_type_resolver(subvalue) for subvalue in value]
|
|
131
143
|
else:
|
|
132
144
|
try:
|
|
@@ -134,10 +146,7 @@ def _type_resolver(mapping: Dict[str, Any]) -> Dict[str, Any]:
|
|
|
134
146
|
formatted_value = (
|
|
135
147
|
value if isinstance(parsed_value, BuiltinFunctionType) else parsed_value
|
|
136
148
|
)
|
|
137
|
-
|
|
138
149
|
except Exception:
|
|
139
150
|
formatted_value = value
|
|
140
|
-
|
|
141
151
|
mapping[key] = formatted_value
|
|
142
|
-
|
|
143
152
|
return mapping
|
|
@@ -7,6 +7,7 @@ from typing import Any, Dict, List, Sequence
|
|
|
7
7
|
|
|
8
8
|
import lightning.pytorch as pl
|
|
9
9
|
import torch
|
|
10
|
+
import torch.distributed as dist
|
|
10
11
|
from lightning.pytorch import callbacks
|
|
11
12
|
from loguru import logger
|
|
12
13
|
from torch import multiprocessing, nn
|
|
@@ -15,6 +16,7 @@ from typing_extensions import override
|
|
|
15
16
|
from eva.core import utils
|
|
16
17
|
from eva.core.callbacks.writers.embeddings.typings import QUEUE_ITEM
|
|
17
18
|
from eva.core.models.modules.typings import INPUT_BATCH
|
|
19
|
+
from eva.core.utils import distributed as dist_utils
|
|
18
20
|
from eva.core.utils import multiprocessing as eva_multiprocessing
|
|
19
21
|
|
|
20
22
|
|
|
@@ -58,8 +60,9 @@ class EmbeddingsWriter(callbacks.BasePredictionWriter, abc.ABC):
|
|
|
58
60
|
self._save_every_n = save_every_n
|
|
59
61
|
self._metadata_keys = metadata_keys or []
|
|
60
62
|
|
|
61
|
-
self._write_queue: multiprocessing.Queue
|
|
62
|
-
self._write_process: eva_multiprocessing.Process
|
|
63
|
+
self._write_queue: multiprocessing.Queue | None = None
|
|
64
|
+
self._write_process: eva_multiprocessing.Process | None = None
|
|
65
|
+
self._is_rank_zero: bool = False
|
|
63
66
|
|
|
64
67
|
@staticmethod
|
|
65
68
|
@abc.abstractmethod
|
|
@@ -78,9 +81,13 @@ class EmbeddingsWriter(callbacks.BasePredictionWriter, abc.ABC):
|
|
|
78
81
|
|
|
79
82
|
@override
|
|
80
83
|
def on_predict_start(self, trainer: pl.Trainer, pl_module: pl.LightningModule) -> None:
|
|
81
|
-
self.
|
|
82
|
-
self.
|
|
83
|
-
|
|
84
|
+
self._is_rank_zero = trainer.is_global_zero
|
|
85
|
+
if self._is_rank_zero:
|
|
86
|
+
self._check_if_exists()
|
|
87
|
+
self._initialize_write_process()
|
|
88
|
+
if self._write_process is None or self._write_queue is None:
|
|
89
|
+
raise RuntimeError("Failed to initialize embedding writer process.")
|
|
90
|
+
self._write_process.start()
|
|
84
91
|
|
|
85
92
|
if self._backbone is not None:
|
|
86
93
|
self._backbone = self._backbone.to(pl_module.device)
|
|
@@ -106,6 +113,7 @@ class EmbeddingsWriter(callbacks.BasePredictionWriter, abc.ABC):
|
|
|
106
113
|
with torch.no_grad():
|
|
107
114
|
embeddings = self._get_embeddings(prediction)
|
|
108
115
|
|
|
116
|
+
queue_items: List[QUEUE_ITEM] = []
|
|
109
117
|
for local_idx, global_idx in enumerate(batch_indices[: len(embeddings)]):
|
|
110
118
|
data_name = dataset.filename(global_idx)
|
|
111
119
|
save_name = os.path.splitext(data_name)[0] + ".pt"
|
|
@@ -121,15 +129,41 @@ class EmbeddingsWriter(callbacks.BasePredictionWriter, abc.ABC):
|
|
|
121
129
|
split=split,
|
|
122
130
|
metadata=item_metadata,
|
|
123
131
|
)
|
|
124
|
-
|
|
132
|
+
queue_items.append(item)
|
|
125
133
|
|
|
126
|
-
self.
|
|
134
|
+
gathered_items = self._gather_queue_items(queue_items)
|
|
135
|
+
if self._is_rank_zero:
|
|
136
|
+
for item in gathered_items:
|
|
137
|
+
self._write_queue.put(item) # type: ignore
|
|
138
|
+
self._write_process.check_exceptions() # type: ignore
|
|
127
139
|
|
|
128
140
|
@override
|
|
129
141
|
def on_predict_end(self, trainer: pl.Trainer, pl_module: pl.LightningModule) -> None:
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
142
|
+
if dist_utils.is_distributed():
|
|
143
|
+
dist.barrier()
|
|
144
|
+
|
|
145
|
+
if self._is_rank_zero and self._write_queue is not None:
|
|
146
|
+
self._write_queue.put(None)
|
|
147
|
+
if self._write_process is not None:
|
|
148
|
+
self._write_process.join()
|
|
149
|
+
logger.info(f"Predictions and manifest saved to {self._output_dir}")
|
|
150
|
+
|
|
151
|
+
def _gather_queue_items(self, items: List[QUEUE_ITEM]) -> List[QUEUE_ITEM]:
|
|
152
|
+
"""Gather queue items across distributed ranks, returning only on rank zero."""
|
|
153
|
+
if not dist_utils.is_distributed():
|
|
154
|
+
return items
|
|
155
|
+
|
|
156
|
+
world_size = dist.get_world_size()
|
|
157
|
+
object_list: List[List[QUEUE_ITEM]] = [[] for _ in range(world_size)]
|
|
158
|
+
dist.all_gather_object(object_list, items)
|
|
159
|
+
|
|
160
|
+
if self._is_rank_zero:
|
|
161
|
+
gathered: List[QUEUE_ITEM] = []
|
|
162
|
+
for rank_items in object_list:
|
|
163
|
+
gathered.extend(rank_items)
|
|
164
|
+
return gathered
|
|
165
|
+
|
|
166
|
+
return []
|
|
133
167
|
|
|
134
168
|
def _initialize_write_process(self) -> None:
|
|
135
169
|
self._write_queue = multiprocessing.Queue()
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"""Random class sampler for data loading."""
|
|
2
2
|
|
|
3
3
|
from collections import defaultdict
|
|
4
|
-
from typing import Dict, Iterator, List
|
|
4
|
+
from typing import Dict, Iterator, List, Union
|
|
5
5
|
|
|
6
6
|
import numpy as np
|
|
7
|
+
import torch
|
|
7
8
|
from loguru import logger
|
|
8
9
|
from typing_extensions import override
|
|
9
10
|
|
|
@@ -32,7 +33,7 @@ class BalancedSampler(SamplerWithDataSource[int]):
|
|
|
32
33
|
"""
|
|
33
34
|
self._num_samples = num_samples
|
|
34
35
|
self._replacement = replacement
|
|
35
|
-
self._class_indices: Dict[int, List[int]] = defaultdict(list)
|
|
36
|
+
self._class_indices: Dict[Union[int, str], List[int]] = defaultdict(list)
|
|
36
37
|
self._random_generator = np.random.default_rng(seed)
|
|
37
38
|
self._indices: List[int] = []
|
|
38
39
|
|
|
@@ -62,20 +63,31 @@ class BalancedSampler(SamplerWithDataSource[int]):
|
|
|
62
63
|
super().set_dataset(data_source)
|
|
63
64
|
self._make_indices()
|
|
64
65
|
|
|
66
|
+
def _get_class_idx(self, idx):
|
|
67
|
+
"""Load and validate the class index for a given sample index."""
|
|
68
|
+
if hasattr(self.data_source, "load_target"):
|
|
69
|
+
target = self.data_source.load_target(idx) # type: ignore
|
|
70
|
+
else:
|
|
71
|
+
_, target, _ = DataSample(*self.data_source[idx])
|
|
72
|
+
|
|
73
|
+
if target is None:
|
|
74
|
+
raise ValueError("The dataset must return non-empty targets.")
|
|
75
|
+
|
|
76
|
+
if isinstance(target, str):
|
|
77
|
+
return target
|
|
78
|
+
|
|
79
|
+
if isinstance(target, torch.Tensor):
|
|
80
|
+
if target.numel() != 1:
|
|
81
|
+
raise ValueError("The dataset must return a single & scalar target.")
|
|
82
|
+
return int(target.item())
|
|
83
|
+
|
|
84
|
+
raise ValueError("Unsupported target type. Expected str or tensor-like object.")
|
|
85
|
+
|
|
65
86
|
def _make_indices(self):
|
|
66
87
|
"""Samples the indices for each class in the dataset."""
|
|
67
88
|
self._class_indices.clear()
|
|
68
89
|
for idx in tqdm(range(len(self.data_source)), desc="Fetching class indices for sampler"):
|
|
69
|
-
|
|
70
|
-
target = self.data_source.load_target(idx) # type: ignore
|
|
71
|
-
else:
|
|
72
|
-
_, target, _ = DataSample(*self.data_source[idx])
|
|
73
|
-
if target is None:
|
|
74
|
-
raise ValueError("The dataset must return non-empty targets.")
|
|
75
|
-
if target.numel() != 1:
|
|
76
|
-
raise ValueError("The dataset must return a single & scalar target.")
|
|
77
|
-
|
|
78
|
-
class_idx = int(target.item())
|
|
90
|
+
class_idx = self._get_class_idx(idx)
|
|
79
91
|
self._class_indices[class_idx].append(idx)
|
|
80
92
|
|
|
81
93
|
if not self._replacement:
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
from typing import Optional
|
|
4
4
|
|
|
5
|
+
import torch
|
|
5
6
|
from torch.utils import data
|
|
6
7
|
from typing_extensions import override
|
|
7
8
|
|
|
@@ -10,30 +11,36 @@ from eva.core.data.samplers.sampler import SamplerWithDataSource
|
|
|
10
11
|
|
|
11
12
|
|
|
12
13
|
class RandomSampler(data.RandomSampler, SamplerWithDataSource[int]):
|
|
13
|
-
"""Samples elements randomly."""
|
|
14
|
+
"""Samples elements randomly from a MapDataset."""
|
|
14
15
|
|
|
15
16
|
data_source: datasets.MapDataset # type: ignore
|
|
16
17
|
|
|
17
18
|
def __init__(
|
|
18
|
-
self,
|
|
19
|
+
self,
|
|
20
|
+
replacement: bool = False,
|
|
21
|
+
num_samples: Optional[int] = None,
|
|
22
|
+
seed: Optional[int] = None,
|
|
19
23
|
) -> None:
|
|
20
|
-
"""
|
|
24
|
+
"""Initialize the random sampler.
|
|
21
25
|
|
|
22
26
|
Args:
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
generator: Generator used in sampling.
|
|
27
|
+
replacement: Samples are drawn on-demand with replacement if ``True``, default=``False``
|
|
28
|
+
num_samples: Number of samples to draw, default=``len(dataset)``.
|
|
29
|
+
seed: Optional seed for the random number generator.
|
|
27
30
|
"""
|
|
28
31
|
self.replacement = replacement
|
|
29
32
|
self._num_samples = num_samples
|
|
30
|
-
self.
|
|
33
|
+
self._generator = None
|
|
34
|
+
|
|
35
|
+
if seed is not None:
|
|
36
|
+
self._generator = torch.Generator()
|
|
37
|
+
self._generator.manual_seed(seed)
|
|
31
38
|
|
|
32
39
|
@override
|
|
33
40
|
def set_dataset(self, data_source: datasets.MapDataset) -> None:
|
|
34
41
|
super().__init__(
|
|
35
42
|
data_source,
|
|
36
43
|
replacement=self.replacement,
|
|
37
|
-
num_samples=self.
|
|
38
|
-
generator=self.
|
|
44
|
+
num_samples=self._num_samples,
|
|
45
|
+
generator=self._generator,
|
|
39
46
|
)
|
|
@@ -132,3 +132,24 @@ class Interface:
|
|
|
132
132
|
n_runs=trainer.n_runs,
|
|
133
133
|
verbose=trainer.n_runs > 1,
|
|
134
134
|
)
|
|
135
|
+
|
|
136
|
+
def validate_test(
|
|
137
|
+
self,
|
|
138
|
+
trainer: eva_trainer.Trainer,
|
|
139
|
+
model: modules.ModelModule,
|
|
140
|
+
data: datamodules.DataModule,
|
|
141
|
+
) -> None:
|
|
142
|
+
"""Runs validation & test stages."""
|
|
143
|
+
if getattr(data.datasets, "val", None) is None:
|
|
144
|
+
raise ValueError("The provided data module does not contain a validation dataset.")
|
|
145
|
+
if getattr(data.datasets, "test", None) is None:
|
|
146
|
+
raise ValueError("The provided data module does not contain a test dataset.")
|
|
147
|
+
|
|
148
|
+
eva_trainer.run_evaluation_session(
|
|
149
|
+
base_trainer=trainer,
|
|
150
|
+
base_model=model,
|
|
151
|
+
datamodule=data,
|
|
152
|
+
stages=["validate", "test"],
|
|
153
|
+
n_runs=trainer.n_runs,
|
|
154
|
+
verbose=trainer.n_runs > 1,
|
|
155
|
+
)
|
|
@@ -5,6 +5,8 @@ from typing import Any, Dict
|
|
|
5
5
|
|
|
6
6
|
from loguru import logger
|
|
7
7
|
|
|
8
|
+
from eva.core.utils import requirements
|
|
9
|
+
|
|
8
10
|
|
|
9
11
|
def rename_active_run(name: str) -> None:
|
|
10
12
|
"""Renames the current run."""
|
|
@@ -12,7 +14,8 @@ def rename_active_run(name: str) -> None:
|
|
|
12
14
|
|
|
13
15
|
if wandb.run:
|
|
14
16
|
wandb.run.name = name
|
|
15
|
-
wandb.
|
|
17
|
+
if requirements.below("wandb", "0.21.0"):
|
|
18
|
+
wandb.run.save()
|
|
16
19
|
else:
|
|
17
20
|
logger.warning("No active wandb run found that could be renamed.")
|
|
18
21
|
|
|
@@ -33,8 +33,8 @@ class ModelModule(pl.LightningModule):
|
|
|
33
33
|
super().__init__()
|
|
34
34
|
|
|
35
35
|
self._metrics = metrics or self.default_metrics
|
|
36
|
-
self._postprocess = postprocess or self.default_postprocess
|
|
37
36
|
|
|
37
|
+
self.postprocess = postprocess or self.default_postprocess
|
|
38
38
|
self.metrics = metrics_lib.MetricModule.from_schema(self._metrics)
|
|
39
39
|
|
|
40
40
|
@property
|
|
@@ -133,7 +133,7 @@ class ModelModule(pl.LightningModule):
|
|
|
133
133
|
Returns:
|
|
134
134
|
The updated outputs.
|
|
135
135
|
"""
|
|
136
|
-
self.
|
|
136
|
+
self.postprocess(outputs)
|
|
137
137
|
return memory.recursive_detach(outputs, to_cpu=self.metrics_device.type == "cpu")
|
|
138
138
|
|
|
139
139
|
def _forward_and_log_metrics(
|
|
@@ -25,7 +25,7 @@ class BaseModel(nn.Module, Generic[InputType, OutputType]):
|
|
|
25
25
|
|
|
26
26
|
self._output_transforms = transforms
|
|
27
27
|
|
|
28
|
-
self.
|
|
28
|
+
self.model: Callable[..., OutputType] | nn.Module
|
|
29
29
|
|
|
30
30
|
@override
|
|
31
31
|
def forward(self, tensor: InputType) -> OutputType:
|
|
@@ -43,7 +43,7 @@ class BaseModel(nn.Module, Generic[InputType, OutputType]):
|
|
|
43
43
|
Args:
|
|
44
44
|
tensor: The input tensor to the model.
|
|
45
45
|
"""
|
|
46
|
-
return self.
|
|
46
|
+
return self.model(tensor)
|
|
47
47
|
|
|
48
48
|
def _apply_transforms(self, tensor: OutputType) -> OutputType:
|
|
49
49
|
if self._output_transforms is not None:
|
|
@@ -41,12 +41,12 @@ class ModelFromFunction(base.BaseModel[torch.Tensor, torch.Tensor]):
|
|
|
41
41
|
self._arguments = arguments
|
|
42
42
|
self._checkpoint_path = checkpoint_path
|
|
43
43
|
|
|
44
|
-
self.load_model()
|
|
44
|
+
self.model = self.load_model()
|
|
45
45
|
|
|
46
46
|
@override
|
|
47
|
-
def load_model(self) ->
|
|
47
|
+
def load_model(self) -> nn.Module:
|
|
48
48
|
class_path = jsonargparse.class_from_function(self._path, func_return=nn.Module)
|
|
49
49
|
model = class_path(**self._arguments or {})
|
|
50
50
|
if self._checkpoint_path is not None:
|
|
51
51
|
_utils.load_model_weights(model, self._checkpoint_path)
|
|
52
|
-
|
|
52
|
+
return model
|
|
@@ -52,12 +52,12 @@ class TorchHubModel(base.BaseModel[torch.Tensor, torch.Tensor]):
|
|
|
52
52
|
self._trust_repo = trust_repo
|
|
53
53
|
self._model_kwargs = model_kwargs or {}
|
|
54
54
|
|
|
55
|
-
self.load_model()
|
|
55
|
+
self.model = self.load_model()
|
|
56
56
|
|
|
57
57
|
@override
|
|
58
|
-
def load_model(self) ->
|
|
58
|
+
def load_model(self) -> nn.Module:
|
|
59
59
|
"""Builds and loads the torch.hub model."""
|
|
60
|
-
|
|
60
|
+
model: nn.Module = torch.hub.load(
|
|
61
61
|
repo_or_dir=self._repo_or_dir,
|
|
62
62
|
model=self._model_name,
|
|
63
63
|
trust_repo=self._trust_repo,
|
|
@@ -66,21 +66,23 @@ class TorchHubModel(base.BaseModel[torch.Tensor, torch.Tensor]):
|
|
|
66
66
|
) # type: ignore
|
|
67
67
|
|
|
68
68
|
if self._checkpoint_path:
|
|
69
|
-
_utils.load_model_weights(
|
|
69
|
+
_utils.load_model_weights(model, self._checkpoint_path)
|
|
70
70
|
|
|
71
71
|
TorchHubModel.__name__ = self._model_name
|
|
72
72
|
|
|
73
|
+
return model
|
|
74
|
+
|
|
73
75
|
@override
|
|
74
76
|
def model_forward(self, tensor: torch.Tensor) -> torch.Tensor | List[torch.Tensor]:
|
|
75
77
|
if self._out_indices is not None:
|
|
76
|
-
if not hasattr(self.
|
|
78
|
+
if not hasattr(self.model, "get_intermediate_layers"):
|
|
77
79
|
raise ValueError(
|
|
78
80
|
"Only models with `get_intermediate_layers` are supported "
|
|
79
81
|
"when using `out_indices`."
|
|
80
82
|
)
|
|
81
83
|
|
|
82
84
|
return list(
|
|
83
|
-
self.
|
|
85
|
+
self.model.get_intermediate_layers( # type: ignore
|
|
84
86
|
tensor,
|
|
85
87
|
self._out_indices,
|
|
86
88
|
reshape=True,
|
|
@@ -89,4 +91,4 @@ class TorchHubModel(base.BaseModel[torch.Tensor, torch.Tensor]):
|
|
|
89
91
|
)
|
|
90
92
|
)
|
|
91
93
|
|
|
92
|
-
return self.
|
|
94
|
+
return self.model(tensor)
|
|
@@ -4,6 +4,7 @@ from typing import Any, Callable, Dict
|
|
|
4
4
|
|
|
5
5
|
import torch
|
|
6
6
|
import transformers
|
|
7
|
+
from torch import nn
|
|
7
8
|
from typing_extensions import override
|
|
8
9
|
|
|
9
10
|
from eva.core.models.wrappers import base
|
|
@@ -33,12 +34,10 @@ class HuggingFaceModel(base.BaseModel[torch.Tensor, torch.Tensor]):
|
|
|
33
34
|
self._model_name_or_path = model_name_or_path
|
|
34
35
|
self._model_kwargs = model_kwargs or {}
|
|
35
36
|
|
|
36
|
-
self.load_model()
|
|
37
|
+
self.model = self.load_model()
|
|
37
38
|
|
|
38
39
|
@override
|
|
39
|
-
def load_model(self) ->
|
|
40
|
+
def load_model(self) -> nn.Module:
|
|
40
41
|
# Use safetensors to avoid torch.load security vulnerability
|
|
41
42
|
model_kwargs = {"use_safetensors": True, **self._model_kwargs}
|
|
42
|
-
|
|
43
|
-
self._model_name_or_path, **model_kwargs
|
|
44
|
-
)
|
|
43
|
+
return transformers.AutoModel.from_pretrained(self._model_name_or_path, **model_kwargs)
|
|
@@ -30,21 +30,21 @@ class ONNXModel(base.BaseModel[torch.Tensor, torch.Tensor]):
|
|
|
30
30
|
self._path = path
|
|
31
31
|
self._device = device
|
|
32
32
|
|
|
33
|
-
self.load_model()
|
|
33
|
+
self.model = self.load_model()
|
|
34
34
|
|
|
35
35
|
@override
|
|
36
36
|
def load_model(self) -> Any:
|
|
37
37
|
if self._device == "cuda" and not torch.cuda.is_available():
|
|
38
38
|
raise ValueError("Device is set to 'cuda', but CUDA is not available.")
|
|
39
39
|
provider = "CUDAExecutionProvider" if self._device == "cuda" else "CPUExecutionProvider"
|
|
40
|
-
|
|
40
|
+
return ort.InferenceSession(self._path, providers=[provider]) # type: ignore
|
|
41
41
|
|
|
42
42
|
@override
|
|
43
43
|
def model_forward(self, tensor: torch.Tensor) -> torch.Tensor:
|
|
44
44
|
# TODO: Use IO binding to avoid copying the tensor to CPU.
|
|
45
45
|
# https://onnxruntime.ai/docs/api/python/api_summary.html#data-on-device
|
|
46
|
-
if not isinstance(self.
|
|
46
|
+
if not isinstance(self.model, ort.InferenceSession):
|
|
47
47
|
raise ValueError("Model is not loaded.")
|
|
48
|
-
inputs = {self.
|
|
49
|
-
outputs = self.
|
|
48
|
+
inputs = {self.model.get_inputs()[0].name: tensor.detach().cpu().numpy()}
|
|
49
|
+
outputs = self.model.run(None, inputs)[0]
|
|
50
50
|
return torch.from_numpy(outputs).float().to(tensor.device)
|
|
@@ -8,6 +8,7 @@ from lightning.pytorch import loggers as pl_loggers
|
|
|
8
8
|
from lightning.pytorch import trainer as pl_trainer
|
|
9
9
|
from lightning.pytorch.utilities import argparse
|
|
10
10
|
from lightning_fabric.utilities import cloud_io
|
|
11
|
+
from lightning_utilities.core.rank_zero import rank_zero_only
|
|
11
12
|
from typing_extensions import override
|
|
12
13
|
|
|
13
14
|
from eva.core import loggers as eva_loggers
|
|
@@ -30,6 +31,8 @@ class Trainer(pl_trainer.Trainer):
|
|
|
30
31
|
default_root_dir: str = "logs",
|
|
31
32
|
n_runs: int = 1,
|
|
32
33
|
checkpoint_type: Literal["best", "last"] = "best",
|
|
34
|
+
accelerator: str = "auto",
|
|
35
|
+
devices: int = 1,
|
|
33
36
|
**kwargs: Any,
|
|
34
37
|
) -> None:
|
|
35
38
|
"""Initializes the trainer.
|
|
@@ -44,9 +47,17 @@ class Trainer(pl_trainer.Trainer):
|
|
|
44
47
|
n_runs: The amount of runs (fit and evaluate) to perform in an evaluation session.
|
|
45
48
|
checkpoint_type: Wether to load the "best" or "last" checkpoint saved by the checkpoint
|
|
46
49
|
callback for evaluations on validation & test sets.
|
|
50
|
+
accelerator: The accelerator to use for training (e.g. "cpu", "gpu").
|
|
51
|
+
devices: The number of devices (GPUs) to use for training.
|
|
47
52
|
kwargs: Kew-word arguments of ::class::`lightning.pytorch.Trainer`.
|
|
48
53
|
"""
|
|
49
|
-
super().__init__(
|
|
54
|
+
super().__init__(
|
|
55
|
+
*args,
|
|
56
|
+
default_root_dir=default_root_dir,
|
|
57
|
+
accelerator=accelerator,
|
|
58
|
+
devices=devices,
|
|
59
|
+
**kwargs,
|
|
60
|
+
)
|
|
50
61
|
|
|
51
62
|
self.checkpoint_type = checkpoint_type
|
|
52
63
|
self.n_runs = n_runs
|
|
@@ -66,6 +77,7 @@ class Trainer(pl_trainer.Trainer):
|
|
|
66
77
|
def log_dir(self) -> str | None:
|
|
67
78
|
return self.strategy.broadcast(self._log_dir)
|
|
68
79
|
|
|
80
|
+
@rank_zero_only
|
|
69
81
|
def init_logger_run(self, run_id: int | None) -> None:
|
|
70
82
|
"""Setup the loggers & log directories when starting a new run.
|
|
71
83
|
|