kaiko-eva 0.1.5__tar.gz → 0.1.7__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of kaiko-eva might be problematic. Click here for more details.
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/PKG-INFO +4 -4
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/pyproject.toml +4 -4
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/dataloaders/dataloader.py +5 -2
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/datamodule.py +42 -5
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/schemas.py +18 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/__init__.py +4 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/base.py +23 -0
- kaiko_eva-0.1.7/src/eva/core/data/datasets/typings.py +18 -0
- kaiko_eva-0.1.7/src/eva/core/data/samplers/__init__.py +7 -0
- kaiko_eva-0.1.7/src/eva/core/data/samplers/classification/__init__.py +5 -0
- kaiko_eva-0.1.7/src/eva/core/data/samplers/classification/balanced.py +96 -0
- kaiko_eva-0.1.7/src/eva/core/data/samplers/random.py +39 -0
- kaiko_eva-0.1.7/src/eva/core/data/samplers/sampler.py +33 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/module.py +30 -9
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/__init__.py +8 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/head.py +19 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/utils/__init__.py +2 -1
- kaiko_eva-0.1.7/src/eva/core/models/modules/utils/checkpoint.py +21 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/__init__.py +3 -1
- kaiko_eva-0.1.7/src/eva/core/models/wrappers/from_torchhub.py +93 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/trainers/functional.py +4 -2
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/trainers/trainer.py +8 -4
- kaiko_eva-0.1.7/src/eva/vision/data/datasets/segmentation/_total_segmentator.py +91 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/consep.py +4 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/lits.py +3 -3
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/total_segmentator_2d.py +92 -37
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/vision.py +1 -18
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/losses/dice.py +0 -3
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/__init__.py +5 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/defaults/segmentation/multiclass.py +30 -6
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/__init__.py +4 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/_utils.py +1 -2
- kaiko_eva-0.1.7/src/eva/vision/metrics/segmentation/dice.py +69 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/generalized_dice.py +2 -4
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/mean_iou.py +4 -8
- kaiko_eva-0.1.7/src/eva/vision/metrics/segmentation/monai_dice.py +57 -0
- kaiko_eva-0.1.7/src/eva/vision/metrics/wrappers/__init__.py +5 -0
- kaiko_eva-0.1.7/src/eva/vision/metrics/wrappers/monai.py +32 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/modules/semantic_segmentation.py +19 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/__init__.py +2 -2
- kaiko_eva-0.1.7/src/eva/vision/models/networks/backbones/torchhub/__init__.py +5 -0
- kaiko_eva-0.1.7/src/eva/vision/models/networks/backbones/torchhub/backbones.py +61 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/decoder2d.py +1 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/wrappers/__init__.py +1 -1
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/nifti.py +0 -1
- kaiko_eva-0.1.7/tests/eva/core/data/samplers/__init__.py +1 -0
- kaiko_eva-0.1.7/tests/eva/core/data/samplers/_utils.py +30 -0
- kaiko_eva-0.1.7/tests/eva/core/data/samplers/classification/__init__.py +1 -0
- kaiko_eva-0.1.7/tests/eva/core/data/samplers/classification/test_balanced.py +75 -0
- kaiko_eva-0.1.7/tests/eva/core/models/wrappers/test_from_torchub.py +76 -0
- kaiko_eva-0.1.7/tests/eva/vision/data/datasets/segmentation/test_total_segmentator.py +130 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/defaults/segmentation/test_multiclass.py +6 -1
- kaiko_eva-0.1.7/tests/eva/vision/metrics/segmentation/test_dice.py +48 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/test_vision_cli.py +2 -2
- kaiko_eva-0.1.5/src/eva/core/data/samplers/__init__.py +0 -5
- kaiko_eva-0.1.5/src/eva/core/data/samplers/sampler.py +0 -6
- kaiko_eva-0.1.5/tests/eva/vision/data/datasets/segmentation/test_total_segmentator.py +0 -68
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/LICENSE +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/README.md +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/__main__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/__version__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/config.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/_manifest.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/classification.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/segmentation.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/callbacks/writers/embeddings/typings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/cli/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/cli/cli.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/cli/logo.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/cli/setup.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/dataloaders/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datamodules/call.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/classification/embeddings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/classification/multi_embeddings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/dataset.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/datasets/embeddings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/splitting/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/splitting/random.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/splitting/stratified.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/dtype/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/dtype/array.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/padding/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/padding/pad_2d_tensor.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/sampling/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/data/transforms/sampling/sample_from_axis.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/interface/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/interface/interface.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/dummy.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/experimental_loggers.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/image.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/parameters.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/log/utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/loggers/loggers.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/losses/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/losses/cross_entropy.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/average_loss.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/binary_balanced_accuracy.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/classification/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/classification/binary.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/defaults/classification/multiclass.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/collection.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/metric.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/schemas.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/metrics/structs/typings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/inference.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/module.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/typings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/utils/batch_postprocess.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/modules/utils/grad.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/networks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/networks/mlp.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/transforms/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/transforms/extract_cls_features.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/transforms/extract_patch_features.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/from_function.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/huggingface.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/models/wrappers/onnx.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/trainers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/trainers/_logging.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/trainers/_recorder.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/trainers/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/clone.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/io/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/io/dataframe.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/io/gz.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/memory.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/multiprocessing.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/operations.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/parser.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/progress_bar.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/core/utils/workers.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/batch/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/batch/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/callbacks/loggers/batch/segmentation.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/_validators.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/bach.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/camelyon16.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/crc.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/mhist.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/panda.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/patch_camelyon.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/classification/wsi.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/bcss.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/embeddings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/lits_balanced.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/segmentation/monusac.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/structs.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/datasets/wsi.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/common/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/common/resize_and_clamp.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/common/resize_and_crop.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/clamp.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/functional/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/functional/rescale_intensity.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/transforms/normalization/rescale_intensity.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/openslide.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/pil.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/backends/tiffslide.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/coordinates.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/mask.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/foreground_grid.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/grid.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/data/wsi/patching/samplers/random.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/losses/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/metrics/segmentation/BUILD +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/modules/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/abmil.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/bioptimus.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/gigapath.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/histai.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/kaiko.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/lunit.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/mahmood.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/owkin.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/pathology/paige.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/registry.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/timm/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/timm/backbones.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/universal/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/backbones/universal/vit.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/base.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/linear.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/semantic/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/semantic/common.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/semantic/with_image.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/networks/decoders/segmentation/typings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/wrappers/from_registry.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/models/wrappers/from_timm.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/colormap.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/convert.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/image.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/mat.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/src/eva/vision/utils/io/text.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/_cli.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/archives/test.txt.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_0_shape_8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_1_shape_8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_2_shape_8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_3_shape_8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_4_shape_1x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_5_shape_1x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/embeddings/tensor_7_shape_1x8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/embeddings/manifest.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_0_shape_6x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_1_shape_3x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_2_shape_1x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_3_shape_2x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_4_shape_5x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_5_shape_3x8.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_6_shape_1x8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_7_shape_6x8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_8_shape_2x8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/embeddings/tensor_9_shape_5x8_list.pt +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/core/datasets/multi-embeddings/manifest.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/images/random_bgr_32x32.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/images/random_grayscale_32x32.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b003.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b004.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b005.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Benign/b006.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is003.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is004.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is005.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/InSitu/is006.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv003.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv004.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv005.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Invasive/iv006.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n003.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n004.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n005.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bach/ICIAR2018_BACH_Challenge/Photos/Normal/n006.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/masks/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A2-A0CM-DX1_xmin18562_ymin56852_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-A7-A4SD-DX1_xmin53807_ymin11871_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A0TS-DX1_xmin118843_ymin22812_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-AR-A1AQ-DX1_xmin18171_ymin38296_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-C8-A3XY-DX1_xmin76297_ymin35510_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-D8-A1XQ-DX1_xmin61261_ymin33317_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-EW-A1P4-DX1_xmin17256_ymin35430_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-GI-A2C9-DX1_xmin20882_ymin11843_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D6-DX1_xmin115108_ymin40554_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/bcss/rgbs_colorNormalized/TCGA-OL-A5D7-DX1_xmin114443_ymin22490_MPP-0.2500.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/testing/images/test_002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/testing/reference.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/normal/normal_002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/camelyon16/training/tumor/tumor_002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Images/test_1.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Images/test_2.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Images/test_3.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_1.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_2.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Test/Labels/test_3.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_1.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_2.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_3.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Images/train_4.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_1.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_2.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_3.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/consep/Train/Labels/train_4.mat +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHVHHPH.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/ADI/ADI-SIHWWQMY.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYHKNMK.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/BACK/BACK-YYYMDTNW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYRSHLP.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/DEB/DEB-YYYTCTDR.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYWRPGDD.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/LYM/LYM-YYYTKMWW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYNWSAM.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUC/MUC-YYYRQDLW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYNVQVQ.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/MUS/MUS-YYYRWWNH.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYTTIRVD.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/NORM/NORM-YYVAFTKA.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYHNSSM.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/STR/STR-YYYWVWFG.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYSGWYW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/CRC-VAL-HE-7K/TUM/TUM-YYYYQFVN.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHVHHPH.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/ADI/ADI-SIHWWQMY.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYHKNMK.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/BACK/BACK-YYYMDTNW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYRSHLP.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/DEB/DEB-YYYTCTDR.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYWRPGDD.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/LYM/LYM-YYYTKMWW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYNWSAM.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUC/MUC-YYYRQDLW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYNVQVQ.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/MUS/MUS-YYYRWWNH.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYTTIRVD.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/NORM/NORM-YYVAFTKA.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYHNSSM.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/STR/STR-YYYWVWFG.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYSGWYW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K/TUM/TUM-YYYYQFVN.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHVHHPH.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/ADI/ADI-SIHWWQMY.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYHKNMK.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/BACK/BACK-YYYMDTNW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYRSHLP.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/DEB/DEB-YYYTCTDR.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYWRPGDD.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/LYM/LYM-YYYTKMWW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYNWSAM.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUC/MUC-YYYRQDLW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYNVQVQ.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/MUS/MUS-YYYRWWNH.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYTTIRVD.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/NORM/NORM-YYVAFTKA.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYHNSSM.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/STR/STR-YYYWVWFG.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYSGWYW.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/crc/NCT-CRC-HE-100K-NONORM/TUM/TUM-YYYYQFVN.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-31.nii +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/segmentation-45.nii +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-31.nii +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/lits/Training_Batch2/volume-45.nii +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/annotations.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaa.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aab.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aac.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aae.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aaf.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aag.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/mhist/images/MHIST_aah.png +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_1.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_1.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_2.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_2.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_3.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JG-01Z-00-DX1/TCGA-2Z-A9JG-01Z-00-DX1_3.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JN-01Z-00-DX1/TCGA-2Z-A9JN-01Z-00-DX1_1.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC Testing Data and Annotations/TCGA-2Z-A9JN-01Z-00-DX1/TCGA-2Z-A9JN-01Z-00-DX1_1.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-55-1594-01Z-00-DX1/TCGA-55-1594-01Z-00-DX1_003.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-55-1594-01Z-00-DX1/TCGA-55-1594-01Z-00-DX1_003.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-5P-A9K0-01Z-00-DX1/TCGA-5P-A9K0-01Z-00-DX1_3.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-5P-A9K0-01Z-00-DX1/TCGA-5P-A9K0-01Z-00-DX1_3.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-7760-01Z-00-DX1/TCGA-69-7760-01Z-00-DX1_001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-7760-01Z-00-DX1/TCGA-69-7760-01Z-00-DX1_001.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_001.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_001.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_002.tif +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/monusac/MoNuSAC_images_and_annotations/TCGA-69-A59K-01Z-00-DX1/TCGA-69-A59K-01Z-00-DX1_002.xml +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/0214df71ae527e2144021178c453d204.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/02d302a8d723fa00331f373091b29135.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/157565e23ba28d5a42f63f34f3dd4425.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/682a1fd346b6fff340afbdb80c2f7caf.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/8582b59b41635fa38401d1bddad66707.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/8c357871e57c5c60277230412f2d9028.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/979cf5a2fa4079eaf74343d6ff5e1b51.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/9dd40c0127d217bc4917e4db40e06e94.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/9ed8ec7bf90653bc4ca86b3ca53cbb96.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/a04310d441e8d2c7a5066627baeec9b6.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_images/fb8886059879eaac70139336cb525838.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/panda/train_with_noisy_labels.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_x.h5 +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_test_y.h5 +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_x.h5 +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_train_y.h5 +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_x.h5 +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/patch_camelyon/camelyonpatch_level_2_split_valid_y.h5 +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/meta.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/ct.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/aorta_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/brain_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/colon_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0011/segmentations/semantic_labels/masks.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/ct.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/aorta_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/brain_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/colon_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0461/segmentations/semantic_labels/masks.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/ct.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/aorta_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/brain_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/colon_small.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/total_segmentator/Totalsegmentator_dataset_v201/s0762/segmentations/semantic_labels/masks.nii.gz +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/0/a.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/0/b.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/1/a.tiff +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/assets/vision/datasets/wsi/manifest.csv +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/conftest.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/conftest.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/writers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/writers/embeddings/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/callbacks/writers/embeddings/test_classification.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/dataloaders/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/dataloaders/test_dataloader.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/test_datamodule.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datamodules/test_schemas.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/classification/test_embeddings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/datasets/classification/test_multi_embeddings.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/splitting/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/splitting/test_random.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/splitting/test_stratified.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/padding/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/padding/test_pad_2d_tensor.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/sampling/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/data/transforms/sampling/test_sample_from_axis.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/core/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/core/test_metric_module.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/core/test_schemas.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/classification/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/classification/test_binary.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/defaults/classification/test_multiclass.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/test_average_loss.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/metrics/test_binary_balanced_accuracy.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/conftest.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/test_head.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/test_inference.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/utils/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/modules/utils/test_batch_postproces.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/networks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/networks/test_mlp.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/test_from_function.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/test_huggingface.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/models/wrappers/test_onnx.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/test_cli.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/trainers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/trainers/test_recorder.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/utils/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/utils/io/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/utils/io/test_gz.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/core/utils/test_operations.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_bach.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_camelyon16.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_crc.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_mhist.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_panda.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_patch_camelyon.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/classification/test_wsi.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_bcss.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_consep.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_lits.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_lits_balanced.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/segmentation/test_monusac.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/datasets/test_wsi.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/common/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/common/test_resize_and_clamp.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/common/test_resize_and_crop.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/normalization/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/normalization/functional/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/transforms/normalization/functional/test_rescale_intensity.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/test_foreground_grid.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/test_grid.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/samplers/test_random.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/data/wsi/patching/test_mask.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/defaults/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/defaults/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/_utils.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/test_generalized_dice.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/metrics/segmentation/test_mean_iou.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/modules/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/modules/conftest.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/modules/test_semantic_segmentation.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/backbones/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/backbones/test_registry.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/segmentation/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/segmentation/conv.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/decoders/segmentation/linear.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/networks/test_abmil.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/wrappers/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/wrappers/test_backbone.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/models/wrappers/test_from_timm.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/utils/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/utils/io/__init__.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/utils/io/test_image.py +0 -0
- {kaiko_eva-0.1.5 → kaiko_eva-0.1.7}/tests/eva/vision/utils/test_convert.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: kaiko-eva
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.7
|
|
4
4
|
Summary: Evaluation Framework for oncology foundation models.
|
|
5
5
|
Keywords: machine-learning,evaluation-framework,oncology,foundation-models
|
|
6
6
|
Author-Email: Ioannis Gatopoulos <ioannis@kaiko.ai>, =?utf-8?q?Nicolas_K=C3=A4nzig?= <nicolas@kaiko.ai>, Roman Moser <roman@kaiko.ai>
|
|
@@ -227,10 +227,10 @@ Requires-Dist: onnxruntime>=1.15.1
|
|
|
227
227
|
Requires-Dist: onnx>=1.16.0
|
|
228
228
|
Requires-Dist: toolz>=0.12.1
|
|
229
229
|
Requires-Dist: rich>=13.7.1
|
|
230
|
-
Requires-Dist: torchmetrics>=1.
|
|
230
|
+
Requires-Dist: torchmetrics>=1.6.0
|
|
231
231
|
Provides-Extra: vision
|
|
232
232
|
Requires-Dist: h5py>=3.10.0; extra == "vision"
|
|
233
|
-
Requires-Dist: nibabel>=
|
|
233
|
+
Requires-Dist: nibabel>=4.0.1; extra == "vision"
|
|
234
234
|
Requires-Dist: opencv-python-headless>=4.9.0.80; extra == "vision"
|
|
235
235
|
Requires-Dist: timm>=1.0.9; extra == "vision"
|
|
236
236
|
Requires-Dist: torchvision>=0.17.0; extra == "vision"
|
|
@@ -242,7 +242,7 @@ Requires-Dist: scipy>=1.14.0; extra == "vision"
|
|
|
242
242
|
Requires-Dist: monai>=1.3.2; extra == "vision"
|
|
243
243
|
Provides-Extra: all
|
|
244
244
|
Requires-Dist: h5py>=3.10.0; extra == "all"
|
|
245
|
-
Requires-Dist: nibabel>=
|
|
245
|
+
Requires-Dist: nibabel>=4.0.1; extra == "all"
|
|
246
246
|
Requires-Dist: opencv-python-headless>=4.9.0.80; extra == "all"
|
|
247
247
|
Requires-Dist: timm>=1.0.9; extra == "all"
|
|
248
248
|
Requires-Dist: torchvision>=0.17.0; extra == "all"
|
|
@@ -6,7 +6,7 @@ build-backend = "pdm.backend"
|
|
|
6
6
|
|
|
7
7
|
[project]
|
|
8
8
|
name = "kaiko-eva"
|
|
9
|
-
version = "0.1.
|
|
9
|
+
version = "0.1.7"
|
|
10
10
|
description = "Evaluation Framework for oncology foundation models."
|
|
11
11
|
keywords = [
|
|
12
12
|
"machine-learning",
|
|
@@ -45,7 +45,7 @@ dependencies = [
|
|
|
45
45
|
"onnx>=1.16.0",
|
|
46
46
|
"toolz>=0.12.1",
|
|
47
47
|
"rich>=13.7.1",
|
|
48
|
-
"torchmetrics>=1.
|
|
48
|
+
"torchmetrics>=1.6.0",
|
|
49
49
|
]
|
|
50
50
|
|
|
51
51
|
[project.urls]
|
|
@@ -59,7 +59,7 @@ file = "LICENSE"
|
|
|
59
59
|
[project.optional-dependencies]
|
|
60
60
|
vision = [
|
|
61
61
|
"h5py>=3.10.0",
|
|
62
|
-
"nibabel>=
|
|
62
|
+
"nibabel>=4.0.1",
|
|
63
63
|
"opencv-python-headless>=4.9.0.80",
|
|
64
64
|
"timm>=1.0.9",
|
|
65
65
|
"torchvision>=0.17.0",
|
|
@@ -72,7 +72,7 @@ vision = [
|
|
|
72
72
|
]
|
|
73
73
|
all = [
|
|
74
74
|
"h5py>=3.10.0",
|
|
75
|
-
"nibabel>=
|
|
75
|
+
"nibabel>=4.0.1",
|
|
76
76
|
"opencv-python-headless>=4.9.0.80",
|
|
77
77
|
"timm>=1.0.9",
|
|
78
78
|
"torchvision>=0.17.0",
|
|
@@ -59,17 +59,20 @@ class DataLoader:
|
|
|
59
59
|
prefetch_factor: int | None = 2
|
|
60
60
|
"""Number of batches loaded in advance by each worker."""
|
|
61
61
|
|
|
62
|
-
def __call__(
|
|
62
|
+
def __call__(
|
|
63
|
+
self, dataset: datasets.TorchDataset, sampler: samplers.Sampler | None = None
|
|
64
|
+
) -> dataloader.DataLoader:
|
|
63
65
|
"""Returns the dataloader on the provided dataset.
|
|
64
66
|
|
|
65
67
|
Args:
|
|
66
68
|
dataset: dataset from which to load the data.
|
|
69
|
+
sampler: defines the strategy to draw samples from the dataset.
|
|
67
70
|
"""
|
|
68
71
|
return dataloader.DataLoader(
|
|
69
72
|
dataset=dataset,
|
|
70
73
|
batch_size=self.batch_size,
|
|
71
74
|
shuffle=self.shuffle,
|
|
72
|
-
sampler=self.sampler,
|
|
75
|
+
sampler=sampler or self.sampler,
|
|
73
76
|
batch_sampler=self.batch_sampler,
|
|
74
77
|
num_workers=self.num_workers or multiprocessing.cpu_count(),
|
|
75
78
|
collate_fn=self.collate_fn,
|
|
@@ -8,6 +8,7 @@ from typing_extensions import override
|
|
|
8
8
|
|
|
9
9
|
from eva.core.data import dataloaders as dataloaders_lib
|
|
10
10
|
from eva.core.data import datasets as datasets_lib
|
|
11
|
+
from eva.core.data import samplers as samplers_lib
|
|
11
12
|
from eva.core.data.datamodules import call, schemas
|
|
12
13
|
|
|
13
14
|
|
|
@@ -24,17 +25,20 @@ class DataModule(pl.LightningDataModule):
|
|
|
24
25
|
self,
|
|
25
26
|
datasets: schemas.DatasetsSchema | None = None,
|
|
26
27
|
dataloaders: schemas.DataloadersSchema | None = None,
|
|
28
|
+
samplers: schemas.SamplersSchema | None = None,
|
|
27
29
|
) -> None:
|
|
28
30
|
"""Initializes the datamodule.
|
|
29
31
|
|
|
30
32
|
Args:
|
|
31
33
|
datasets: The desired datasets.
|
|
32
34
|
dataloaders: The desired dataloaders.
|
|
35
|
+
samplers: The desired samplers for the dataloaders.
|
|
33
36
|
"""
|
|
34
37
|
super().__init__()
|
|
35
38
|
|
|
36
39
|
self.datasets = datasets or self.default_datasets
|
|
37
40
|
self.dataloaders = dataloaders or self.default_dataloaders
|
|
41
|
+
self.samplers = samplers or self.default_samplers
|
|
38
42
|
|
|
39
43
|
@property
|
|
40
44
|
def default_datasets(self) -> schemas.DatasetsSchema:
|
|
@@ -46,6 +50,11 @@ class DataModule(pl.LightningDataModule):
|
|
|
46
50
|
"""Returns the default dataloader schema."""
|
|
47
51
|
return schemas.DataloadersSchema()
|
|
48
52
|
|
|
53
|
+
@property
|
|
54
|
+
def default_samplers(self) -> schemas.SamplersSchema:
|
|
55
|
+
"""Returns the default samplers schema."""
|
|
56
|
+
return schemas.SamplersSchema()
|
|
57
|
+
|
|
49
58
|
@override
|
|
50
59
|
def prepare_data(self) -> None:
|
|
51
60
|
call.call_method_if_exists(self.datasets.tolist(), "prepare_data")
|
|
@@ -64,7 +73,12 @@ class DataModule(pl.LightningDataModule):
|
|
|
64
73
|
raise ValueError(
|
|
65
74
|
"Train dataloader can not be initialized as `self.datasets.train` is `None`."
|
|
66
75
|
)
|
|
67
|
-
|
|
76
|
+
if isinstance(self.datasets.train, list) and len(self.datasets.train) > 1:
|
|
77
|
+
raise ValueError("Train dataloader can not be initialized with multiple datasets.")
|
|
78
|
+
|
|
79
|
+
return self._initialize_dataloaders(
|
|
80
|
+
self.dataloaders.train, self.datasets.train, self.samplers.train
|
|
81
|
+
)[0]
|
|
68
82
|
|
|
69
83
|
@override
|
|
70
84
|
def val_dataloader(self) -> EVAL_DATALOADERS:
|
|
@@ -72,7 +86,9 @@ class DataModule(pl.LightningDataModule):
|
|
|
72
86
|
raise ValueError(
|
|
73
87
|
"Validation dataloader can not be initialized as `self.datasets.val` is `None`."
|
|
74
88
|
)
|
|
75
|
-
return self._initialize_dataloaders(
|
|
89
|
+
return self._initialize_dataloaders(
|
|
90
|
+
self.dataloaders.val, self.datasets.val, self.samplers.val
|
|
91
|
+
)
|
|
76
92
|
|
|
77
93
|
@override
|
|
78
94
|
def test_dataloader(self) -> EVAL_DATALOADERS:
|
|
@@ -80,7 +96,9 @@ class DataModule(pl.LightningDataModule):
|
|
|
80
96
|
raise ValueError(
|
|
81
97
|
"Test dataloader can not be initialized as `self.datasets.test` is `None`."
|
|
82
98
|
)
|
|
83
|
-
return self._initialize_dataloaders(
|
|
99
|
+
return self._initialize_dataloaders(
|
|
100
|
+
self.dataloaders.test, self.datasets.test, self.samplers.test
|
|
101
|
+
)
|
|
84
102
|
|
|
85
103
|
@override
|
|
86
104
|
def predict_dataloader(self) -> EVAL_DATALOADERS:
|
|
@@ -88,21 +106,40 @@ class DataModule(pl.LightningDataModule):
|
|
|
88
106
|
raise ValueError(
|
|
89
107
|
"Predict dataloader can not be initialized as `self.datasets.predict` is `None`."
|
|
90
108
|
)
|
|
91
|
-
|
|
109
|
+
if isinstance(self.datasets.predict, list) and len(self.datasets.predict) > 1:
|
|
110
|
+
# Only apply sampler to the first predict dataset (should correspond to train split)
|
|
111
|
+
train_dataloader = self._initialize_dataloaders(
|
|
112
|
+
self.dataloaders.predict, self.datasets.predict[0], self.samplers.predict
|
|
113
|
+
)
|
|
114
|
+
return train_dataloader + self._initialize_dataloaders(
|
|
115
|
+
self.dataloaders.predict, self.datasets.predict[1:]
|
|
116
|
+
)
|
|
117
|
+
|
|
118
|
+
return self._initialize_dataloaders(
|
|
119
|
+
self.dataloaders.predict, self.datasets.predict, self.samplers.predict
|
|
120
|
+
)
|
|
92
121
|
|
|
93
122
|
def _initialize_dataloaders(
|
|
94
123
|
self,
|
|
95
124
|
dataloader: dataloaders_lib.DataLoader,
|
|
96
125
|
datasets: datasets_lib.TorchDataset | List[datasets_lib.TorchDataset],
|
|
126
|
+
sampler: samplers_lib.Sampler | None = None,
|
|
97
127
|
) -> EVAL_DATALOADERS:
|
|
98
128
|
"""Initializes dataloaders from a given set of dataset.
|
|
99
129
|
|
|
100
130
|
Args:
|
|
101
131
|
dataloader: The dataloader to apply to the provided datasets.
|
|
102
132
|
datasets: The desired dataset(s) to allocate dataloader(s).
|
|
133
|
+
sampler: The sampler to use for the dataloader.
|
|
103
134
|
|
|
104
135
|
Returns:
|
|
105
136
|
A list with the dataloaders of the provided dataset(s).
|
|
106
137
|
"""
|
|
107
138
|
datasets = datasets if isinstance(datasets, list) else [datasets]
|
|
108
|
-
|
|
139
|
+
|
|
140
|
+
dataloaders = []
|
|
141
|
+
for dataset in datasets:
|
|
142
|
+
if sampler is not None and isinstance(sampler, samplers_lib.SamplerWithDataSource):
|
|
143
|
+
sampler.set_dataset(dataset) # type: ignore
|
|
144
|
+
dataloaders.append(dataloader(dataset, sampler=sampler))
|
|
145
|
+
return dataloaders
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import dataclasses
|
|
4
4
|
from typing import List
|
|
5
5
|
|
|
6
|
-
from eva.core.data import dataloaders, datasets
|
|
6
|
+
from eva.core.data import dataloaders, datasets, samplers
|
|
7
7
|
|
|
8
8
|
TRAIN_DATASET = datasets.TorchDataset | None
|
|
9
9
|
"""Train dataset."""
|
|
@@ -60,3 +60,20 @@ class DataloadersSchema:
|
|
|
60
60
|
|
|
61
61
|
predict: dataloaders.DataLoader = dataclasses.field(default_factory=dataloaders.DataLoader)
|
|
62
62
|
"""Predict dataloader."""
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
@dataclasses.dataclass(frozen=True)
|
|
66
|
+
class SamplersSchema:
|
|
67
|
+
"""Samplers schema used in DataModule."""
|
|
68
|
+
|
|
69
|
+
train: samplers.Sampler | None = None
|
|
70
|
+
"""Train sampler."""
|
|
71
|
+
|
|
72
|
+
val: samplers.Sampler | None = None
|
|
73
|
+
"""Validation sampler."""
|
|
74
|
+
|
|
75
|
+
test: samplers.Sampler | None = None
|
|
76
|
+
"""Test sampler."""
|
|
77
|
+
|
|
78
|
+
predict: samplers.Sampler | None = None
|
|
79
|
+
"""Predict sampler."""
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
"""Datasets API."""
|
|
2
2
|
|
|
3
|
-
from eva.core.data.datasets.base import Dataset
|
|
3
|
+
from eva.core.data.datasets.base import Dataset, MapDataset
|
|
4
4
|
from eva.core.data.datasets.classification import (
|
|
5
5
|
EmbeddingsClassificationDataset,
|
|
6
6
|
MultiEmbeddingsClassificationDataset,
|
|
7
7
|
)
|
|
8
8
|
from eva.core.data.datasets.dataset import TorchDataset
|
|
9
|
+
from eva.core.data.datasets.typings import DataSample
|
|
9
10
|
|
|
10
11
|
__all__ = [
|
|
11
12
|
"Dataset",
|
|
13
|
+
"MapDataset",
|
|
12
14
|
"EmbeddingsClassificationDataset",
|
|
13
15
|
"MultiEmbeddingsClassificationDataset",
|
|
14
16
|
"TorchDataset",
|
|
17
|
+
"DataSample",
|
|
15
18
|
]
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"""Base dataset class."""
|
|
2
2
|
|
|
3
|
+
import abc
|
|
4
|
+
|
|
3
5
|
from eva.core.data.datasets import dataset
|
|
4
6
|
|
|
5
7
|
|
|
@@ -51,3 +53,24 @@ class Dataset(dataset.TorchDataset):
|
|
|
51
53
|
of fit (train + validate), validate, test, or predict and it will be
|
|
52
54
|
called from every process (i.e. GPU) across all the nodes in DDP.
|
|
53
55
|
"""
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
class MapDataset(Dataset):
|
|
59
|
+
"""Abstract base class for all map-style datasets."""
|
|
60
|
+
|
|
61
|
+
@abc.abstractmethod
|
|
62
|
+
def __getitem__(self, index: int):
|
|
63
|
+
"""Retrieves the item at the given index.
|
|
64
|
+
|
|
65
|
+
Args:
|
|
66
|
+
index: Index of the item to retrieve.
|
|
67
|
+
|
|
68
|
+
Returns:
|
|
69
|
+
The data at the given index.
|
|
70
|
+
"""
|
|
71
|
+
raise NotImplementedError
|
|
72
|
+
|
|
73
|
+
@abc.abstractmethod
|
|
74
|
+
def __len__(self) -> int:
|
|
75
|
+
"""Returns the length of the dataset."""
|
|
76
|
+
raise NotImplementedError
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"""Typing definitions for the datasets module."""
|
|
2
|
+
|
|
3
|
+
from typing import Any, Dict, NamedTuple
|
|
4
|
+
|
|
5
|
+
import torch
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
class DataSample(NamedTuple):
|
|
9
|
+
"""The default input batch data scheme."""
|
|
10
|
+
|
|
11
|
+
data: torch.Tensor
|
|
12
|
+
"""The data batch."""
|
|
13
|
+
|
|
14
|
+
targets: torch.Tensor | None = None
|
|
15
|
+
"""The target batch."""
|
|
16
|
+
|
|
17
|
+
metadata: Dict[str, Any] | None = None
|
|
18
|
+
"""The associated metadata."""
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"""Data samplers API."""
|
|
2
|
+
|
|
3
|
+
from eva.core.data.samplers.classification.balanced import BalancedSampler
|
|
4
|
+
from eva.core.data.samplers.random import RandomSampler
|
|
5
|
+
from eva.core.data.samplers.sampler import Sampler, SamplerWithDataSource
|
|
6
|
+
|
|
7
|
+
__all__ = ["Sampler", "SamplerWithDataSource", "RandomSampler", "BalancedSampler"]
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"""Random class sampler for data loading."""
|
|
2
|
+
|
|
3
|
+
from collections import defaultdict
|
|
4
|
+
from typing import Dict, Iterator, List
|
|
5
|
+
|
|
6
|
+
import numpy as np
|
|
7
|
+
from typing_extensions import override
|
|
8
|
+
|
|
9
|
+
from eva.core.data import datasets
|
|
10
|
+
from eva.core.data.datasets.typings import DataSample
|
|
11
|
+
from eva.core.data.samplers.sampler import SamplerWithDataSource
|
|
12
|
+
from eva.core.utils.progress_bar import tqdm
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class BalancedSampler(SamplerWithDataSource[int]):
|
|
16
|
+
"""Balanced class sampler for data loading.
|
|
17
|
+
|
|
18
|
+
The sampler ensures that:
|
|
19
|
+
1. Each class has the same number of samples
|
|
20
|
+
2. Samples within each class are randomly selected
|
|
21
|
+
3. Samples of different classes appear in random order
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
def __init__(self, num_samples: int, replacement: bool = False, seed: int | None = 42):
|
|
25
|
+
"""Initializes the balanced sampler.
|
|
26
|
+
|
|
27
|
+
Args:
|
|
28
|
+
num_samples: The number of samples to draw per class.
|
|
29
|
+
replacement: samples are drawn on-demand with replacement if ``True``, default=``False``
|
|
30
|
+
seed: Random seed for reproducibility.
|
|
31
|
+
"""
|
|
32
|
+
self._num_samples = num_samples
|
|
33
|
+
self._replacement = replacement
|
|
34
|
+
self._class_indices: Dict[int, List[int]] = defaultdict(list)
|
|
35
|
+
self._random_generator = np.random.default_rng(seed)
|
|
36
|
+
|
|
37
|
+
def __len__(self) -> int:
|
|
38
|
+
"""Returns the total number of samples."""
|
|
39
|
+
return self._num_samples * len(self._class_indices)
|
|
40
|
+
|
|
41
|
+
def __iter__(self) -> Iterator[int]:
|
|
42
|
+
"""Creates an iterator that yields indices in a class balanced way.
|
|
43
|
+
|
|
44
|
+
Returns:
|
|
45
|
+
Iterator yielding dataset indices.
|
|
46
|
+
"""
|
|
47
|
+
indices = []
|
|
48
|
+
|
|
49
|
+
for class_idx in self._class_indices:
|
|
50
|
+
class_indices = self._class_indices[class_idx]
|
|
51
|
+
sampled_indices = self._random_generator.choice(
|
|
52
|
+
class_indices, size=self._num_samples, replace=self._replacement
|
|
53
|
+
).tolist()
|
|
54
|
+
indices.extend(sampled_indices)
|
|
55
|
+
|
|
56
|
+
self._random_generator.shuffle(indices)
|
|
57
|
+
|
|
58
|
+
return iter(indices)
|
|
59
|
+
|
|
60
|
+
@override
|
|
61
|
+
def set_dataset(self, data_source: datasets.MapDataset):
|
|
62
|
+
"""Sets the dataset and builds class indices.
|
|
63
|
+
|
|
64
|
+
Args:
|
|
65
|
+
data_source: The dataset to sample from.
|
|
66
|
+
|
|
67
|
+
Raises:
|
|
68
|
+
ValueError: If the dataset doesn't have targets or if any class has
|
|
69
|
+
fewer samples than `num_samples` and `replacement` is `False`.
|
|
70
|
+
"""
|
|
71
|
+
super().set_dataset(data_source)
|
|
72
|
+
self._make_indices()
|
|
73
|
+
|
|
74
|
+
def _make_indices(self):
|
|
75
|
+
"""Builds indices for each class in the dataset."""
|
|
76
|
+
self._class_indices.clear()
|
|
77
|
+
|
|
78
|
+
for idx in tqdm(
|
|
79
|
+
range(len(self.data_source)), desc="Fetching class indices for balanced sampler"
|
|
80
|
+
):
|
|
81
|
+
_, target, _ = DataSample(*self.data_source[idx])
|
|
82
|
+
if target is None:
|
|
83
|
+
raise ValueError("The dataset must return non-empty targets.")
|
|
84
|
+
if target.numel() != 1:
|
|
85
|
+
raise ValueError("The dataset must return a single & scalar target.")
|
|
86
|
+
|
|
87
|
+
class_idx = int(target.item())
|
|
88
|
+
self._class_indices[class_idx].append(idx)
|
|
89
|
+
|
|
90
|
+
if not self._replacement:
|
|
91
|
+
for class_idx, indices in self._class_indices.items():
|
|
92
|
+
if len(indices) < self._num_samples:
|
|
93
|
+
raise ValueError(
|
|
94
|
+
f"Class {class_idx} has only {len(indices)} samples, "
|
|
95
|
+
f"which is less than the required {self._num_samples} samples."
|
|
96
|
+
)
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Random sampler for data loading."""
|
|
2
|
+
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
from torch.utils import data
|
|
6
|
+
from typing_extensions import override
|
|
7
|
+
|
|
8
|
+
from eva.core.data import datasets
|
|
9
|
+
from eva.core.data.samplers.sampler import SamplerWithDataSource
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class RandomSampler(data.RandomSampler, SamplerWithDataSource[int]):
|
|
13
|
+
"""Samples elements randomly."""
|
|
14
|
+
|
|
15
|
+
data_source: datasets.MapDataset # type: ignore
|
|
16
|
+
|
|
17
|
+
def __init__(
|
|
18
|
+
self, replacement: bool = False, num_samples: Optional[int] = None, generator=None
|
|
19
|
+
) -> None:
|
|
20
|
+
"""Initializes the random sampler.
|
|
21
|
+
|
|
22
|
+
Args:
|
|
23
|
+
data_source: dataset to sample from
|
|
24
|
+
replacement: samples are drawn on-demand with replacement if ``True``, default=``False``
|
|
25
|
+
num_samples: number of samples to draw, default=`len(dataset)`.
|
|
26
|
+
generator: Generator used in sampling.
|
|
27
|
+
"""
|
|
28
|
+
self.replacement = replacement
|
|
29
|
+
self._num_samples = num_samples
|
|
30
|
+
self.generator = generator
|
|
31
|
+
|
|
32
|
+
@override
|
|
33
|
+
def set_dataset(self, data_source: datasets.MapDataset) -> None:
|
|
34
|
+
super().__init__(
|
|
35
|
+
data_source,
|
|
36
|
+
replacement=self.replacement,
|
|
37
|
+
num_samples=self.num_samples,
|
|
38
|
+
generator=self.generator,
|
|
39
|
+
)
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"""Core data sampler."""
|
|
2
|
+
|
|
3
|
+
from typing import Generic, TypeVar
|
|
4
|
+
|
|
5
|
+
from torch.utils import data
|
|
6
|
+
|
|
7
|
+
from eva.core.data import datasets
|
|
8
|
+
|
|
9
|
+
Sampler = data.Sampler
|
|
10
|
+
"""Core abstract data sampler class."""
|
|
11
|
+
|
|
12
|
+
T_co = TypeVar("T_co", covariant=True)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class SamplerWithDataSource(Sampler, Generic[T_co]):
|
|
16
|
+
"""A sampler base class that enables to specify the data source after initialization.
|
|
17
|
+
|
|
18
|
+
The `set_dataset` can also be overwritten to expand the functionality of the derived
|
|
19
|
+
sampler classes.
|
|
20
|
+
"""
|
|
21
|
+
|
|
22
|
+
data_source: datasets.MapDataset
|
|
23
|
+
|
|
24
|
+
def set_dataset(self, data_source: datasets.MapDataset) -> None:
|
|
25
|
+
"""Sets the dataset to sample from.
|
|
26
|
+
|
|
27
|
+
This is not done in the constructor because the dataset might not be
|
|
28
|
+
available at that time.
|
|
29
|
+
|
|
30
|
+
Args:
|
|
31
|
+
data_source: The dataset to sample from.
|
|
32
|
+
"""
|
|
33
|
+
self.data_source = data_source
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
+
from typing import List
|
|
6
|
+
|
|
5
7
|
from torch import nn
|
|
6
8
|
|
|
7
9
|
from eva.core.metrics.structs import collection, schemas
|
|
@@ -46,6 +48,7 @@ class MetricModule(nn.Module):
|
|
|
46
48
|
test: MetricModuleType | None,
|
|
47
49
|
*,
|
|
48
50
|
separator: str = "/",
|
|
51
|
+
compute_groups: bool | List[List[str]] = True,
|
|
49
52
|
) -> MetricModule:
|
|
50
53
|
"""Initializes a metric module from a list of metrics.
|
|
51
54
|
|
|
@@ -55,19 +58,25 @@ class MetricModule(nn.Module):
|
|
|
55
58
|
test: Metrics for the test stage.
|
|
56
59
|
separator: The separator between the group name of the metric
|
|
57
60
|
and the metric itself.
|
|
61
|
+
compute_groups: All metrics in a compute group share the same metric state
|
|
62
|
+
and are therefore only different in their compute step. To disable this
|
|
63
|
+
behavior, set to `False`.
|
|
58
64
|
"""
|
|
59
65
|
return cls(
|
|
60
|
-
train=_create_collection_from_metrics(
|
|
61
|
-
|
|
62
|
-
|
|
66
|
+
train=_create_collection_from_metrics(
|
|
67
|
+
train, prefix="train" + separator, compute_groups=compute_groups
|
|
68
|
+
),
|
|
69
|
+
val=_create_collection_from_metrics(
|
|
70
|
+
val, prefix="val" + separator, compute_groups=compute_groups
|
|
71
|
+
),
|
|
72
|
+
test=_create_collection_from_metrics(
|
|
73
|
+
test, prefix="test" + separator, compute_groups=compute_groups
|
|
74
|
+
),
|
|
63
75
|
)
|
|
64
76
|
|
|
65
77
|
@classmethod
|
|
66
78
|
def from_schema(
|
|
67
|
-
cls,
|
|
68
|
-
schema: schemas.MetricsSchema,
|
|
69
|
-
*,
|
|
70
|
-
separator: str = "/",
|
|
79
|
+
cls, schema: schemas.MetricsSchema, *, separator: str = "/", compute_groups: bool = True
|
|
71
80
|
) -> MetricModule:
|
|
72
81
|
"""Initializes a metric module from the metrics schema.
|
|
73
82
|
|
|
@@ -75,12 +84,16 @@ class MetricModule(nn.Module):
|
|
|
75
84
|
schema: The dataclass metric schema.
|
|
76
85
|
separator: The separator between the group name of the metric
|
|
77
86
|
and the metric itself.
|
|
87
|
+
compute_groups: All metrics in a compute group share the same metric state
|
|
88
|
+
and are therefore only different in their compute step. To disable this
|
|
89
|
+
behavior, set to `False`.
|
|
78
90
|
"""
|
|
79
91
|
return cls.from_metrics(
|
|
80
92
|
train=schema.training_metrics,
|
|
81
93
|
val=schema.evaluation_metrics,
|
|
82
94
|
test=schema.evaluation_metrics,
|
|
83
95
|
separator=separator,
|
|
96
|
+
compute_groups=compute_groups,
|
|
84
97
|
)
|
|
85
98
|
|
|
86
99
|
@property
|
|
@@ -100,16 +113,24 @@ class MetricModule(nn.Module):
|
|
|
100
113
|
|
|
101
114
|
|
|
102
115
|
def _create_collection_from_metrics(
|
|
103
|
-
metrics: MetricModuleType | None,
|
|
116
|
+
metrics: MetricModuleType | None,
|
|
117
|
+
*,
|
|
118
|
+
prefix: str | None = None,
|
|
119
|
+
compute_groups: bool | List[List[str]] = True,
|
|
104
120
|
) -> collection.MetricCollection | None:
|
|
105
121
|
"""Create a unique collection from metrics.
|
|
106
122
|
|
|
107
123
|
Args:
|
|
108
124
|
metrics: The desired metrics.
|
|
109
125
|
prefix: A prefix to added to the collection.
|
|
126
|
+
compute_groups: All metrics in a compute group share the same metric state
|
|
127
|
+
and are therefore only different in their compute step. To disable this
|
|
128
|
+
behavior, set to `False`.
|
|
110
129
|
|
|
111
130
|
Returns:
|
|
112
131
|
The resulted metrics collection.
|
|
113
132
|
"""
|
|
114
|
-
metrics_collection = collection.MetricCollection(
|
|
133
|
+
metrics_collection = collection.MetricCollection(
|
|
134
|
+
metrics=metrics or [], prefix=prefix, compute_groups=compute_groups # type: ignore
|
|
135
|
+
)
|
|
115
136
|
return metrics_collection.clone()
|
|
@@ -2,7 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
from eva.core.models.modules import HeadModule, InferenceModule
|
|
4
4
|
from eva.core.models.networks import MLP
|
|
5
|
-
from eva.core.models.wrappers import
|
|
5
|
+
from eva.core.models.wrappers import (
|
|
6
|
+
BaseModel,
|
|
7
|
+
HuggingFaceModel,
|
|
8
|
+
ModelFromFunction,
|
|
9
|
+
ONNXModel,
|
|
10
|
+
TorchHubModel,
|
|
11
|
+
)
|
|
6
12
|
|
|
7
13
|
__all__ = [
|
|
8
14
|
"HeadModule",
|
|
@@ -12,4 +18,5 @@ __all__ = [
|
|
|
12
18
|
"HuggingFaceModel",
|
|
13
19
|
"ModelFromFunction",
|
|
14
20
|
"ONNXModel",
|
|
21
|
+
"TorchHubModel",
|
|
15
22
|
]
|
|
@@ -12,7 +12,7 @@ from typing_extensions import override
|
|
|
12
12
|
from eva.core.metrics import structs as metrics_lib
|
|
13
13
|
from eva.core.models.modules import module
|
|
14
14
|
from eva.core.models.modules.typings import INPUT_BATCH, MODEL_TYPE
|
|
15
|
-
from eva.core.models.modules.utils import batch_postprocess, grad
|
|
15
|
+
from eva.core.models.modules.utils import batch_postprocess, grad, submodule_state_dict
|
|
16
16
|
from eva.core.utils import parser
|
|
17
17
|
|
|
18
18
|
|
|
@@ -32,6 +32,7 @@ class HeadModule(module.ModelModule):
|
|
|
32
32
|
lr_scheduler: LRSchedulerCallable = lr_scheduler.ConstantLR,
|
|
33
33
|
metrics: metrics_lib.MetricsSchema | None = None,
|
|
34
34
|
postprocess: batch_postprocess.BatchPostProcess | None = None,
|
|
35
|
+
save_head_only: bool = True,
|
|
35
36
|
) -> None:
|
|
36
37
|
"""Initializes the neural net head module.
|
|
37
38
|
|
|
@@ -48,6 +49,8 @@ class HeadModule(module.ModelModule):
|
|
|
48
49
|
postprocess: A list of helper functions to apply after the
|
|
49
50
|
loss and before the metrics calculation to the model
|
|
50
51
|
predictions and targets.
|
|
52
|
+
save_head_only: Whether to save only the head during checkpointing. If False,
|
|
53
|
+
will also save the backbone (not recommended when frozen).
|
|
51
54
|
"""
|
|
52
55
|
super().__init__(metrics=metrics, postprocess=postprocess)
|
|
53
56
|
|
|
@@ -56,6 +59,7 @@ class HeadModule(module.ModelModule):
|
|
|
56
59
|
self.backbone = backbone
|
|
57
60
|
self.optimizer = optimizer
|
|
58
61
|
self.lr_scheduler = lr_scheduler
|
|
62
|
+
self.save_head_only = save_head_only
|
|
59
63
|
|
|
60
64
|
@override
|
|
61
65
|
def configure_model(self) -> Any:
|
|
@@ -72,6 +76,20 @@ class HeadModule(module.ModelModule):
|
|
|
72
76
|
lr_scheduler = self.lr_scheduler(optimizer)
|
|
73
77
|
return {"optimizer": optimizer, "lr_scheduler": lr_scheduler}
|
|
74
78
|
|
|
79
|
+
@override
|
|
80
|
+
def on_save_checkpoint(self, checkpoint: Dict[str, Any]) -> None:
|
|
81
|
+
if self.save_head_only:
|
|
82
|
+
checkpoint["state_dict"] = submodule_state_dict(checkpoint["state_dict"], "head")
|
|
83
|
+
super().on_save_checkpoint(checkpoint)
|
|
84
|
+
|
|
85
|
+
@override
|
|
86
|
+
def on_load_checkpoint(self, checkpoint: Dict[str, Any]) -> None:
|
|
87
|
+
if self.save_head_only and self.backbone is not None:
|
|
88
|
+
checkpoint["state_dict"].update(
|
|
89
|
+
{f"backbone.{k}": v for k, v in self.backbone.state_dict().items()}
|
|
90
|
+
)
|
|
91
|
+
super().on_load_checkpoint(checkpoint)
|
|
92
|
+
|
|
75
93
|
@override
|
|
76
94
|
def forward(self, tensor: torch.Tensor, *args: Any, **kwargs: Any) -> torch.Tensor:
|
|
77
95
|
features = tensor if self.backbone is None else self.backbone(tensor)
|
|
@@ -2,5 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
from eva.core.models.modules.utils import grad
|
|
4
4
|
from eva.core.models.modules.utils.batch_postprocess import BatchPostProcess
|
|
5
|
+
from eva.core.models.modules.utils.checkpoint import submodule_state_dict
|
|
5
6
|
|
|
6
|
-
__all__ = ["grad", "BatchPostProcess"]
|
|
7
|
+
__all__ = ["grad", "BatchPostProcess", "submodule_state_dict"]
|