From ed63499fb5c833db77bd1dce937cf4b7f554c2b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 17:08:58 +0000 Subject: [PATCH 01/45] feat: neutrophils --- configs/preprocessing/neutrophils.yaml | 16 ++++ preprocessing/neutrophils.py | 123 +++++++++++++++++++++++++ 2 files changed, 139 insertions(+) create mode 100644 configs/preprocessing/neutrophils.yaml create mode 100644 preprocessing/neutrophils.py diff --git a/configs/preprocessing/neutrophils.yaml b/configs/preprocessing/neutrophils.yaml new file mode 100644 index 0000000..e98cfc1 --- /dev/null +++ b/configs/preprocessing/neutrophils.yaml @@ -0,0 +1,16 @@ +# @package _global_ + +output_dir: ${project_dir}/neutrophils/${dataset.institution} + +model: + weights_url: https://github.com/junfrankohara/neutrophils_detection/releases/download/model/detection_model.pt + confidence: 0.1 + +dataloader: + batch_size: 256 + num_workers: 8 + persistent_workers: True + +metadata: + run_name: '📂 Neutrophils: ${dataset.institution}' + description: Neutrophils detection preprocessing for ${dataset.institution} institution \ No newline at end of file diff --git a/preprocessing/neutrophils.py b/preprocessing/neutrophils.py new file mode 100644 index 0000000..058d971 --- /dev/null +++ b/preprocessing/neutrophils.py @@ -0,0 +1,123 @@ +import tempfile +from pathlib import Path +from typing import cast + +import hydra +import pandas as pd +import torch +from ml.data.datasets import TilesPredict +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger +from torch.utils.data import DataLoader +from tqdm import tqdm + + +class NeutrophilDetector(torch.nn.Module): + def __init__(self, confidence: float, weights_url: str) -> None: + super().__init__() + with tempfile.NamedTemporaryFile(suffix=".pt") as temp_file: + torch.hub.download_url_to_file(weights_url, temp_file.name) + self.model = cast( + "torch.nn.Module", + torch.hub.load("ultralytics/yolov5", "custom", path=temp_file.name), + ) + self.model.conf = confidence + + def forward(self, x: torch.Tensor) -> torch.Tensor: + return self.model(x) + + +def save_neutrophils( + x0: torch.Tensor, + y0: torch.Tensor, + x1: torch.Tensor, + y1: torch.Tensor, + probability: torch.Tensor, + neutrophils_path: Path, +) -> None: + neutrophils_path.parent.mkdir(parents=True, exist_ok=True) + + df = pd.DataFrame( + { + "x0": x0.numpy(), + "y0": y0.numpy(), + "x1": x1.numpy(), + "y1": y1.numpy(), + "probability": probability.numpy(), + } + ) + + df.to_parquet(neutrophils_path, index=False, engine="pyarrow") + + +@with_cli_args(["+preprocessing=neutrophils"]) +@hydra.main(config_path="../configs", config_name="preprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + dest = Path(config.output_dir) + device = torch.device("cuda" if torch.cuda.is_available() else "cpu") + neutrophil_detector = NeutrophilDetector(**config.model) + neutrophil_detector = neutrophil_detector.to(device) + + with torch.no_grad(): + dataset = TilesPredict( + config.dataset.mlflow_uris.tiling.values(), to_tensor=False + ) + + for slide_dataset in tqdm(dataset.generate_datasets()): + slide_name = str(slide_dataset.slide_metadata["name"]) + neutrophils_path = (dest / slide_name).with_suffix(".parquet") + + try: + slide_tiles_dataloader = DataLoader( + slide_dataset, + batch_size=config.dataloader.batch_size, + num_workers=config.dataloader.num_workers, + persistent_workers=config.dataloader.persistent_workers, + collate_fn=lambda batch: ( + [x for x, _ in batch], + [m for _, m in batch], + ), + ) + + x0, y0, x1, y1, probability = [], [], [], [], [] + + for x, metadata in slide_tiles_dataloader: + result = neutrophil_detector(x) + + result.xyxy = cast("list[torch.Tensor]", result.xyxy) + for m, xyxy in zip(metadata, result.xyxy, strict=True): + if xyxy.numel() == 0: + continue + xyxy = xyxy.cpu() + x0.append(xyxy[:, 0] + m["x"]) + y0.append(xyxy[:, 1] + m["y"]) + x1.append(xyxy[:, 2] + m["x"]) + y1.append(xyxy[:, 3] + m["y"]) + probability.append(xyxy[:, 4]) + + if len(x0) == 0: + empty = torch.empty((0,), dtype=torch.float32) + save_neutrophils( + empty, empty, empty, empty, empty, neutrophils_path + ) + continue + + save_neutrophils( + torch.concat(x0), + torch.concat(y0), + torch.concat(x1), + torch.concat(y1), + torch.concat(probability), + neutrophils_path, + ) + + except Exception as e: + print(f"Error processing slide {slide_name}: {e}") + + logger.log_artifacts(local_dir=str(dest), artifact_path="neutrophils") + + +if __name__ == "__main__": + main() From 0adec3fc60f66dfb64c846d341927a987cf7b31a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 17:10:43 +0000 Subject: [PATCH 02/45] refactor: project_name -> ml --- {project_name => ml}/__init__.py | 0 {project_name => ml}/__main__.py | 4 ++-- {project_name => ml}/data/README.md | 0 ml/data/__init__.py | 4 ++++ {project_name => ml}/data/data_module.py | 2 +- {project_name => ml}/modeling/README.md | 0 {project_name => ml}/modeling/__init__.py | 0 {project_name => ml}/project_name_model.py | 2 +- {project_name => ml}/typing.py | 0 project_name/data/__init__.py | 4 ---- 10 files changed, 8 insertions(+), 8 deletions(-) rename {project_name => ml}/__init__.py (100%) rename {project_name => ml}/__main__.py (90%) rename {project_name => ml}/data/README.md (100%) create mode 100644 ml/data/__init__.py rename {project_name => ml}/data/data_module.py (97%) rename {project_name => ml}/modeling/README.md (100%) rename {project_name => ml}/modeling/__init__.py (100%) rename {project_name => ml}/project_name_model.py (97%) rename {project_name => ml}/typing.py (100%) delete mode 100644 project_name/data/__init__.py diff --git a/project_name/__init__.py b/ml/__init__.py similarity index 100% rename from project_name/__init__.py rename to ml/__init__.py diff --git a/project_name/__main__.py b/ml/__main__.py similarity index 90% rename from project_name/__main__.py rename to ml/__main__.py index 035ecc3..6252c56 100644 --- a/project_name/__main__.py +++ b/ml/__main__.py @@ -6,8 +6,8 @@ from omegaconf import DictConfig, OmegaConf from rationai.mlkit import Trainer, autolog -from project_name.data import DataModule -from project_name.project_name_model import ProjectNameModel +from ml.data import DataModule +from ml.project_name_model import ProjectNameModel OmegaConf.register_new_resolver( diff --git a/project_name/data/README.md b/ml/data/README.md similarity index 100% rename from project_name/data/README.md rename to ml/data/README.md diff --git a/ml/data/__init__.py b/ml/data/__init__.py new file mode 100644 index 0000000..e7058ee --- /dev/null +++ b/ml/data/__init__.py @@ -0,0 +1,4 @@ +from ml.data.data_module import DataModule + + +__all__ = ["DataModule"] diff --git a/project_name/data/data_module.py b/ml/data/data_module.py similarity index 97% rename from project_name/data/data_module.py rename to ml/data/data_module.py index d3b8e06..f803ac5 100644 --- a/project_name/data/data_module.py +++ b/ml/data/data_module.py @@ -5,7 +5,7 @@ from omegaconf import DictConfig from torch.utils.data import DataLoader -from project_name.typing import Input +from ml.typing import Input class DataModule(LightningDataModule): diff --git a/project_name/modeling/README.md b/ml/modeling/README.md similarity index 100% rename from project_name/modeling/README.md rename to ml/modeling/README.md diff --git a/project_name/modeling/__init__.py b/ml/modeling/__init__.py similarity index 100% rename from project_name/modeling/__init__.py rename to ml/modeling/__init__.py diff --git a/project_name/project_name_model.py b/ml/project_name_model.py similarity index 97% rename from project_name/project_name_model.py rename to ml/project_name_model.py index 85e50bc..403260d 100644 --- a/project_name/project_name_model.py +++ b/ml/project_name_model.py @@ -3,7 +3,7 @@ from torch.optim.optimizer import Optimizer from torchmetrics import MetricCollection -from project_name.typing import Input, Outputs +from ml.typing import Input, Outputs class ProjectNameModel(LightningModule): diff --git a/project_name/typing.py b/ml/typing.py similarity index 100% rename from project_name/typing.py rename to ml/typing.py diff --git a/project_name/data/__init__.py b/project_name/data/__init__.py deleted file mode 100644 index cee3ad5..0000000 --- a/project_name/data/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -from project_name.data.data_module import DataModule - - -__all__ = ["DataModule"] From 517d919090f95f55cf5d9d346df9458f87319e20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:10:03 +0000 Subject: [PATCH 03/45] chore: new mlkit --- pyproject.toml | 4 +- uv.lock | 332 ++++++++++++++++++++++++++++++++++++++++++++----- 2 files changed, 301 insertions(+), 35 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index b8b57a8..57a09c6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,7 +8,7 @@ license = { file = "LICENSE" } dependencies = [ "aiohttp>=3.13.2", "lightning>=2.5.6", - "mlflow<3.0.0", + "mlflow", "omegaconf>=2.3.0", "openpyxl>=3.1.5", "pandas>=2.3.3", @@ -29,7 +29,7 @@ dev = ["mypy", "ruff", "ipykernel"] job = ["rationai-kube-jobs"] [tool.uv.sources] -rationai-mlkit = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git" } +rationai-mlkit = { git = "https://github.com/RationAI/mlkit.git" } rationai-masks = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/masks.git" } rationai-tiling = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/tiling.git" } rationai-kube-jobs = { git = "ssh://git@gitlab.ics.muni.cz/rationai/infrastructure/kube-jobs" } diff --git a/uv.lock b/uv.lock index dd32999..1a8d7ec 100644 --- a/uv.lock +++ b/uv.lock @@ -329,6 +329,45 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d1/e2/f05240d2c39a1ed228d8328a78b6f44cd695f7ef47beb3e684cf93604f86/contourpy-1.3.3-cp312-cp312-win_arm64.whl", hash = "sha256:07ce5ed73ecdc4a03ffe3e1b3e3c1166db35ae7584be76f65dbbe28a7791b0cc", size = 193655, upload-time = "2025-07-26T12:01:37.999Z" }, ] +[[package]] +name = "cryptography" +version = "46.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/47/93/ac8f3d5ff04d54bc814e961a43ae5b0b146154c89c61b47bb07557679b18/cryptography-46.0.7.tar.gz", hash = "sha256:e4cfd68c5f3e0bfdad0d38e023239b96a2fe84146481852dffbcca442c245aa5", size = 750652, upload-time = "2026-04-08T01:57:54.692Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/5d/4a8f770695d73be252331e60e526291e3df0c9b27556a90a6b47bccca4c2/cryptography-46.0.7-cp311-abi3-macosx_10_9_universal2.whl", hash = "sha256:ea42cbe97209df307fdc3b155f1b6fa2577c0defa8f1f7d3be7d31d189108ad4", size = 7179869, upload-time = "2026-04-08T01:56:17.157Z" }, + { url = "https://files.pythonhosted.org/packages/5f/45/6d80dc379b0bbc1f9d1e429f42e4cb9e1d319c7a8201beffd967c516ea01/cryptography-46.0.7-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b36a4695e29fe69215d75960b22577197aca3f7a25b9cf9d165dcfe9d80bc325", size = 4275492, upload-time = "2026-04-08T01:56:19.36Z" }, + { url = "https://files.pythonhosted.org/packages/4a/9a/1765afe9f572e239c3469f2cb429f3ba7b31878c893b246b4b2994ffe2fe/cryptography-46.0.7-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5ad9ef796328c5e3c4ceed237a183f5d41d21150f972455a9d926593a1dcb308", size = 4426670, upload-time = "2026-04-08T01:56:21.415Z" }, + { url = "https://files.pythonhosted.org/packages/8f/3e/af9246aaf23cd4ee060699adab1e47ced3f5f7e7a8ffdd339f817b446462/cryptography-46.0.7-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:73510b83623e080a2c35c62c15298096e2a5dc8d51c3b4e1740211839d0dea77", size = 4280275, upload-time = "2026-04-08T01:56:23.539Z" }, + { url = "https://files.pythonhosted.org/packages/0f/54/6bbbfc5efe86f9d71041827b793c24811a017c6ac0fd12883e4caa86b8ed/cryptography-46.0.7-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cbd5fb06b62bd0721e1170273d3f4d5a277044c47ca27ee257025146c34cbdd1", size = 4928402, upload-time = "2026-04-08T01:56:25.624Z" }, + { url = "https://files.pythonhosted.org/packages/2d/cf/054b9d8220f81509939599c8bdbc0c408dbd2bdd41688616a20731371fe0/cryptography-46.0.7-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:420b1e4109cc95f0e5700eed79908cef9268265c773d3a66f7af1eef53d409ef", size = 4459985, upload-time = "2026-04-08T01:56:27.309Z" }, + { url = "https://files.pythonhosted.org/packages/f9/46/4e4e9c6040fb01c7467d47217d2f882daddeb8828f7df800cb806d8a2288/cryptography-46.0.7-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:24402210aa54baae71d99441d15bb5a1919c195398a87b563df84468160a65de", size = 3990652, upload-time = "2026-04-08T01:56:29.095Z" }, + { url = "https://files.pythonhosted.org/packages/36/5f/313586c3be5a2fbe87e4c9a254207b860155a8e1f3cca99f9910008e7d08/cryptography-46.0.7-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:8a469028a86f12eb7d2fe97162d0634026d92a21f3ae0ac87ed1c4a447886c83", size = 4279805, upload-time = "2026-04-08T01:56:30.928Z" }, + { url = "https://files.pythonhosted.org/packages/69/33/60dfc4595f334a2082749673386a4d05e4f0cf4df8248e63b2c3437585f2/cryptography-46.0.7-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:9694078c5d44c157ef3162e3bf3946510b857df5a3955458381d1c7cfc143ddb", size = 4892883, upload-time = "2026-04-08T01:56:32.614Z" }, + { url = "https://files.pythonhosted.org/packages/c7/0b/333ddab4270c4f5b972f980adef4faa66951a4aaf646ca067af597f15563/cryptography-46.0.7-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:42a1e5f98abb6391717978baf9f90dc28a743b7d9be7f0751a6f56a75d14065b", size = 4459756, upload-time = "2026-04-08T01:56:34.306Z" }, + { url = "https://files.pythonhosted.org/packages/d2/14/633913398b43b75f1234834170947957c6b623d1701ffc7a9600da907e89/cryptography-46.0.7-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:91bbcb08347344f810cbe49065914fe048949648f6bd5c2519f34619142bbe85", size = 4410244, upload-time = "2026-04-08T01:56:35.977Z" }, + { url = "https://files.pythonhosted.org/packages/10/f2/19ceb3b3dc14009373432af0c13f46aa08e3ce334ec6eff13492e1812ccd/cryptography-46.0.7-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5d1c02a14ceb9148cc7816249f64f623fbfee39e8c03b3650d842ad3f34d637e", size = 4674868, upload-time = "2026-04-08T01:56:38.034Z" }, + { url = "https://files.pythonhosted.org/packages/1a/bb/a5c213c19ee94b15dfccc48f363738633a493812687f5567addbcbba9f6f/cryptography-46.0.7-cp311-abi3-win32.whl", hash = "sha256:d23c8ca48e44ee015cd0a54aeccdf9f09004eba9fc96f38c911011d9ff1bd457", size = 3026504, upload-time = "2026-04-08T01:56:39.666Z" }, + { url = "https://files.pythonhosted.org/packages/2b/02/7788f9fefa1d060ca68717c3901ae7fffa21ee087a90b7f23c7a603c32ae/cryptography-46.0.7-cp311-abi3-win_amd64.whl", hash = "sha256:397655da831414d165029da9bc483bed2fe0e75dde6a1523ec2fe63f3c46046b", size = 3488363, upload-time = "2026-04-08T01:56:41.893Z" }, + { url = "https://files.pythonhosted.org/packages/a7/7f/cd42fc3614386bc0c12f0cb3c4ae1fc2bbca5c9662dfed031514911d513d/cryptography-46.0.7-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:462ad5cb1c148a22b2e3bcc5ad52504dff325d17daf5df8d88c17dda1f75f2a4", size = 7165618, upload-time = "2026-04-08T01:57:10.645Z" }, + { url = "https://files.pythonhosted.org/packages/a5/d0/36a49f0262d2319139d2829f773f1b97ef8aef7f97e6e5bd21455e5a8fb5/cryptography-46.0.7-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:84d4cced91f0f159a7ddacad249cc077e63195c36aac40b4150e7a57e84fffe7", size = 4270628, upload-time = "2026-04-08T01:57:12.885Z" }, + { url = "https://files.pythonhosted.org/packages/8a/6c/1a42450f464dda6ffbe578a911f773e54dd48c10f9895a23a7e88b3e7db5/cryptography-46.0.7-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:128c5edfe5e5938b86b03941e94fac9ee793a94452ad1365c9fc3f4f62216832", size = 4415405, upload-time = "2026-04-08T01:57:14.923Z" }, + { url = "https://files.pythonhosted.org/packages/9a/92/4ed714dbe93a066dc1f4b4581a464d2d7dbec9046f7c8b7016f5286329e2/cryptography-46.0.7-cp38-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:5e51be372b26ef4ba3de3c167cd3d1022934bc838ae9eaad7e644986d2a3d163", size = 4272715, upload-time = "2026-04-08T01:57:16.638Z" }, + { url = "https://files.pythonhosted.org/packages/b7/e6/a26b84096eddd51494bba19111f8fffe976f6a09f132706f8f1bf03f51f7/cryptography-46.0.7-cp38-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:cdf1a610ef82abb396451862739e3fc93b071c844399e15b90726ef7470eeaf2", size = 4918400, upload-time = "2026-04-08T01:57:19.021Z" }, + { url = "https://files.pythonhosted.org/packages/c7/08/ffd537b605568a148543ac3c2b239708ae0bd635064bab41359252ef88ed/cryptography-46.0.7-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:1d25aee46d0c6f1a501adcddb2d2fee4b979381346a78558ed13e50aa8a59067", size = 4450634, upload-time = "2026-04-08T01:57:21.185Z" }, + { url = "https://files.pythonhosted.org/packages/16/01/0cd51dd86ab5b9befe0d031e276510491976c3a80e9f6e31810cce46c4ad/cryptography-46.0.7-cp38-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:cdfbe22376065ffcf8be74dc9a909f032df19bc58a699456a21712d6e5eabfd0", size = 3985233, upload-time = "2026-04-08T01:57:22.862Z" }, + { url = "https://files.pythonhosted.org/packages/92/49/819d6ed3a7d9349c2939f81b500a738cb733ab62fbecdbc1e38e83d45e12/cryptography-46.0.7-cp38-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:abad9dac36cbf55de6eb49badd4016806b3165d396f64925bf2999bcb67837ba", size = 4271955, upload-time = "2026-04-08T01:57:24.814Z" }, + { url = "https://files.pythonhosted.org/packages/80/07/ad9b3c56ebb95ed2473d46df0847357e01583f4c52a85754d1a55e29e4d0/cryptography-46.0.7-cp38-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:935ce7e3cfdb53e3536119a542b839bb94ec1ad081013e9ab9b7cfd478b05006", size = 4879888, upload-time = "2026-04-08T01:57:26.88Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c7/201d3d58f30c4c2bdbe9b03844c291feb77c20511cc3586daf7edc12a47b/cryptography-46.0.7-cp38-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:35719dc79d4730d30f1c2b6474bd6acda36ae2dfae1e3c16f2051f215df33ce0", size = 4449961, upload-time = "2026-04-08T01:57:29.068Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ef/649750cbf96f3033c3c976e112265c33906f8e462291a33d77f90356548c/cryptography-46.0.7-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:7bbc6ccf49d05ac8f7d7b5e2e2c33830d4fe2061def88210a126d130d7f71a85", size = 4401696, upload-time = "2026-04-08T01:57:31.029Z" }, + { url = "https://files.pythonhosted.org/packages/41/52/a8908dcb1a389a459a29008c29966c1d552588d4ae6d43f3a1a4512e0ebe/cryptography-46.0.7-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a1529d614f44b863a7b480c6d000fe93b59acee9c82ffa027cfadc77521a9f5e", size = 4664256, upload-time = "2026-04-08T01:57:33.144Z" }, + { url = "https://files.pythonhosted.org/packages/4b/fa/f0ab06238e899cc3fb332623f337a7364f36f4bb3f2534c2bb95a35b132c/cryptography-46.0.7-cp38-abi3-win32.whl", hash = "sha256:f247c8c1a1fb45e12586afbb436ef21ff1e80670b2861a90353d9b025583d246", size = 3013001, upload-time = "2026-04-08T01:57:34.933Z" }, + { url = "https://files.pythonhosted.org/packages/d2/f1/00ce3bde3ca542d1acd8f8cfa38e446840945aa6363f9b74746394b14127/cryptography-46.0.7-cp38-abi3-win_amd64.whl", hash = "sha256:506c4ff91eff4f82bdac7633318a526b1d1309fc07ca76a3ad182cb5b686d6d3", size = 3472985, upload-time = "2026-04-08T01:57:36.714Z" }, +] + [[package]] name = "cuda-bindings" version = "12.9.4" @@ -371,6 +410,31 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/08/71/ac3a16e620e4de7cea10695d7e926a6b00d7790208a932d81dd0b3136772/databricks_sdk-0.80.0-py3-none-any.whl", hash = "sha256:e654b08b945b4fc9651cfe65389035382c0885d74435123a0e4860d007fc963b", size = 788323, upload-time = "2026-01-22T20:30:49.372Z" }, ] +[[package]] +name = "datasets" +version = "4.8.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, + { name = "filelock" }, + { name = "fsspec", extra = ["http"] }, + { name = "httpx" }, + { name = "huggingface-hub" }, + { name = "multiprocess" }, + { name = "numpy" }, + { name = "packaging" }, + { name = "pandas" }, + { name = "pyarrow" }, + { name = "pyyaml" }, + { name = "requests" }, + { name = "tqdm" }, + { name = "xxhash" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/34/14cd8e76f907f7d4dca2334cfeec9f81d30fd15c25a015f99aaea694eaed/datasets-4.8.5.tar.gz", hash = "sha256:0f0c1c3d56ffff2c93b2f4c63c95bac94f3d7e8621aea2a2a576275233bba772", size = 605649, upload-time = "2026-04-27T15:43:57.384Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/99/00f3196036501b53032c4b1ab8337a0b978dee832ed276dae3815df4e8b5/datasets-4.8.5-py3-none-any.whl", hash = "sha256:5079900781719c0e063a8efdd2cd95a31ad0c63209178669cd23cf1b926149ff", size = 528973, upload-time = "2026-04-27T15:43:53.702Z" }, +] + [[package]] name = "debugpy" version = "1.8.19" @@ -393,6 +457,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4e/8c/f3147f5c4b73e7550fe5f9352eaa956ae838d5c51eb58e7a25b9f3e2643b/decorator-5.2.1-py3-none-any.whl", hash = "sha256:d316bb415a2d9e2d2b3abcc4084c6502fc09240e292cd76a76afc106a1c8e04a", size = 9190, upload-time = "2025-02-24T04:41:32.565Z" }, ] +[[package]] +name = "dill" +version = "0.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/81/e1/56027a71e31b02ddc53c7d65b01e68edf64dea2932122fe7746a516f75d5/dill-0.4.1.tar.gz", hash = "sha256:423092df4182177d4d8ba8290c8a5b640c66ab35ec7da59ccfa00f6fa3eea5fa", size = 187315, upload-time = "2026-01-19T02:36:56.85Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/77/dc8c558f7593132cf8fefec57c4f60c83b16941c574ac5f619abb3ae7933/dill-0.4.1-py3-none-any.whl", hash = "sha256:1e1ce33e978ae97fcfcff5638477032b801c46c7c65cf717f95fbc2248f79a9d", size = 120019, upload-time = "2026-01-19T02:36:55.663Z" }, +] + [[package]] name = "docker" version = "7.1.0" @@ -487,6 +560,19 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/f9/7f9263c5695f4bd0023734af91bedb2ff8209e8de6ead162f35d8dc762fd/flask-3.1.2-py3-none-any.whl", hash = "sha256:ca1d8112ec8a6158cc29ea4858963350011b5c846a414cdb7a954aa9e967d03c", size = 103308, upload-time = "2025-08-19T21:03:19.499Z" }, ] +[[package]] +name = "flask-cors" +version = "6.0.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/70/74/0fc0fa68d62f21daef41017dafab19ef4b36551521260987eb3a5394c7ba/flask_cors-6.0.2.tar.gz", hash = "sha256:6e118f3698249ae33e429760db98ce032a8bf9913638d085ca0f4c5534ad2423", size = 13472, upload-time = "2025-12-12T20:31:42.861Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4f/af/72ad54402e599152de6d067324c46fe6a4f531c7c65baf7e96c63db55eaf/flask_cors-6.0.2-py3-none-any.whl", hash = "sha256:e57544d415dfd7da89a9564e1e3a9e515042df76e12130641ca6f3f2f03b699a", size = 13257, upload-time = "2025-12-12T20:31:41.3Z" }, +] + [[package]] name = "fonttools" version = "4.61.1" @@ -684,6 +770,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, ] +[[package]] +name = "hf-xet" +version = "1.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/92/ec9ad04d0b5728dca387a45af7bc98fbb0d73b2118759f5f6038b61a57e8/hf_xet-1.4.3.tar.gz", hash = "sha256:8ddedb73c8c08928c793df2f3401ec26f95be7f7e516a7bee2fbb546f6676113", size = 670477, upload-time = "2026-03-31T22:40:07.874Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ac/9f/9c23e4a447b8f83120798f9279d0297a4d1360bdbf59ef49ebec78fe2545/hf_xet-1.4.3-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:d0da85329eaf196e03e90b84c2d0aca53bd4573d097a75f99609e80775f98025", size = 3805048, upload-time = "2026-03-31T22:39:53.105Z" }, + { url = "https://files.pythonhosted.org/packages/0b/f8/7aacb8e5f4a7899d39c787b5984e912e6c18b11be136ef13947d7a66d265/hf_xet-1.4.3-cp37-abi3-macosx_11_0_arm64.whl", hash = "sha256:e23717ce4186b265f69afa66e6f0069fe7efbf331546f5c313d00e123dc84583", size = 3562178, upload-time = "2026-03-31T22:39:51.295Z" }, + { url = "https://files.pythonhosted.org/packages/df/9a/a24b26dc8a65f0ecc0fe5be981a19e61e7ca963b85e062c083f3a9100529/hf_xet-1.4.3-cp37-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fc360b70c815bf340ed56c7b8c63aacf11762a4b099b2fe2c9bd6d6068668c08", size = 4212320, upload-time = "2026-03-31T22:39:42.922Z" }, + { url = "https://files.pythonhosted.org/packages/53/60/46d493db155d2ee2801b71fb1b0fd67696359047fdd8caee2c914cc50c79/hf_xet-1.4.3-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:39f2d2e9654cd9b4319885733993807aab6de9dfbd34c42f0b78338d6617421f", size = 3991546, upload-time = "2026-03-31T22:39:41.335Z" }, + { url = "https://files.pythonhosted.org/packages/bc/f5/067363e1c96c6b17256910830d1b54099d06287e10f4ec6ec4e7e08371fc/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:49ad8a8cead2b56051aa84d7fce3e1335efe68df3cf6c058f22a65513885baac", size = 4193200, upload-time = "2026-03-31T22:40:01.936Z" }, + { url = "https://files.pythonhosted.org/packages/42/4b/53951592882d9c23080c7644542fda34a3813104e9e11fa1a7d82d419cb8/hf_xet-1.4.3-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:7716d62015477a70ea272d2d68cd7cad140f61c52ee452e133e139abfe2c17ba", size = 4429392, upload-time = "2026-03-31T22:40:03.492Z" }, + { url = "https://files.pythonhosted.org/packages/8a/21/75a6c175b4e79662ad8e62f46a40ce341d8d6b206b06b4320d07d55b188c/hf_xet-1.4.3-cp37-abi3-win_amd64.whl", hash = "sha256:6b591fcad34e272a5b02607485e4f2a1334aebf1bc6d16ce8eb1eb8978ac2021", size = 3677359, upload-time = "2026-03-31T22:40:13.619Z" }, + { url = "https://files.pythonhosted.org/packages/8a/7c/44314ecd0e89f8b2b51c9d9e5e7a60a9c1c82024ac471d415860557d3cd8/hf_xet-1.4.3-cp37-abi3-win_arm64.whl", hash = "sha256:7c2c7e20bcfcc946dc67187c203463f5e932e395845d098cc2a93f5b67ca0b47", size = 3533664, upload-time = "2026-03-31T22:40:12.152Z" }, +] + [[package]] name = "httpcore" version = "1.0.9" @@ -712,6 +814,35 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/2a/39/e50c7c3a983047577ee07d2a9e53faf5a69493943ec3f6a384bdc792deb2/httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad", size = 73517, upload-time = "2024-12-06T15:37:21.509Z" }, ] +[[package]] +name = "huey" +version = "2.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/29/3428d52eb8e85025e264a291641a9f9d6407cc1e51d1b630f6ac5815999a/huey-2.6.0.tar.gz", hash = "sha256:8d11f8688999d65266af1425b831f6e3773e99415027177b8734b0ffd5e251f6", size = 221068, upload-time = "2026-01-06T03:01:02.055Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/34/fae9ac8f1c3a552fd3f7ff652b94c78d219dedc5fce0c0a4232457760a00/huey-2.6.0-py3-none-any.whl", hash = "sha256:1b9df9d370b49c6d5721ba8a01ac9a787cf86b3bdc584e4679de27b920395c3f", size = 76951, upload-time = "2026-01-06T03:01:00.808Z" }, +] + +[[package]] +name = "huggingface-hub" +version = "1.13.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "filelock" }, + { name = "fsspec" }, + { name = "hf-xet", marker = "platform_machine == 'AMD64' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'arm64' or platform_machine == 'x86_64'" }, + { name = "httpx" }, + { name = "packaging" }, + { name = "pyyaml" }, + { name = "tqdm" }, + { name = "typer" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/89/ff/ec7ed2eb43bd7ce8bb2233d109cc235c3e807ffe5e469dc09db261fac05e/huggingface_hub-1.13.0.tar.gz", hash = "sha256:f6df2dac5abe82ce2fe05873d10d5ff47bc677d616a2f521f4ee26db9415d9d0", size = 781788, upload-time = "2026-04-30T11:57:33.858Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/db/4b1cdae9460ae1f3ca020cd767f013430ce23eb1d9c890ae3a0609b38d26/huggingface_hub-1.13.0-py3-none-any.whl", hash = "sha256:e942cb50d6a08dd5306688b1ac05bda157fd2fcc88b63dae405f7bd0d3234005", size = 660643, upload-time = "2026-04-30T11:57:31.802Z" }, +] + [[package]] name = "hydra-core" version = "1.3.2" @@ -1067,15 +1198,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/87/fb/99f81ac72ae23375f22b7afdb7642aba97c00a713c217124420147681a2f/mako-1.3.10-py3-none-any.whl", hash = "sha256:baef24a52fc4fc514a0887ac600f9f1cff3d82c61d4d700a1fa84d597b88db59", size = 78509, upload-time = "2025-04-10T12:50:53.297Z" }, ] -[[package]] -name = "markdown" -version = "3.10.1" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/b7/b1/af95bcae8549f1f3fd70faacb29075826a0d689a27f232e8cee315efa053/markdown-3.10.1.tar.gz", hash = "sha256:1c19c10bd5c14ac948c53d0d762a04e2fa35a6d58a6b7b1e6bfcbe6fefc0001a", size = 365402, upload-time = "2026-01-21T18:09:28.206Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/59/1b/6ef961f543593969d25b2afe57a3564200280528caa9bd1082eecdd7b3bc/markdown-3.10.1-py3-none-any.whl", hash = "sha256:867d788939fe33e4b736426f5b9f651ad0c0ae0ecf89df0ca5d1176c70812fe3", size = 107684, upload-time = "2026-01-21T18:09:27.203Z" }, -] - [[package]] name = "markdown-it-py" version = "4.0.0" @@ -1156,34 +1278,38 @@ wheels = [ [[package]] name = "mlflow" -version = "2.22.4" +version = "3.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ + { name = "aiohttp" }, { name = "alembic" }, + { name = "cryptography" }, { name = "docker" }, { name = "flask" }, + { name = "flask-cors" }, { name = "graphene" }, { name = "gunicorn", marker = "sys_platform != 'win32'" }, - { name = "jinja2" }, - { name = "markdown" }, + { name = "huey" }, { name = "matplotlib" }, { name = "mlflow-skinny" }, + { name = "mlflow-tracing" }, { name = "numpy" }, { name = "pandas" }, { name = "pyarrow" }, { name = "scikit-learn" }, { name = "scipy" }, + { name = "skops" }, { name = "sqlalchemy" }, { name = "waitress", marker = "sys_platform == 'win32'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/cd/56/4aaea65472c25dd463ed0855c1d673749cd9050e5c8214642d17434b441a/mlflow-2.22.4.tar.gz", hash = "sha256:cb8cb3b82ec696dc613bcc347b023c20fc0ed6a82170b36d0ded01d3ba06da97", size = 28377569, upload-time = "2025-12-05T13:20:56.105Z" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/e3/b2148a6d6f38731d3dda49a7e46cf6932a458aa0aa5414b80e6e7251fa1d/mlflow-3.12.0.tar.gz", hash = "sha256:227ee31c6abf7ae3b3c38d4ca87c356e107578740c1efee89da43f2a5b9e3b47", size = 9939137, upload-time = "2026-05-05T10:28:58.312Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/cb/0b/bf491b0604f2608e97b53b8cc33220fd20855ac4762d18d0ddf0d3ae3a6c/mlflow-2.22.4-py3-none-any.whl", hash = "sha256:c37b312060737cc9197c4a956c730fa6c292580787fe464efe736c339e87649a", size = 29004180, upload-time = "2025-12-05T13:20:52.703Z" }, + { url = "https://files.pythonhosted.org/packages/7e/f8/47f28975c1c1b70d351fa19c5aef21cef5ae1e1aca36bd1858798384bdbb/mlflow-3.12.0-py3-none-any.whl", hash = "sha256:e1c28ed4c48557cc52c766f17f1ca5826753ddf241d43f30f99c45f7ea6b3ce0", size = 10625639, upload-time = "2026-05-05T10:28:55.777Z" }, ] [[package]] name = "mlflow-skinny" -version = "2.22.4" +version = "3.12.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "cachetools" }, @@ -1194,19 +1320,41 @@ dependencies = [ { name = "gitpython" }, { name = "importlib-metadata" }, { name = "opentelemetry-api" }, + { name = "opentelemetry-proto" }, { name = "opentelemetry-sdk" }, { name = "packaging" }, { name = "protobuf" }, { name = "pydantic" }, + { name = "python-dotenv" }, { name = "pyyaml" }, { name = "requests" }, { name = "sqlparse" }, + { name = "starlette" }, { name = "typing-extensions" }, { name = "uvicorn" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/4e/73/de6cfdd1bd48fd896c33844b863931bf7215f9401e01e4554019aca0fa94/mlflow_skinny-2.22.4.tar.gz", hash = "sha256:d75ef4c6f38b745d84aef4d6dcb26331c8a3c784ee5a284ec89186398c8d927b", size = 5892192, upload-time = "2025-12-05T12:50:03.045Z" } +sdist = { url = "https://files.pythonhosted.org/packages/0f/c0/9cbe24b4abcbadb3a3cdab65bfd552b6b75de64374b477abac89190d25d0/mlflow_skinny-3.12.0.tar.gz", hash = "sha256:74d27066bc9553d281e0c31d25f07deb39dbe99d190e4f7c257703e5c8ee6d10", size = 2723866, upload-time = "2026-05-05T10:28:46.388Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/95/05/2df60fab37881c490e9364ea697a6c3a78d3b593fde2d9332a75f8cdf1f8/mlflow_skinny-3.12.0-py3-none-any.whl", hash = "sha256:0498f3697abcabcc6204c432ef179840f6a7a34ce123837c98c1913064fda6dd", size = 3261903, upload-time = "2026-05-05T10:28:44.24Z" }, +] + +[[package]] +name = "mlflow-tracing" +version = "3.12.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "databricks-sdk" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-proto" }, + { name = "opentelemetry-sdk" }, + { name = "packaging" }, + { name = "protobuf" }, + { name = "pydantic" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a5/13/d32fe4cca53dde68f09fd38c545ea709e8565fd7c2ffd7c5eff99e504aaf/mlflow_tracing-3.12.0.tar.gz", hash = "sha256:8702a34a1d4f1517ba904d716f5a8fca4675e6526f7d164d02bdaabececa2d80", size = 1352412, upload-time = "2026-05-05T10:28:51.115Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/f9/d1/549a995e261ca708c60fe0b63dfa4d1842fc58b04eb9c78cd678aebe1e7e/mlflow_skinny-2.22.4-py3-none-any.whl", hash = "sha256:3622115f53806d99fc42b0c2e45f225b16948584feeec7f233e484f08fe6c7f2", size = 6270862, upload-time = "2025-12-05T12:50:00.406Z" }, + { url = "https://files.pythonhosted.org/packages/a5/bf/e22b778addbe19a7a912400c37a197ee9cdebc1641e3b0a3882c30da6ee4/mlflow_tracing-3.12.0-py3-none-any.whl", hash = "sha256:c6072553f47b42505dc7ee62946688a4a0dde8f06b78fbc60e946397b20e1518", size = 1618720, upload-time = "2026-05-05T10:28:48.999Z" }, ] [[package]] @@ -1262,6 +1410,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/da/7d22601b625e241d4f23ef1ebff8acfc60da633c9e7e7922e24d10f592b3/multidict-6.7.0-py3-none-any.whl", hash = "sha256:394fc5c42a333c9ffc3e421a4c85e08580d990e08b99f6bf35b4132114c5dcb3", size = 12317, upload-time = "2025-10-06T14:52:29.272Z" }, ] +[[package]] +name = "multiprocess" +version = "0.70.19" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "dill" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a2/f2/e783ac7f2aeeed14e9e12801f22529cc7e6b7ab80928d6dcce4e9f00922d/multiprocess-0.70.19.tar.gz", hash = "sha256:952021e0e6c55a4a9fe4cd787895b86e239a40e76802a789d6305398d3975897", size = 2079989, upload-time = "2026-01-19T06:47:39.744Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/45/8004d1e6b9185c1a444d6b55ac5682acf9d98035e54386d967366035a03a/multiprocess-0.70.19-py310-none-any.whl", hash = "sha256:97404393419dcb2a8385910864eedf47a3cadf82c66345b44f036420eb0b5d87", size = 134948, upload-time = "2026-01-19T06:47:32.325Z" }, + { url = "https://files.pythonhosted.org/packages/86/c2/dec9722dc3474c164a0b6bcd9a7ed7da542c98af8cabce05374abab35edd/multiprocess-0.70.19-py311-none-any.whl", hash = "sha256:928851ae7973aea4ce0eaf330bbdafb2e01398a91518d5c8818802845564f45c", size = 144457, upload-time = "2026-01-19T06:47:33.711Z" }, + { url = "https://files.pythonhosted.org/packages/71/70/38998b950a97ea279e6bd657575d22d1a2047256caf707d9a10fbce4f065/multiprocess-0.70.19-py312-none-any.whl", hash = "sha256:3a56c0e85dd5025161bac5ce138dcac1e49174c7d8e74596537e729fd5c53c28", size = 150281, upload-time = "2026-01-19T06:47:35.037Z" }, + { url = "https://files.pythonhosted.org/packages/7e/82/69e539c4c2027f1e1697e09aaa2449243085a0edf81ae2c6341e84d769b6/multiprocess-0.70.19-py39-none-any.whl", hash = "sha256:0d4b4397ed669d371c81dcd1ef33fd384a44d6c3de1bd0ca7ac06d837720d3c5", size = 133477, upload-time = "2026-01-19T06:47:38.619Z" }, +] + [[package]] name = "mypy" version = "1.19.1" @@ -1560,6 +1723,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cf/df/d3f1ddf4bb4cb50ed9b1139cc7b1c54c34a1e7ce8fd1b9a37c0d1551a6bd/opentelemetry_api-1.39.1-py3-none-any.whl", hash = "sha256:2edd8463432a7f8443edce90972169b195e7d6a05500cd29e6d13898187c9950", size = 66356, upload-time = "2025-12-11T13:32:17.304Z" }, ] +[[package]] +name = "opentelemetry-proto" +version = "1.41.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/e8/633c6d8a9c8840338b105907e55c32d3da1983abab5e52f899f72a82c3d1/opentelemetry_proto-1.41.1.tar.gz", hash = "sha256:4b9d2eb631237ea43b80e16c073af438554e32bc7e9e3f8ca4a9582f900020e5", size = 45670, upload-time = "2026-04-24T13:15:49.768Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/1e/5cd77035e3e82070e2265a63a760f715aacd3cb16dddc7efee913f297fcc/opentelemetry_proto-1.41.1-py3-none-any.whl", hash = "sha256:0496713b804d127a4147e32849fbaf5683fac8ee98550e8e7679cd706c289720", size = 72076, upload-time = "2026-04-24T13:15:32.542Z" }, +] + [[package]] name = "opentelemetry-sdk" version = "1.39.1" @@ -1675,6 +1850,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/cb/28/3bfe2fa5a7b9c46fe7e13c97bda14c895fb10fa2ebf1d0abb90e0cea7ee1/platformdirs-4.5.1-py3-none-any.whl", hash = "sha256:d03afa3963c806a9bed9d5125c8f4cb2fdaf74a55ab60e5d59b3fde758104d31", size = 18731, upload-time = "2025-12-05T13:52:56.823Z" }, ] +[[package]] +name = "prettytable" +version = "3.17.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/45/b0847d88d6cfeb4413566738c8bbf1e1995fad3d42515327ff32cc1eb578/prettytable-3.17.0.tar.gz", hash = "sha256:59f2590776527f3c9e8cf9fe7b66dd215837cca96a9c39567414cbc632e8ddb0", size = 67892, upload-time = "2025-11-14T17:33:20.212Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ee/8c/83087ebc47ab0396ce092363001fa37c17153119ee282700c0713a195853/prettytable-3.17.0-py3-none-any.whl", hash = "sha256:aad69b294ddbe3e1f95ef8886a060ed1666a0b83018bbf56295f6f226c43d287", size = 34433, upload-time = "2025-11-14T17:33:19.093Z" }, +] + [[package]] name = "prompt-toolkit" version = "3.0.52" @@ -1762,17 +1949,17 @@ wheels = [ [[package]] name = "pyarrow" -version = "19.0.1" +version = "23.0.1" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/7f/09/a9046344212690f0632b9c709f9bf18506522feb333c894d0de81d62341a/pyarrow-19.0.1.tar.gz", hash = "sha256:3bf266b485df66a400f282ac0b6d1b500b9d2ae73314a153dbe97d6d5cc8a99e", size = 1129437, upload-time = "2025-02-18T18:55:57.027Z" } +sdist = { url = "https://files.pythonhosted.org/packages/88/22/134986a4cc224d593c1afde5494d18ff629393d74cc2eddb176669f234a4/pyarrow-23.0.1.tar.gz", hash = "sha256:b8c5873e33440b2bc2f4a79d2b47017a89c5a24116c055625e6f2ee50523f019", size = 1167336, upload-time = "2026-02-16T10:14:12.39Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/78/b4/94e828704b050e723f67d67c3535cf7076c7432cd4cf046e4bb3b96a9c9d/pyarrow-19.0.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:80b2ad2b193e7d19e81008a96e313fbd53157945c7be9ac65f44f8937a55427b", size = 30670749, upload-time = "2025-02-18T18:53:00.062Z" }, - { url = "https://files.pythonhosted.org/packages/7e/3b/4692965e04bb1df55e2c314c4296f1eb12b4f3052d4cf43d29e076aedf66/pyarrow-19.0.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:ee8dec072569f43835932a3b10c55973593abc00936c202707a4ad06af7cb294", size = 32128007, upload-time = "2025-02-18T18:53:06.581Z" }, - { url = "https://files.pythonhosted.org/packages/22/f7/2239af706252c6582a5635c35caa17cb4d401cd74a87821ef702e3888957/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d5d1ec7ec5324b98887bdc006f4d2ce534e10e60f7ad995e7875ffa0ff9cb14", size = 41144566, upload-time = "2025-02-18T18:53:11.958Z" }, - { url = "https://files.pythonhosted.org/packages/fb/e3/c9661b2b2849cfefddd9fd65b64e093594b231b472de08ff658f76c732b2/pyarrow-19.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3ad4c0eb4e2a9aeb990af6c09e6fa0b195c8c0e7b272ecc8d4d2b6574809d34", size = 42202991, upload-time = "2025-02-18T18:53:17.678Z" }, - { url = "https://files.pythonhosted.org/packages/fe/4f/a2c0ed309167ef436674782dfee4a124570ba64299c551e38d3fdaf0a17b/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:d383591f3dcbe545f6cc62daaef9c7cdfe0dff0fb9e1c8121101cabe9098cfa6", size = 40507986, upload-time = "2025-02-18T18:53:26.263Z" }, - { url = "https://files.pythonhosted.org/packages/27/2e/29bb28a7102a6f71026a9d70d1d61df926887e36ec797f2e6acfd2dd3867/pyarrow-19.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:b4c4156a625f1e35d6c0b2132635a237708944eb41df5fbe7d50f20d20c17832", size = 42087026, upload-time = "2025-02-18T18:53:33.063Z" }, - { url = "https://files.pythonhosted.org/packages/16/33/2a67c0f783251106aeeee516f4806161e7b481f7d744d0d643d2f30230a5/pyarrow-19.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:5bd1618ae5e5476b7654c7b55a6364ae87686d4724538c24185bbb2952679960", size = 25250108, upload-time = "2025-02-18T18:53:38.462Z" }, + { url = "https://files.pythonhosted.org/packages/9a/4b/4166bb5abbfe6f750fc60ad337c43ecf61340fa52ab386da6e8dbf9e63c4/pyarrow-23.0.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:f4b0dbfa124c0bb161f8b5ebb40f1a680b70279aa0c9901d44a2b5a20806039f", size = 34214575, upload-time = "2026-02-16T10:09:56.225Z" }, + { url = "https://files.pythonhosted.org/packages/e1/da/3f941e3734ac8088ea588b53e860baeddac8323ea40ce22e3d0baa865cc9/pyarrow-23.0.1-cp312-cp312-macosx_12_0_x86_64.whl", hash = "sha256:7707d2b6673f7de054e2e83d59f9e805939038eebe1763fe811ee8fa5c0cd1a7", size = 35832540, upload-time = "2026-02-16T10:10:03.428Z" }, + { url = "https://files.pythonhosted.org/packages/88/7c/3d841c366620e906d54430817531b877ba646310296df42ef697308c2705/pyarrow-23.0.1-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:86ff03fb9f1a320266e0de855dee4b17da6794c595d207f89bba40d16b5c78b9", size = 44470940, upload-time = "2026-02-16T10:10:10.704Z" }, + { url = "https://files.pythonhosted.org/packages/2c/a5/da83046273d990f256cb79796a190bbf7ec999269705ddc609403f8c6b06/pyarrow-23.0.1-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:813d99f31275919c383aab17f0f455a04f5a429c261cc411b1e9a8f5e4aaaa05", size = 47586063, upload-time = "2026-02-16T10:10:17.95Z" }, + { url = "https://files.pythonhosted.org/packages/5b/3c/b7d2ebcff47a514f47f9da1e74b7949138c58cfeb108cdd4ee62f43f0cf3/pyarrow-23.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:bf5842f960cddd2ef757d486041d57c96483efc295a8c4a0e20e704cbbf39c67", size = 48173045, upload-time = "2026-02-16T10:10:25.363Z" }, + { url = "https://files.pythonhosted.org/packages/43/b2/b40961262213beaba6acfc88698eb773dfce32ecdf34d19291db94c2bd73/pyarrow-23.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564baf97c858ecc03ec01a41062e8f4698abc3e6e2acd79c01c2e97880a19730", size = 50621741, upload-time = "2026-02-16T10:10:33.477Z" }, + { url = "https://files.pythonhosted.org/packages/f6/70/1fdda42d65b28b078e93d75d371b2185a61da89dda4def8ba6ba41ebdeb4/pyarrow-23.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:07deae7783782ac7250989a7b2ecde9b3c343a643f82e8a4df03d93b633006f0", size = 27620678, upload-time = "2026-02-16T10:10:39.31Z" }, ] [[package]] @@ -1918,6 +2105,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, ] +[[package]] +name = "python-dotenv" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/82/ed/0301aeeac3e5353ef3d94b6ec08bbcabd04a72018415dcb29e588514bba8/python_dotenv-1.2.2.tar.gz", hash = "sha256:2c371a91fbd7ba082c2c1dc1f8bf89ca22564a087c2c287cd9b662adde799cf3", size = 50135, upload-time = "2026-03-01T16:00:26.196Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0b/d7/1959b9648791274998a9c3526f6d0ec8fd2233e4d4acce81bbae76b44b2a/python_dotenv-1.2.2-py3-none-any.whl", hash = "sha256:1d8214789a24de455a8b8bd8ae6fe3c6b69a5e3d64aa8a8e5d68e694bbcb285a", size = 22101, upload-time = "2026-03-01T16:00:25.09Z" }, +] + [[package]] name = "pytorch-lightning" version = "2.6.0" @@ -2053,15 +2249,18 @@ dependencies = [ [[package]] name = "rationai-mlkit" -version = "0.3.1" -source = { git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git#06989b33e7313b898df86e93a212e9d15c20104f" } +version = "0.4.1" +source = { git = "https://github.com/RationAI/mlkit.git#51d1b52cdf4800962cf6f97a1cba1f72d78b8aa4" } dependencies = [ + { name = "datasets" }, { name = "gitpython" }, { name = "hydra-core" }, { name = "lightning" }, { name = "mlflow" }, { name = "openslide-python" }, + { name = "pyarrow" }, { name = "rationai-masks" }, + { name = "ratiopath" }, { name = "torch" }, ] @@ -2094,7 +2293,7 @@ dependencies = [ [[package]] name = "ratiopath" -version = "1.1.2" +version = "1.4.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "albumentations" }, @@ -2114,9 +2313,9 @@ dependencies = [ { name = "torch" }, { name = "zarr" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/97/14/72b3dd3441d269bb0dd26339331246c350bb526fd8980ec4677869d8a4a8/ratiopath-1.1.2.tar.gz", hash = "sha256:1dd40c120a8621318a0ab64fcff5f34cffed24382c0a383ba9812546d395aee1", size = 30236, upload-time = "2026-03-04T14:36:26.233Z" } +sdist = { url = "https://files.pythonhosted.org/packages/c8/7d/8c558909df8ea0076d9652f429f96c585ba44e5b35d2a6ecfac1a65b42db/ratiopath-1.4.0.tar.gz", hash = "sha256:f0f70d24803a2710ff799c33d5da1afc6411b22e971cc9f39f9ef688763c32f8", size = 44897, upload-time = "2026-04-23T08:47:57.719Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/c4/16/c92047625c3f850542fe7e0d194aa188ae1e51446b8dde969758e8df55d4/ratiopath-1.1.2-py3-none-any.whl", hash = "sha256:8a9973c7450ee6fba106d976cd465ac6e77bd0c169eef03f04f813a9ad4966a0", size = 37247, upload-time = "2026-03-04T14:36:27.177Z" }, + { url = "https://files.pythonhosted.org/packages/5b/66/ad97cec2f91a9d595bb92c8f8b15da449bc4295581c4fcedac0fe1be2c98/ratiopath-1.4.0-py3-none-any.whl", hash = "sha256:11ea0de7bab5749922911b4f89a33c25905b5a641e9990efcffaea44ebded0cc", size = 51037, upload-time = "2026-04-23T08:47:58.469Z" }, ] [[package]] @@ -2359,6 +2558,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ec/bf/cb6c1c505cb31e818e900b9312d514f381fbfa5c4363edfce0fcc4f8c1a4/shapely-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:743044b4cfb34f9a67205cee9279feaf60ba7d02e69febc2afc609047cb49179", size = 1722861, upload-time = "2025-09-24T13:50:43.35Z" }, ] +[[package]] +name = "shellingham" +version = "1.5.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/15/8b3609fd3830ef7b27b655beb4b4e9c62313a4e8da8c676e142cc210d58e/shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de", size = 10310, upload-time = "2023-10-24T04:13:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/f9/0595336914c5619e5f28a1fb793285925a8cd4b432c9da0a987836c7f822/shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686", size = 9755, upload-time = "2023-10-24T04:13:38.866Z" }, +] + [[package]] name = "simsimd" version = "6.5.13" @@ -2390,6 +2598,22 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, ] +[[package]] +name = "skops" +version = "0.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "numpy" }, + { name = "packaging" }, + { name = "prettytable" }, + { name = "scikit-learn" }, + { name = "scipy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c8/9f/46448c4e41a4c5ee4bdb74b3758af48e5ff0faeffe40f4e301bfc7594894/skops-0.14.0.tar.gz", hash = "sha256:6c8c0e047f691a3a582c3258943eecafcbfd79c8c7eef66260f3703e363254f0", size = 608084, upload-time = "2026-04-20T18:23:55.336Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/0e/3ae19fa941522cd98e119762e7181d371c8dba0b2d72bfaf9522692e329c/skops-0.14.0-py3-none-any.whl", hash = "sha256:60a5db78a9db46ccee2139a0ba13ab5afb1c96f4749b382e75a371291bbe3e36", size = 132198, upload-time = "2026-04-20T18:23:54.018Z" }, +] + [[package]] name = "smmap" version = "5.0.2" @@ -2623,6 +2847,21 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ab/a8/cdf8b3e4c98132f965f88c2313a4b493266832ad47fb52f23d14d4f86bb5/triton-3.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:74caf5e34b66d9f3a429af689c1c7128daba1d8208df60e81106b115c00d6fca", size = 188266850, upload-time = "2026-01-20T16:00:43.041Z" }, ] +[[package]] +name = "typer" +version = "0.25.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-doc" }, + { name = "click" }, + { name = "rich" }, + { name = "shellingham" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e4/51/9aed62104cea109b820bbd6c14245af756112017d309da813ef107d42e7e/typer-0.25.1.tar.gz", hash = "sha256:9616eb8853a09ffeabab1698952f33c6f29ffdbceb4eaeecf571880e8d7664cc", size = 122276, upload-time = "2026-04-30T19:32:16.964Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/f9/2b3ff4e56e5fa7debfaf9eb135d0da96f3e9a1d5b27222223c7296336e5f/typer-0.25.1-py3-none-any.whl", hash = "sha256:75caa44ed46a03fb2dab8808753ffacdbfea88495e74c85a28c5eefcf5f39c89", size = 58409, upload-time = "2026-04-30T19:32:18.271Z" }, +] + [[package]] name = "typing-extensions" version = "4.15.0" @@ -2690,13 +2929,13 @@ job = [ requires-dist = [ { name = "aiohttp", specifier = ">=3.13.2" }, { name = "lightning", specifier = ">=2.5.6" }, - { name = "mlflow", specifier = "<3.0.0" }, + { name = "mlflow" }, { name = "omegaconf", specifier = ">=2.3.0" }, { name = "openpyxl", specifier = ">=3.1.5" }, { name = "pandas", specifier = ">=2.3.3" }, { name = "pyvips", specifier = "<3.1" }, { name = "rationai-masks", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/masks.git" }, - { name = "rationai-mlkit", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/mlkit.git" }, + { name = "rationai-mlkit", git = "https://github.com/RationAI/mlkit.git" }, { name = "rationai-sdk", git = "https://github.com/RationAI/rationai-sdk-python.git" }, { name = "rationai-tiling", git = "https://gitlab.ics.muni.cz/rationai/digital-pathology/libraries/tiling.git" }, { name = "ratiopath", specifier = ">=1.1.2" }, @@ -2775,6 +3014,33 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ad/e4/8d97cca767bcc1be76d16fb76951608305561c6e056811587f36cb1316a8/werkzeug-3.1.5-py3-none-any.whl", hash = "sha256:5111e36e91086ece91f93268bb39b4a35c1e6f1feac762c9c822ded0a4e322dc", size = 225025, upload-time = "2026-01-08T17:49:21.859Z" }, ] +[[package]] +name = "xxhash" +version = "3.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/2f/e183a1b407002f5af81822bee18b61cdb94b8670208ef34734d8d2b8ebe9/xxhash-3.7.0.tar.gz", hash = "sha256:6cc4eefbb542a5d6ffd6d70ea9c502957c925e800f998c5630ecc809d6702bae", size = 82022, upload-time = "2026-04-25T11:10:32.553Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/8a/51a14cdef4728c6c2337db8a7d8704422cc65676d9199d77215464c880af/xxhash-3.7.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:082c87bfdd2b9f457606c7a4a53457f4c4b48b0cdc48de0277f4349d79bb3d7a", size = 33357, upload-time = "2026-04-25T11:06:20.44Z" }, + { url = "https://files.pythonhosted.org/packages/b9/1b/0c2c933809421ffd9bf42b59315552c143c755db5d9a816b2f1ae273e884/xxhash-3.7.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5e7ce913b61f35b0c1c839a49ac9c8e75dd8d860150688aed353b0ce1bf409d8", size = 30869, upload-time = "2026-04-25T11:06:21.989Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/89d5fdd6ee12d70ba99451de46dd0e8010167468dcd913ec855653f4dd50/xxhash-3.7.0-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3beb1de3b1e9694fcdd853e570ee64c631c7062435d2f8c69c1adf809bc086f0", size = 194100, upload-time = "2026-04-25T11:06:23.586Z" }, + { url = "https://files.pythonhosted.org/packages/87/ee/2f9f2ed993e77206d1e66991290a1ebe22e843351ca3ebec8e49e01ba186/xxhash-3.7.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3e7b689c3bce16699efcf736066f5c6cc4472c3840fe4b22bd8279daf4abdac", size = 212977, upload-time = "2026-04-25T11:06:25.019Z" }, + { url = "https://files.pythonhosted.org/packages/de/60/5a91644615a9e9d4e42c2e9925f1908e3a24e4e691d9de7340d565bea024/xxhash-3.7.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a6545e6b409e3d5cbafc850fb84c55a1ca26ed15a6b11e3bf07a0e0cd84517c8", size = 236373, upload-time = "2026-04-25T11:06:26.482Z" }, + { url = "https://files.pythonhosted.org/packages/22/c0/f3a9384eaaed9d14d4d062a5d953aa0da489bfe9747877aa994caa87cd0b/xxhash-3.7.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:31ab1461c77a11461d703c88eb949e132a1c6515933cf675d97ec680f4bd18de", size = 212229, upload-time = "2026-04-25T11:06:28.065Z" }, + { url = "https://files.pythonhosted.org/packages/2e/67/02f07a9fd79726804190f2172c4894c3ed9a4ebccaca05653c84beb58025/xxhash-3.7.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7c4d596b7676f811172687ec567cbafb9e4dea2f9be1bbb4f622410cb7f40f40", size = 445462, upload-time = "2026-04-25T11:06:30.048Z" }, + { url = "https://files.pythonhosted.org/packages/40/37/558f5a90c0672fc9b4402dc25d87ac5b7406616e8969430c9ca4e52ee74d/xxhash-3.7.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:13805f0461cba0a857924e70ff91ae6d52d2598f79a884e788db80532614a4a1", size = 193932, upload-time = "2026-04-25T11:06:31.857Z" }, + { url = "https://files.pythonhosted.org/packages/d5/90/aaa09cd58661d32044dbbad7df55bbe22a623032b810e7ed3b8c569a2a6f/xxhash-3.7.0-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1d398f372496152f1c6933a33566373f8d1b37b98b8c9d608fa6edc0976f23b2", size = 284807, upload-time = "2026-04-25T11:06:33.697Z" }, + { url = "https://files.pythonhosted.org/packages/d6/f3/53df3719ab127a02c174f0c1c74924fcd110866e89c966bc7909cfa8fa84/xxhash-3.7.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d610aa62cdb7d4d497740741772a24a794903bf3e79eaa51d2e800082abe11e5", size = 210445, upload-time = "2026-04-25T11:06:35.488Z" }, + { url = "https://files.pythonhosted.org/packages/72/33/d219975c0e8b6fa2eb9ccd486fe47e21bf1847985b878dd2fbc3126e0d5c/xxhash-3.7.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:073c23900a9fbf3d26616c17c830db28af9803677cd5b33aea3224d824111514", size = 241273, upload-time = "2026-04-25T11:06:37.24Z" }, + { url = "https://files.pythonhosted.org/packages/3e/50/49b1afe610eb3964cedcb90a4d4c3d46a261ee8669cbd4f060652619ae3c/xxhash-3.7.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:418a463c3e6a590c0cdc890f8be19adb44a8c8acd175ca5b2a6de77e61d0b386", size = 197950, upload-time = "2026-04-25T11:06:39.148Z" }, + { url = "https://files.pythonhosted.org/packages/c6/75/5f42a1a4c78717d906a4b6a140c6dbf837ab1f547a54d23c4e2903310936/xxhash-3.7.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:03f8ff4474ee61c845758ce00711d7087a770d77efb36f7e74a6e867301000b8", size = 210709, upload-time = "2026-04-25T11:06:40.958Z" }, + { url = "https://files.pythonhosted.org/packages/8a/85/237e446c25abced71e9c53d269f2cef5bab8a82b3f88a12e00c5368e7368/xxhash-3.7.0-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:44fba4a5f1d179b7ddc7b3dc40f56f9209046421679b57025d4d8821b376fd8d", size = 275345, upload-time = "2026-04-25T11:06:42.525Z" }, + { url = "https://files.pythonhosted.org/packages/62/34/c2c26c0a6a9cc739bc2a5f0ae03ba8b87deb12b8bce35f7ac495e790dc6d/xxhash-3.7.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:31e3516a0f829d06ded4a2c0f3c7c5561993256bfa1c493975fb9dc7bfa828a1", size = 414056, upload-time = "2026-04-25T11:06:44.343Z" }, + { url = "https://files.pythonhosted.org/packages/a0/aa/5c58e9bc8071b8afd8dcf297ff362f723c4892168faba149f19904132bf4/xxhash-3.7.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b59ee2ac81de57771a09ecad09191e840a1d2fae1ef684208320591055768f83", size = 191485, upload-time = "2026-04-25T11:06:46.262Z" }, + { url = "https://files.pythonhosted.org/packages/d4/69/a929cf9d1e2e65a48b818cdce72cb6b69eab2e6877f21436d0a1942aff43/xxhash-3.7.0-cp312-cp312-win32.whl", hash = "sha256:74bbd92f8c7fcc397ba0a11bfdc106bc72ad7f11e3a60277753f87e7532b4d81", size = 30671, upload-time = "2026-04-25T11:06:48.039Z" }, + { url = "https://files.pythonhosted.org/packages/b9/1b/104b41a8947f4e1d4a66ce1e628eea752f37d1890bfd7453559ca7a3d950/xxhash-3.7.0-cp312-cp312-win_amd64.whl", hash = "sha256:7bd7bc82dd4f185f28f35193c2e968ef46131628e3cac62f639dadf321cba4d1", size = 31514, upload-time = "2026-04-25T11:06:49.279Z" }, + { url = "https://files.pythonhosted.org/packages/98/a0/1fd0ea1f1b886d9e7c73f0397571e22333a7d79e31da6d7127c2a4a71d75/xxhash-3.7.0-cp312-cp312-win_arm64.whl", hash = "sha256:7d7148180ec99ba36585b42c8c5de25e9b40191613bc4be68909b4d25a77a852", size = 27761, upload-time = "2026-04-25T11:06:50.448Z" }, +] + [[package]] name = "yarl" version = "1.22.0" From e0d214c291c7e17cd7468cc05fb59c2d52e64f55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:10:19 +0000 Subject: [PATCH 04/45] feat: labels --- ml/data/datasets/__init__.py | 4 ++++ ml/data/datasets/labels.py | 38 ++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 ml/data/datasets/__init__.py create mode 100644 ml/data/datasets/labels.py diff --git a/ml/data/datasets/__init__.py b/ml/data/datasets/__init__.py new file mode 100644 index 0000000..4163d98 --- /dev/null +++ b/ml/data/datasets/__init__.py @@ -0,0 +1,4 @@ +from ml.data.datasets.tiles import Tiles, TilesPredict + + +__all__ = ["Tiles", "TilesPredict"] diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py new file mode 100644 index 0000000..4654a6e --- /dev/null +++ b/ml/data/datasets/labels.py @@ -0,0 +1,38 @@ +from enum import Enum +from pathlib import Path + +import pandas as pd +import torch + + +class LabelMode(Enum): + NEUTROPHILS = "neutrophils" + NANCY_HIGH = "nancy_high" + NANCY_LOW = "nancy_low" + + +def process_slides(slides: pd.DataFrame, mode: LabelMode | None = None) -> pd.DataFrame: + match mode: + case LabelMode.NEUTROPHILS: + slides["neutrophils"] = slides["nancy_index"] >= 2 + case LabelMode.NANCY_HIGH: + # new labels: 0,1 -> 0; 2,3,4 -> 1,2,3 + slides["nancy_index"] = slides["nancy_index"].apply(lambda x: max(0, x - 1)) + case LabelMode.NANCY_LOW: + # new labels: 0,1 -> 0,1; 2,3,4 -> 2 + slides["nancy_index"] = slides["nancy_index"].apply(lambda x: min(x, 2)) + + slides["name"] = slides["path"].apply(lambda x: Path(x).stem) + return slides + + +def get_label(slide_metadata: pd.Series, mode: LabelMode) -> torch.Tensor: + match mode: + case LabelMode.NEUTROPHILS: + return torch.tensor(slide_metadata["neutrophils"].item()).float() + case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW: + return torch.tensor(slide_metadata["nancy_index"].item()).long() + + +def get_target_column(mode: LabelMode) -> str: + return "neutrophils" if mode == LabelMode.NEUTROPHILS else "nancy_index" From 6f73eb94307cc99b8a5896995b67338e7f063e5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 21:14:27 +0200 Subject: [PATCH 05/45] refactor: labels --- ml/data/datasets/labels.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index 4654a6e..4b2e8b6 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -1,8 +1,8 @@ from enum import Enum from pathlib import Path -import pandas as pd import torch +from datasets import Dataset as HFDataset class LabelMode(Enum): @@ -11,27 +11,27 @@ class LabelMode(Enum): NANCY_LOW = "nancy_low" -def process_slides(slides: pd.DataFrame, mode: LabelMode | None = None) -> pd.DataFrame: +def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDataset: match mode: case LabelMode.NEUTROPHILS: - slides["neutrophils"] = slides["nancy_index"] >= 2 + slides = slides.map(lambda x: {"neutrophils": x["nancy_index"] >= 2}) case LabelMode.NANCY_HIGH: # new labels: 0,1 -> 0; 2,3,4 -> 1,2,3 - slides["nancy_index"] = slides["nancy_index"].apply(lambda x: max(0, x - 1)) + slides = slides.map(lambda x: {"nancy_index": max(0, x["nancy_index"] - 1)}) case LabelMode.NANCY_LOW: # new labels: 0,1 -> 0,1; 2,3,4 -> 2 - slides["nancy_index"] = slides["nancy_index"].apply(lambda x: min(x, 2)) + slides = slides.map(lambda x: {"nancy_index": min(x["nancy_index"], 2)}) - slides["name"] = slides["path"].apply(lambda x: Path(x).stem) + slides = slides.map(lambda x: {"name": Path(x["path"]).stem}) return slides -def get_label(slide_metadata: pd.Series, mode: LabelMode) -> torch.Tensor: +def get_label(slide_metadata: dict, mode: LabelMode) -> torch.Tensor: match mode: case LabelMode.NEUTROPHILS: - return torch.tensor(slide_metadata["neutrophils"].item()).float() + return torch.tensor(slide_metadata["neutrophils"]).float() case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW: - return torch.tensor(slide_metadata["nancy_index"].item()).long() + return torch.tensor(slide_metadata["nancy_index"]).long() def get_target_column(mode: LabelMode) -> str: From fd22f8640272b70eb2f08531f607aacd897aecb7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:17:26 +0000 Subject: [PATCH 06/45] feat: types --- ml/typing.py | 38 ++++++++++++++++++++++++++++++++++---- 1 file changed, 34 insertions(+), 4 deletions(-) diff --git a/ml/typing.py b/ml/typing.py index af3f90a..f2f26fc 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -1,8 +1,38 @@ -from typing import TypeAlias +from pathlib import Path +from typing import TypeAlias, TypedDict +import pandas as pd +from torch import Tensor -Sample: TypeAlias = ... # TODO define the type returned by Dataset -Input: TypeAlias = ... # TODO define the model input type +class Metadata(TypedDict): + slide_id: str -Outputs: TypeAlias = ... # TODO define the model output type + +class MetadataTiles(Metadata): + x: int + y: int + + +TilesSample: TypeAlias = tuple[Tensor, Tensor, MetadataTiles] +TilesPredictSample: TypeAlias = tuple[Tensor, MetadataTiles] + + +class MetadataTileEmbeddings(Metadata): + slide_name: str + slide_path: Path + level: int + tile_extent_x: int + tile_extent_y: int + tiles: pd.DataFrame + x: Tensor # Tensor[int] + y: Tensor # Tensor[int] + + +TileEmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataTileEmbeddings] +TileEmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataTileEmbeddings] + +TileEmbeddingsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataTileEmbeddings]] +TileEmbeddingsPredictInput: TypeAlias = tuple[Tensor, list[MetadataTileEmbeddings]] + +Output: TypeAlias = Tensor From 4e12f9c28aecc11876ae04e06076ffcfea97a54b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:17:37 +0000 Subject: [PATCH 07/45] feat: tiles dataset --- ml/data/datasets/tiles.py | 120 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 ml/data/datasets/tiles.py diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py new file mode 100644 index 0000000..b0bea54 --- /dev/null +++ b/ml/data/datasets/tiles.py @@ -0,0 +1,120 @@ +from collections.abc import Iterable +from typing import Generic, TypeVar + +import pandas as pd +from albumentations.core.composition import TransformType +from albumentations.pytorch import ToTensorV2 +from rationai.mlkit.data.datasets import MetaTiledSlides, OpenSlideTilesDataset +from torch.utils.data import Dataset + +from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.typing import MetadataTiles, TilesPredictSample, TilesSample + + +T = TypeVar("T", bound=TilesSample | TilesPredictSample) + + +class _Tiles(Dataset[T], Generic[T]): + def __init__( + self, + slide_metadata: pd.Series, + tiles: pd.DataFrame, + mode: LabelMode | str | None, + include_labels: bool = True, + transforms: TransformType | None = None, + to_tensor: bool = True, + ) -> None: + super().__init__() + self.slide_tiles = OpenSlideTilesDataset( + slide_path=slide_metadata["path"], + level=slide_metadata["level"], + tile_extent_x=slide_metadata["tile_extent_x"], + tile_extent_y=slide_metadata["tile_extent_y"], + tiles=tiles, + ) + self.slide_metadata = slide_metadata + self.mode = LabelMode(mode) if mode is not None else None + self.include_labels = include_labels + self.transforms = transforms + self.to_tensor = ToTensorV2() if to_tensor else None + + if self.include_labels and self.mode is None: + raise ValueError("Mode must be specified if labels are included.") + + def __len__(self) -> int: + return len(self.slide_tiles) + + def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: + image = self.slide_tiles[idx] + metadata = MetadataTiles( + slide_id=self.slide_tiles.slide_path.stem, + x=self.slide_tiles.tiles.iloc[idx]["x"], + y=self.slide_tiles.tiles.iloc[idx]["y"], + ) + + if self.transforms is not None: + image = self.transforms(image=image)["image"] + + if self.to_tensor is not None: + image = self.to_tensor(image=image)["image"] + + if not self.include_labels: + return image, metadata + + assert self.mode is not None, "Mode must be specified for labels." + label = get_label(self.slide_metadata, self.mode) + return image, label, metadata + + +class Tiles(MetaTiledSlides[TilesSample]): + def __init__( + self, + uris: Iterable[str] | str, + mode: LabelMode | str, + transforms: TransformType | None = None, + to_tensor: bool = True, + ) -> None: + self.transforms = transforms + self.mode = LabelMode(mode) + self.to_tensor = to_tensor + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: + self.slides = process_slides(self.slides, self.mode) + return ( + _Tiles( + slide_metadata=slide, + tiles=self.filter_tiles_by_slide(slide["id"]), + mode=self.mode, + include_labels=True, + transforms=self.transforms, + to_tensor=self.to_tensor, + ) + for _, slide in self.slides.iterrows() + ) + + +class TilesPredict(MetaTiledSlides[TilesPredictSample]): + def __init__( + self, + uris: Iterable[str] | str, + transforms: TransformType | None = None, + to_tensor: bool = True, + ) -> None: + self.transforms = transforms + self.to_tensor = to_tensor + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: + self.slides = process_slides(self.slides) + return ( + _Tiles( + slide_metadata=slide, + tiles=self.filter_tiles_by_slide(slide["id"]), + mode=None, + include_labels=False, + transforms=self.transforms, + to_tensor=self.to_tensor, + ) + for _, slide in self.slides.iterrows() + ) From c7d72974fc983d69ca464f60deed96202a92abb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:28:44 +0000 Subject: [PATCH 08/45] feat: tiles dataframe to hfdataset --- ml/data/datasets/tiles.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index b0bea54..1ce2e00 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -4,6 +4,7 @@ import pandas as pd from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 +from datasets import Dataset as HFDataset from rationai.mlkit.data.datasets import MetaTiledSlides, OpenSlideTilesDataset from torch.utils.data import Dataset @@ -17,8 +18,8 @@ class _Tiles(Dataset[T], Generic[T]): def __init__( self, - slide_metadata: pd.Series, - tiles: pd.DataFrame, + slide_metadata: dict, + tiles: HFDataset, mode: LabelMode | str | None, include_labels: bool = True, transforms: TransformType | None = None, @@ -48,8 +49,8 @@ def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: image = self.slide_tiles[idx] metadata = MetadataTiles( slide_id=self.slide_tiles.slide_path.stem, - x=self.slide_tiles.tiles.iloc[idx]["x"], - y=self.slide_tiles.tiles.iloc[idx]["y"], + x=self.slide_tiles.tiles[idx]["x"], + y=self.slide_tiles.tiles[idx]["y"], ) if self.transforms is not None: @@ -83,14 +84,14 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: self.slides = process_slides(self.slides, self.mode) return ( _Tiles( - slide_metadata=slide, - tiles=self.filter_tiles_by_slide(slide["id"]), + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), mode=self.mode, include_labels=True, transforms=self.transforms, to_tensor=self.to_tensor, ) - for _, slide in self.slides.iterrows() + for slide in self.slides ) @@ -109,12 +110,12 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: self.slides = process_slides(self.slides) return ( _Tiles( - slide_metadata=slide, - tiles=self.filter_tiles_by_slide(slide["id"]), + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), mode=None, include_labels=False, transforms=self.transforms, to_tensor=self.to_tensor, ) - for _, slide in self.slides.iterrows() + for slide in self.slides ) From f9969c6c0be847bb77d8b81b060b1ec29cb9e08b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Tue, 5 May 2026 19:43:24 +0000 Subject: [PATCH 09/45] feat: neutrophils ml --- configs/dataset/neutrophils/all.yaml | 5 + configs/dataset/neutrophils/ftn.yaml | 6 + configs/dataset/neutrophils/ikem.yaml | 6 + configs/dataset/neutrophils/knl_patos.yaml | 6 + ml/neutrophils.py | 134 +++++++++++++++++++++ 5 files changed, 157 insertions(+) create mode 100644 configs/dataset/neutrophils/all.yaml create mode 100644 configs/dataset/neutrophils/ftn.yaml create mode 100644 configs/dataset/neutrophils/ikem.yaml create mode 100644 configs/dataset/neutrophils/knl_patos.yaml create mode 100644 ml/neutrophils.py diff --git a/configs/dataset/neutrophils/all.yaml b/configs/dataset/neutrophils/all.yaml new file mode 100644 index 0000000..2790b9a --- /dev/null +++ b/configs/dataset/neutrophils/all.yaml @@ -0,0 +1,5 @@ +defaults: + - /dataset/neutrophils@datasets.ftn: ftn + - /dataset/neutrophils@datasets.ikem: ikem + - /dataset/neutrophils@datasets.knl_patos: knl_patos + - _self_ diff --git a/configs/dataset/neutrophils/ftn.yaml b/configs/dataset/neutrophils/ftn.yaml new file mode 100644 index 0000000..3446ced --- /dev/null +++ b/configs/dataset/neutrophils/ftn.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ftn/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils diff --git a/configs/dataset/neutrophils/ikem.yaml b/configs/dataset/neutrophils/ikem.yaml new file mode 100644 index 0000000..81d33b2 --- /dev/null +++ b/configs/dataset/neutrophils/ikem.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ikem/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils diff --git a/configs/dataset/neutrophils/knl_patos.yaml b/configs/dataset/neutrophils/knl_patos.yaml new file mode 100644 index 0000000..5303a9a --- /dev/null +++ b/configs/dataset/neutrophils/knl_patos.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/knl_patos/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils diff --git a/ml/neutrophils.py b/ml/neutrophils.py new file mode 100644 index 0000000..d7589aa --- /dev/null +++ b/ml/neutrophils.py @@ -0,0 +1,134 @@ +from functools import partial +from pathlib import Path + +import hydra +import mlflow.artifacts +import numpy as np +import pandas as pd +import pyvips +from omegaconf import DictConfig, ListConfig +from rationai.mlkit import with_cli_args +from rationai.mlkit.autolog import autolog +from rationai.mlkit.lightning.loggers import MLFlowLogger +from sklearn.metrics import ( + cohen_kappa_score, + confusion_matrix, + roc_auc_score, + roc_curve, +) + + +def add_path(path: str, folder: Path, suffix: str) -> Path: + return folder / Path(path).with_suffix(suffix).name + + +def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: + train_dfs, test_dfs = [], [] + for dataset in datasets: + uris = dataset.mlflow_uris + neutrophils = Path(mlflow.artifacts.download_artifacts(uris.neutrophils)) + tissue_masks = Path(mlflow.artifacts.download_artifacts(uris.tissue_masks)) + + add_tissue_mask = partial(add_path, folder=tissue_masks, suffix=".tiff") + add_neutrophils = partial(add_path, folder=neutrophils, suffix=".parquet") + + for split, df in zip( + ["train", "test_preliminary"], [train_dfs, test_dfs], strict=False + ): + if split in uris.tiling: + df.append( + pd.read_parquet( + Path(mlflow.artifacts.download_artifacts(uris.tiling[split])) + / "slides.parquet", + ) + .set_index("id") + .assign( + tissue_mask=lambda df, f=add_tissue_mask: df["path"].apply(f) # type: ignore[reportCallIssues] + ) + .assign( + neutrophils=lambda df, f=add_neutrophils: df["path"].apply(f) # type: ignore[reportCallIssues] + ) + ) + + return pd.concat(train_dfs), pd.concat(test_dfs) + + +def get_tissue_size(tissue_mask_path: Path) -> float: + """Calculate tissue size in mm^2.""" + image = pyvips.Image.new_from_file(tissue_mask_path) + mpp_x = 1000 / image.get("Xres") # type: ignore[pyvips] + mpp_y = 1000 / image.get("Yres") # type: ignore[pyvips] + return image.avg() * image.width * image.height / 255 * mpp_x * mpp_y * 1e-6 # type: ignore[pyvips] + + +def create_dataset(df: pd.DataFrame) -> tuple[np.ndarray, np.ndarray]: + x, y = [], [] + for _, row in df.iterrows(): + expected_num_neutrophils = pd.read_parquet(row["neutrophils"])[ + "probability" + ].sum() + tissue_size = get_tissue_size(row["tissue_mask"]) + + # expected number of neutrophils per mm^2 + x.append(expected_num_neutrophils / tissue_size) + y.append(row["nancy_index"] >= 2) + + return np.array(x, dtype=np.float32), np.array(y, dtype=np.int8) + + +def train(x_train: np.ndarray, y_train: np.ndarray) -> float: + fpr, tpr, thresholds = roc_curve(y_train, x_train) + accuracy = (tpr * np.sum(y_train) + (1 - fpr) * np.sum(1 - y_train)) / len(y_train) + return thresholds[np.argmax(accuracy)] + + +def test( + x_test: np.ndarray, + y_test: np.ndarray, + test_df: pd.DataFrame, + threshold: float, + logger: MLFlowLogger, +) -> None: + y_pred = x_test >= threshold + + tn, fp, fn, tp = confusion_matrix(y_test, y_pred).ravel() + + logger.log_metrics( + { + "test/accuracy": (tp + tn) / (tp + tn + fp + fn), + "test/AUC": float(roc_auc_score(y_test, x_test)), + "test/precision": (tp / (tp + fp)) if tp + fp > 0 else 0.0, + "test/recall": (tp / (tp + fn)) if tp + fn > 0 else 0.0, + "test/specificity": (tn / (tn + fp)) if tn + fp > 0 else 0.0, + "test/kappa": float(cohen_kappa_score(y_test, y_pred)), + "threshold": threshold, + } + ) + + logger.log_table( + { + "slide": test_df["path"].apply(lambda p: Path(p).stem), + "prediction": x_test.tolist(), + "prediction_class": y_pred.tolist(), + }, + artifact_file="predictions.json", + ) + + +@with_cli_args(["+ml=neutrophils"]) +@hydra.main(config_path="../configs", config_name="ml", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + train_df, test_df = download_data( + config.dataset.get("datasets", {"": config.dataset}).values() + ) + + x_train, y_train = create_dataset(train_df) + x_test, y_test = create_dataset(test_df) + + threshold = train(x_train, y_train) + test(x_test, y_test, test_df, threshold, logger) + + +if __name__ == "__main__": + main() From c4fd74dc27cab282775bf91f8512f86a64412e22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Wed, 6 May 2026 12:19:36 +0000 Subject: [PATCH 10/45] feat: datasets --- ml/data/datasets/__init__.py | 11 +++- ml/data/datasets/bags.py | 100 +++++++++++++++++++++++++++++++++ ml/data/datasets/embeddings.py | 93 ++++++++++++++++++++++++++++++ ml/data/datasets/labels.py | 6 +- ml/data/datasets/tiles.py | 1 - ml/typing.py | 23 +++++--- 6 files changed, 224 insertions(+), 10 deletions(-) create mode 100644 ml/data/datasets/bags.py create mode 100644 ml/data/datasets/embeddings.py diff --git a/ml/data/datasets/__init__.py b/ml/data/datasets/__init__.py index 4163d98..5301996 100644 --- a/ml/data/datasets/__init__.py +++ b/ml/data/datasets/__init__.py @@ -1,4 +1,13 @@ +from ml.data.datasets.bags import Bags, BagsPredict +from ml.data.datasets.embeddings import Embeddings, EmbeddingsPredict from ml.data.datasets.tiles import Tiles, TilesPredict -__all__ = ["Tiles", "TilesPredict"] +__all__ = [ + "Bags", + "BagsPredict", + "Embeddings", + "EmbeddingsPredict", + "Tiles", + "TilesPredict", +] diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py new file mode 100644 index 0000000..0c861b2 --- /dev/null +++ b/ml/data/datasets/bags.py @@ -0,0 +1,100 @@ +from collections.abc import Iterable +from pathlib import Path +from typing import Generic, TypeVar + +import torch +import torch.nn.functional as F +from rationai.mlkit.data.datasets import SlidesTilesLoader +from torch.utils.data import Dataset + +from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.typing import BagsPredictSample, BagsSample, MetadataBags + + +T = TypeVar("T", bound=BagsSample | BagsPredictSample) + + +class _Bags(Dataset[T], Generic[T]): + def __init__( + self, + tiling_uris: Iterable[str] | str, + mode: LabelMode | str | None = None, + padding: bool = True, + include_labels: bool = True, + ) -> None: + self.mode = LabelMode(mode) if mode is not None else None + self.include_labels = include_labels + + if self.include_labels and self.mode is None: + raise ValueError("Mode must be specified when including labels.") + + self._meta = SlidesTilesLoader(uris=tiling_uris) + self.tiles = self._meta.tiles + self.slides = process_slides(self._meta.slides, self.mode) + + self.padding = padding + self.max_embeddings = self.tiles["slide_id"].value_counts().max() + + def __len__(self) -> int: + return len(self.slides) + + def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: + slide_metadata = self.slides[idx] + tiles = self._meta.filter_tiles_by_slide(slide_metadata["id"]) + slide_name = str(slide_metadata["name"]) + embeddings = torch.tensor(tiles["embedding"]) + + pad_amount = self.max_embeddings - embeddings.shape[0] + if self.padding: + embeddings = F.pad(embeddings, (0, 0, 0, pad_amount), value=0.0) + + metadata = MetadataBags( + slide_id=slide_metadata["id"], + slide_name=slide_name, + slide_path=Path(slide_metadata["path"]), + level=slide_metadata["level"], + tile_extent_x=slide_metadata["tile_extent_x"], + tile_extent_y=slide_metadata["tile_extent_y"], + tiles=tiles, + x=torch.tensor(tiles["x"]), + y=torch.tensor(tiles["y"]), + ) + + if not self.include_labels: + return embeddings, metadata + + assert self.mode is not None + label = get_label(slide_metadata, self.mode) + + return embeddings, label, metadata + + +class Bags(_Bags[BagsSample]): + def __init__( + self, + tiling_uris: Iterable[str] | str, + mode: LabelMode | str, + padding: bool = True, + ) -> None: + super().__init__( + tiling_uris=tiling_uris, + mode=mode, + padding=padding, + include_labels=True, + ) + + +class BagsPredict(_Bags[BagsPredictSample]): + def __init__( + self, + tiling_uris: Iterable[str] | str, + mode: LabelMode | str | None = None, + padding: bool = True, + slide_names: Iterable[str] | None = None, + ) -> None: + super().__init__( + tiling_uris=tiling_uris, + mode=mode, + padding=padding, + include_labels=False, + ) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py new file mode 100644 index 0000000..5229f73 --- /dev/null +++ b/ml/data/datasets/embeddings.py @@ -0,0 +1,93 @@ +from collections.abc import Iterable +from typing import Generic, TypeVar + +import torch +from datasets import Dataset as HFDataset +from rationai.mlkit.data.datasets import MetaTiledSlides +from torch.utils.data import Dataset + +from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.typing import EmbeddingsPredictSample, EmbeddingsSample, MetadataEmbeddings + + +T = TypeVar("T", bound=EmbeddingsSample | EmbeddingsPredictSample) + + +class _Embeddings(Generic[T], Dataset[T]): + def __init__( + self, + slide_metadata: dict, + tiles: HFDataset, + mode: LabelMode | str | None, + include_labels: bool = True, + ) -> None: + self.slide_metadata = slide_metadata + self.tiles = tiles + self.mode = LabelMode(mode) if mode is not None else None + self.include_labels = include_labels + + if self.include_labels and self.mode is None: + raise ValueError("Mode must be specified if labels are included.") + + def __len__(self) -> int: + return len(self.tiles) + + def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: + tile = self.tiles[idx] + metadata = MetadataEmbeddings( + slide_id=self.slide_metadata["name"], + x=tile["x"], + y=tile["y"], + ) + + embedding = torch.tensor(tile["embedding"]) + if not self.include_labels: + return embedding, metadata + + assert self.mode is not None, "Mode must be specified for labels." + label = get_label(tile, self.mode) + return embedding, label, metadata + + +class Embeddings(MetaTiledSlides[EmbeddingsSample]): + def __init__( + self, + uris: Iterable[str] | str, + mode: LabelMode | str, + ) -> None: + self.mode = LabelMode(mode) + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: + self.slides = process_slides(self.slides, self.mode) + return ( + _Embeddings( + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + mode=self.mode, + include_labels=True, + ) + for slide in self.slides + ) + + +class EmbeddingsPredict(MetaTiledSlides[EmbeddingsPredictSample]): + def __init__( + self, + uris: Iterable[str] | str, + mode: LabelMode | str, + ) -> None: + self.mode = LabelMode(mode) + super().__init__(uris=(uris,) if isinstance(uris, str) else uris) + + def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsPredictSample]]: + self.slides = process_slides(self.slides, self.mode) + return ( + _Embeddings( + slide_metadata=dict(slide), + tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + mode=self.mode, + include_labels=False, + ) + for slide in self.slides + ) diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index 4b2e8b6..c95448f 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -9,6 +9,7 @@ class LabelMode(Enum): NEUTROPHILS = "neutrophils" NANCY_HIGH = "nancy_high" NANCY_LOW = "nancy_low" + ALL = "all" def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDataset: @@ -21,6 +22,9 @@ def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDatase case LabelMode.NANCY_LOW: # new labels: 0,1 -> 0,1; 2,3,4 -> 2 slides = slides.map(lambda x: {"nancy_index": min(x["nancy_index"], 2)}) + case LabelMode.ALL: + # Keep all labels + pass slides = slides.map(lambda x: {"name": Path(x["path"]).stem}) return slides @@ -30,7 +34,7 @@ def get_label(slide_metadata: dict, mode: LabelMode) -> torch.Tensor: match mode: case LabelMode.NEUTROPHILS: return torch.tensor(slide_metadata["neutrophils"]).float() - case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW: + case LabelMode.NANCY_HIGH | LabelMode.NANCY_LOW | LabelMode.ALL: return torch.tensor(slide_metadata["nancy_index"]).long() diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 1ce2e00..546cfae 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -1,7 +1,6 @@ from collections.abc import Iterable from typing import Generic, TypeVar -import pandas as pd from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 from datasets import Dataset as HFDataset diff --git a/ml/typing.py b/ml/typing.py index f2f26fc..29f2672 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -1,7 +1,7 @@ from pathlib import Path from typing import TypeAlias, TypedDict -import pandas as pd +from datasets import Dataset as HFDataset from torch import Tensor @@ -18,21 +18,30 @@ class MetadataTiles(Metadata): TilesPredictSample: TypeAlias = tuple[Tensor, MetadataTiles] -class MetadataTileEmbeddings(Metadata): +class MetadataEmbeddings(Metadata): + x: int + y: int + + +EmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataEmbeddings] +EmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataEmbeddings] + + +class MetadataBags(Metadata): slide_name: str slide_path: Path level: int tile_extent_x: int tile_extent_y: int - tiles: pd.DataFrame + tiles: HFDataset x: Tensor # Tensor[int] y: Tensor # Tensor[int] -TileEmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataTileEmbeddings] -TileEmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataTileEmbeddings] +BagsSample: TypeAlias = tuple[Tensor, Tensor, MetadataBags] +BagsPredictSample: TypeAlias = tuple[Tensor, MetadataBags] -TileEmbeddingsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataTileEmbeddings]] -TileEmbeddingsPredictInput: TypeAlias = tuple[Tensor, list[MetadataTileEmbeddings]] +BagsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataBags]] +BagsPredictInput: TypeAlias = tuple[Tensor, list[MetadataBags]] Output: TypeAlias = Tensor From a56b3f4ecce88b815f731db8d0a0fc36f5e39f1a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Wed, 6 May 2026 12:20:07 +0000 Subject: [PATCH 11/45] feat: neutrophil dataset conf --- configs/dataset/embeddings/ftn.yaml | 6 ++++++ configs/dataset/embeddings/ikem.yaml | 6 ++++++ configs/dataset/embeddings/knl_patos.yaml | 6 ++++++ 3 files changed, 18 insertions(+) create mode 100644 configs/dataset/embeddings/ftn.yaml create mode 100644 configs/dataset/embeddings/ikem.yaml create mode 100644 configs/dataset/embeddings/knl_patos.yaml diff --git a/configs/dataset/embeddings/ftn.yaml b/configs/dataset/embeddings/ftn.yaml new file mode 100644 index 0000000..3446ced --- /dev/null +++ b/configs/dataset/embeddings/ftn.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ftn/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils diff --git a/configs/dataset/embeddings/ikem.yaml b/configs/dataset/embeddings/ikem.yaml new file mode 100644 index 0000000..81d33b2 --- /dev/null +++ b/configs/dataset/embeddings/ikem.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/ikem/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils diff --git a/configs/dataset/embeddings/knl_patos.yaml b/configs/dataset/embeddings/knl_patos.yaml new file mode 100644 index 0000000..5303a9a --- /dev/null +++ b/configs/dataset/embeddings/knl_patos.yaml @@ -0,0 +1,6 @@ +defaults: + - /dataset/tiled/knl_patos/0_320@_here_ + - _self_ + +mlflow_uris: + neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils From 49d4cff93722034051a3e160f5eb3a6b184ebdf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:03:24 +0000 Subject: [PATCH 12/45] feat: datasets --- ml/data/datasets/bags.py | 2 +- ml/data/datasets/embeddings.py | 2 +- ml/data/datasets/tiles.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 0c861b2..7aeabad 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -49,7 +49,7 @@ def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: embeddings = F.pad(embeddings, (0, 0, 0, pad_amount), value=0.0) metadata = MetadataBags( - slide_id=slide_metadata["id"], + slide_name=slide_metadata["id"], slide_name=slide_name, slide_path=Path(slide_metadata["path"]), level=slide_metadata["level"], diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 5229f73..c38d9c0 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -35,7 +35,7 @@ def __len__(self) -> int: def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: tile = self.tiles[idx] metadata = MetadataEmbeddings( - slide_id=self.slide_metadata["name"], + slide_name=self.slide_metadata["name"], x=tile["x"], y=tile["y"], ) diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 546cfae..58c16a2 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -47,7 +47,7 @@ def __len__(self) -> int: def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: image = self.slide_tiles[idx] metadata = MetadataTiles( - slide_id=self.slide_tiles.slide_path.stem, + slide_name=self.slide_tiles.slide_path.stem, x=self.slide_tiles.tiles[idx]["x"], y=self.slide_tiles.tiles[idx]["y"], ) From 182350fe3657ec81897e08ccd455e5b362fa73a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:03:45 +0000 Subject: [PATCH 13/45] feat: loss --- ml/loss/__init__.py | 4 ++ ml/loss/cumulative_link_loss.py | 100 ++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100644 ml/loss/__init__.py create mode 100644 ml/loss/cumulative_link_loss.py diff --git a/ml/loss/__init__.py b/ml/loss/__init__.py new file mode 100644 index 0000000..44986ce --- /dev/null +++ b/ml/loss/__init__.py @@ -0,0 +1,4 @@ +from ml.loss.cumulative_link_loss import CumulativeLinkLoss + + +__all__ = ["CumulativeLinkLoss"] diff --git a/ml/loss/cumulative_link_loss.py b/ml/loss/cumulative_link_loss.py new file mode 100644 index 0000000..44e2c8e --- /dev/null +++ b/ml/loss/cumulative_link_loss.py @@ -0,0 +1,100 @@ +import torch +from torch import nn + + +# credit: +# https://github.com/EthanRosenthal/spacecutter/blob/master/spacecutter/losses.py + + +def _reduction(loss: torch.Tensor, reduction: str) -> torch.Tensor: + """Reduce loss. + + Parameters + ---------- + loss : torch.Tensor, [batch_size, num_classes] + Batch losses. + reduction : str + Method for reducing the loss. Options include 'mean', 'none', and 'sum'. + + Returns: + ------- + loss : torch.Tensor + Reduced loss. + + """ + if reduction == "mean": + return loss.mean() + elif reduction == "none": + return loss + elif reduction == "sum": + return loss.sum() + else: + raise ValueError(f"{reduction} is not a valid reduction") + + +def cumulative_link_loss( + y_pred: torch.Tensor, + y_true: torch.Tensor, + reduction: str = "mean", + class_weights: torch.Tensor | None = None, +) -> torch.Tensor: + """Calculates the negative log likelihood using the logistic cumulative link function. + + See "On the consistency of ordinal regression methods", Pedregosa et. al. for more + details. While this paper is not the first to introduce this, it is the only one + that I could find that was easily readable outside of paywalls. + + Parameters + ---------- + y_pred : torch.Tensor, [batch_size, num_classes] + Predicted target class probabilities. float dtype. + y_true : torch.Tensor, [batch_size, 1] + True target classes. long dtype. + reduction : str + Method for reducing the loss. Options include 'mean', 'none', and 'sum'. + class_weights : torch.Tensor, [num_classes] optional (default=None) + An array of weights for each class. If included, then for each sample, look up + the true class and multiply that sample's loss by the weight in this array. + + Returns: + ------- + loss: torch.Tensor + + """ + eps = 1e-15 + likelihoods = torch.clamp(torch.gather(y_pred, 1, y_true), eps, 1 - eps) + neg_log_likelihood = -torch.log(likelihoods) + + if class_weights is not None: + neg_log_likelihood *= class_weights[y_true] + + loss = _reduction(neg_log_likelihood, reduction) + return loss + + +class CumulativeLinkLoss(nn.Module): + """Module form of cumulative_link_loss() loss function. + + Parameters + ---------- + reduction : str + Method for reducing the loss. Options include 'mean', 'none', and 'sum'. + class_weights : np.ndarray, [num_classes] optional (default=None) + An array of weights for each class. If included, then for each sample, look up + the true class and multiply that sample's loss by the weight in this array. + + """ + + def __init__( + self, + reduction: str = "mean", + class_weights: torch.Tensor | None = None, + ) -> None: + super().__init__() + self.class_weights = class_weights + self.reduction = reduction + + def forward(self, y_pred: torch.Tensor, y_true: torch.Tensor) -> torch.Tensor: + return cumulative_link_loss( + y_pred, y_true, reduction=self.reduction, class_weights=self.class_weights + ) From 44c981aece6f82ee3c818bd61e2b6da26c7d237b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:06:12 +0000 Subject: [PATCH 14/45] feat: modeling --- ml/modeling/README.md | 30 ------------- ml/modeling/__init__.py | 16 +++++++ ml/modeling/backbone/__init__.py | 4 ++ ml/modeling/backbone/vgg16.py | 6 +++ ml/modeling/classification_head.py | 15 +++++++ ml/modeling/linear_probe.py | 12 +++++ ml/modeling/normalization.py | 12 +++++ ml/modeling/ordinal_regression_head.py | 61 ++++++++++++++++++++++++++ ml/modeling/regression_head.py | 14 ++++++ 9 files changed, 140 insertions(+), 30 deletions(-) delete mode 100644 ml/modeling/README.md create mode 100644 ml/modeling/backbone/__init__.py create mode 100644 ml/modeling/backbone/vgg16.py create mode 100644 ml/modeling/classification_head.py create mode 100644 ml/modeling/linear_probe.py create mode 100644 ml/modeling/normalization.py create mode 100644 ml/modeling/ordinal_regression_head.py create mode 100644 ml/modeling/regression_head.py diff --git a/ml/modeling/README.md b/ml/modeling/README.md deleted file mode 100644 index 5456c5a..0000000 --- a/ml/modeling/README.md +++ /dev/null @@ -1,30 +0,0 @@ -# Modeling - -In this folder you should put all your model and loss components. Common structure is as follows: - -``` -modeling -├── backbone -│ ├── vgg16.py -│ ├── resnet.py -│ └── __init__.py -├── criterion.py -├── decode_head.py -├── metrics -│ ├── vgg16.py -│ ├── resnet.py -│ └── __init__.py -└── __init__.py -``` - - -### Structure Explanation - -- **backbone**: Contains the backbone network architectures like VGG16, ResNet, etc. -- **criterion.py**: Contains the loss functions. -- **decode_head.py**: Contains the decoding heads for the models. -- **metrics**: Contains the metric components for model evaluation, such as accuracy, precision, etc. - -### Note - -You can add a `metrics` folder to store all your metric components. However, if your evaluation logic becomes too complex, it is recommended to move it to an `evaluation` folder at the project level. diff --git a/ml/modeling/__init__.py b/ml/modeling/__init__.py index e69de29..744b0f6 100644 --- a/ml/modeling/__init__.py +++ b/ml/modeling/__init__.py @@ -0,0 +1,16 @@ +from ml.modeling.classification_head import ClassificationHead +from ml.modeling.normalization import ( + power_normalization, + sigmoid_normalization, +) +from ml.modeling.ordinal_regression_head import LogisticCumulativeLink +from ml.modeling.regression_head import RegressionHead + + +__all__ = [ + "ClassificationHead", + "LogisticCumulativeLink", + "RegressionHead", + "power_normalization", + "sigmoid_normalization", +] diff --git a/ml/modeling/backbone/__init__.py b/ml/modeling/backbone/__init__.py new file mode 100644 index 0000000..c7b33ca --- /dev/null +++ b/ml/modeling/backbone/__init__.py @@ -0,0 +1,4 @@ +from ml.modeling.backbone.vgg16 import vgg16 + + +__all__ = ["vgg16"] diff --git a/ml/modeling/backbone/vgg16.py b/ml/modeling/backbone/vgg16.py new file mode 100644 index 0000000..60639c3 --- /dev/null +++ b/ml/modeling/backbone/vgg16.py @@ -0,0 +1,6 @@ +import torchvision +from torch import nn + + +def vgg16(weights: str | None = None) -> nn.Module: + return torchvision.models.vgg16(weights=weights).features diff --git a/ml/modeling/classification_head.py b/ml/modeling/classification_head.py new file mode 100644 index 0000000..6597000 --- /dev/null +++ b/ml/modeling/classification_head.py @@ -0,0 +1,15 @@ +from torch import Tensor, nn + + +class ClassificationHead(nn.Module): + def __init__(self) -> None: + super().__init__() + self.global_pool = nn.AdaptiveAvgPool2d(1) + self.proj = nn.Linear(512, 5) + + def forward(self, x: Tensor) -> Tensor: + x = self.global_pool(x) # (B, C, 1, 1) + x = x.flatten(start_dim=-3, end_dim=-1) # (B, C) + x = self.proj(x) + x = x.softmax(dim=-1) + return x diff --git a/ml/modeling/linear_probe.py b/ml/modeling/linear_probe.py new file mode 100644 index 0000000..f4907ca --- /dev/null +++ b/ml/modeling/linear_probe.py @@ -0,0 +1,12 @@ +from torch import Tensor, nn + + +class LinearProbe(nn.Module): + def __init__(self) -> None: + super().__init__() + self.proj = nn.Linear(1536, 5) + + def forward(self, x: Tensor) -> Tensor: + x = self.proj(x) + x = x.softmax(dim=-1) + return x diff --git a/ml/modeling/normalization.py b/ml/modeling/normalization.py new file mode 100644 index 0000000..238ad11 --- /dev/null +++ b/ml/modeling/normalization.py @@ -0,0 +1,12 @@ +import torch +from torch import Tensor + + +def sigmoid_normalization(x: Tensor) -> Tensor: + return torch.softmax(x.sigmoid(), dim=1) + + +def power_normalization(x: Tensor, power: float) -> Tensor: + x -= x.min() + x = torch.pow(x, power) + return x / (x.max() + 1e-6) diff --git a/ml/modeling/ordinal_regression_head.py b/ml/modeling/ordinal_regression_head.py new file mode 100644 index 0000000..a86327a --- /dev/null +++ b/ml/modeling/ordinal_regression_head.py @@ -0,0 +1,61 @@ +from typing import Literal + +import torch +from torch import nn + + +# credit: +# https://github.com/EthanRosenthal/spacecutter/blob/master/spacecutter/models.py + + +class LogisticCumulativeLink(nn.Module): + """Converts a single number to probabilities of belonging to each class. + + Parameters + ---------- + num_classes : int + Number of ordered classes to partition the odds into. + init_cutpoints : Literal["ordered", "random"], default="ordered" + How to initialize the cutpoints of the model. Valid values are + - ordered : cutpoints are initialized to halfway between each class. + - random : cutpoints are initialized with random values. + step_cutpoints : int, default=4 + The step size between cutpoints when `init_cutpoints` is "ordered". + """ + + def __init__( + self, + num_classes: int, + init_cutpoints: Literal["ordered", "random"] = "ordered", + step_cutpoints: int = 4, + ) -> None: + assert num_classes > 2, "Only use this model if you have 3 or more classes" + super().__init__() + + self.num_classes = num_classes + self.init_cutpoints = init_cutpoints + match init_cutpoints: + case "ordered": + num_cutpoints = self.num_classes - 1 + cutpoints = torch.arange(num_cutpoints).float() * step_cutpoints + cutpoints -= (num_cutpoints - 1) * step_cutpoints / 2 + self.cutpoints = nn.Parameter(cutpoints) + case "random": + cutpoints = torch.rand(self.num_classes - 1).sort()[0] + self.cutpoints = nn.Parameter(cutpoints) + case _: + raise ValueError(f"{init_cutpoints} is not a valid init_cutpoints type") + + def forward(self, x: torch.Tensor) -> torch.Tensor: + """Converts a single number to probabilities of belonging to each class. + + Equation (11) from + "On the consistency of ordinal regression methods", Pedregosa et. al. + """ + sigmoids = torch.sigmoid(self.cutpoints - x) + link_mat = sigmoids[:, 1:] - sigmoids[:, :-1] + link_mat = torch.cat( + (sigmoids[:, [0]], link_mat, (1 - sigmoids[:, [-1]])), + dim=1, + ) + return link_mat diff --git a/ml/modeling/regression_head.py b/ml/modeling/regression_head.py new file mode 100644 index 0000000..61ecbca --- /dev/null +++ b/ml/modeling/regression_head.py @@ -0,0 +1,14 @@ +from torch import Tensor, nn + + +class RegressionHead(nn.Module): + def __init__(self) -> None: + super().__init__() + self.global_pool = nn.AdaptiveAvgPool2d(1) + self.proj = nn.Linear(512, 1) + + def forward(self, x: Tensor) -> Tensor: + x = self.global_pool(x) # (B, C, 1, 1) + x = x.flatten(start_dim=-3, end_dim=-1) # (B, C) + x = self.proj(x) + return x From b615d2fcb3c98fcf43b7556ac013f4072376d60a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:06:34 +0000 Subject: [PATCH 15/45] feat: ml --- ml/__main__.py | 3 +- ml/classification.py | 64 +++++++++++++++++++ ml/mil.py | 134 ++++++++++++++++++++++++++++++++++++++ ml/ordered_regression.py | 135 +++++++++++++++++++++++++++++++++++++++ ml/project_name_model.py | 54 ---------------- ml/typing.py | 23 +++++-- 6 files changed, 351 insertions(+), 62 deletions(-) create mode 100644 ml/classification.py create mode 100644 ml/mil.py create mode 100644 ml/ordered_regression.py delete mode 100644 ml/project_name_model.py diff --git a/ml/__main__.py b/ml/__main__.py index 6252c56..16220fd 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -7,7 +7,6 @@ from rationai.mlkit import Trainer, autolog from ml.data import DataModule -from ml.project_name_model import ProjectNameModel OmegaConf.register_new_resolver( @@ -25,7 +24,7 @@ def main(config: DictConfig, logger: Logger | None) -> None: _recursive_=False, # to avoid instantiating all the datasets _target_=DataModule, ) - model = hydra.utils.instantiate(config.model, _target_=ProjectNameModel) + model = hydra.utils.instantiate(config.model) trainer = hydra.utils.instantiate(config.trainer, _target_=Trainer, logger=logger) getattr(trainer, config.mode)(model, datamodule=data, ckpt_path=config.checkpoint) diff --git a/ml/classification.py b/ml/classification.py new file mode 100644 index 0000000..e7a3edc --- /dev/null +++ b/ml/classification.py @@ -0,0 +1,64 @@ +from lightning import LightningModule +from rationai.mlkit.metrics import LazyMetricDict +from torch import Tensor, nn +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import AUROC, Accuracy, MetricCollection, Precision, Recall + +from ml.modeling import ClassificationHead +from ml.typing import Output, TilesInput + + +class Classification(LightningModule): + def __init__(self, backbone: nn.Module) -> None: + super().__init__() + self.backbone = backbone + self.decode_head = ClassificationHead() + self.criterion = nn.CrossEntropyLoss() + + self.val_metrics = MetricCollection( + { + "AUC": AUROC("binary"), + "accuracy": Accuracy("binary"), + "precision": Precision("binary"), + "recall": Recall("binary"), + }, + prefix="validation/", + ) + + self.test_metrics = LazyMetricDict(self.val_metrics.clone(prefix="test/")) + + def forward(self, x: TilesInput) -> Output: + features = self.backbone(x) + return self.decode_head(features) + + def training_step(self, batch: TilesInput) -> Tensor: + inputs, targets, _ = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("train/loss", loss, on_step=True, prog_bar=True) + + return loss + + def validation_step(self, batch: TilesInput) -> None: + inputs, targets, _ = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("validation/loss", loss, on_epoch=True, prog_bar=True) + + self.val_metrics.update(outputs, targets) + self.log_dict(self.val_metrics, on_epoch=True) + + def test_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + for output, target, slide in zip( + outputs, targets, metadata["slide_name"], strict=False + ): + self.test_metrics.update(output, target, key=slide) + self.log_dict(self.test_metrics, on_epoch=True) + + def configure_optimizers(self) -> Optimizer: + return Adam(self.parameters(), lr=0.0001) diff --git a/ml/mil.py b/ml/mil.py new file mode 100644 index 0000000..61af5b8 --- /dev/null +++ b/ml/mil.py @@ -0,0 +1,134 @@ +from copy import deepcopy +from typing import cast + +import torch +from lightning import LightningModule +from torch import Tensor, nn +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import Metric, MetricCollection +from torchmetrics.classification import ( + AUROC, + Accuracy, + CohenKappa, + Precision, + Recall, + Specificity, +) + +from ml.modeling import sigmoid_normalization +from ml.typing import BagsInput, BagsPredictInput, Output + + +class MILBase(LightningModule): + def __init__( + self, foundation: str, num_classes: int, lr: float | None = None + ) -> None: + super().__init__() + match foundation: + case "prov-gigapath" | "uni2": + input_dim = 1536 + case "uni": + input_dim = 1024 + case "virchow" | "virchow2": + input_dim = 2560 + case _: + raise ValueError(f"Unknown foundation model: {foundation}") + + self.encoder = nn.Identity() + self.attention = nn.Sequential( + nn.Linear(input_dim, 512), + nn.Tanh(), + nn.Linear(512, 1), + ) + self.classifier = nn.Linear(input_dim, num_classes) + self.criterion = ( + nn.CrossEntropyLoss() if num_classes > 1 else nn.BCEWithLogitsLoss() + ) + self.activation = nn.Sigmoid() if num_classes == 1 else nn.Softmax(dim=-1) + self.lr = lr + + task = "binary" if num_classes == 1 else "multiclass" + metrics: dict[str, Metric | MetricCollection] = { + "AUC": AUROC(task=task, num_classes=num_classes, average="none"), + "accuracy": Accuracy(task=task, num_classes=num_classes), + "precision": Precision(task=task, num_classes=num_classes, average="none"), + "recall": Recall(task=task, num_classes=num_classes, average="none"), + "specificity": Specificity( + task=task, num_classes=num_classes, average="none" + ), + "kappa": CohenKappa(task=task, num_classes=num_classes), + } + + self.train_metrics = MetricCollection(deepcopy(metrics), prefix="train/") + self.val_metrics = MetricCollection(deepcopy(metrics), prefix="validation/") + self.test_metrics = MetricCollection(deepcopy(metrics), prefix="test/") + + def forward(self, x: Tensor) -> Output: + # x has shape (batch_size, num_tiles_padded, embedding_dim) + x = self.encoder(x) + attention_weights = sigmoid_normalization(self.attention(x)) + mask = (x.abs() > 1e-6).any(dim=-1, keepdim=True).float() + attention_weights = attention_weights * mask + attention_weights = attention_weights / attention_weights.sum( + dim=1, keepdim=True + ) + x = self.classifier(x) + x = torch.sum(attention_weights * x, dim=1) + + return x.squeeze(-1) + + def training_step(self, batch: BagsInput) -> Tensor: + bags, labels, _ = batch + + outputs = self(bags) + loss = self.criterion(outputs, labels) + self.log("train/loss", loss, on_step=True, prog_bar=True, batch_size=len(bags)) + + self.train_metrics.update(self.activation(outputs), labels) + self.log_dict( + self.train_metrics, on_epoch=True, on_step=False, batch_size=len(bags) + ) + + return loss + + def validation_step(self, batch: BagsInput) -> None: + bags, labels, _ = batch + + outputs = self(bags) + loss = self.criterion(outputs, labels) + self.log("validation/loss", loss, prog_bar=True, batch_size=len(bags)) + + self.val_metrics.update(self.activation(outputs), labels) + self.log_dict( + self.val_metrics, on_epoch=True, on_step=False, batch_size=len(bags) + ) + + def test_step(self, batch: BagsInput) -> None: + bags, labels, _ = batch + + outputs = self(bags) + + self.test_metrics.update(self.activation(outputs), labels) + self.log_dict( + self.test_metrics, on_epoch=True, on_step=False, batch_size=len(bags) + ) + + return outputs + + def predict_step(self, batch: BagsPredictInput) -> Output: + return self.activation(self(batch[0])) + + def configure_optimizers(self) -> Optimizer: + if self.lr is None: + raise ValueError("Learning rate must be set for training.") + return Adam(self.parameters(), lr=self.lr) + + def log_dict(self, metrics: MetricCollection, *args, **kwargs) -> None: + for name, result in metrics.compute().items(): + result = cast("Tensor", result) + if result.shape: + for i, value in enumerate(result): + self.log(f"{name}/{i}", value, *args, **kwargs) + else: + self.log(name, result, *args, **kwargs) diff --git a/ml/ordered_regression.py b/ml/ordered_regression.py new file mode 100644 index 0000000..348baa9 --- /dev/null +++ b/ml/ordered_regression.py @@ -0,0 +1,135 @@ +from collections.abc import Mapping +from typing import cast + +from lightning import LightningModule +from rationai.mlkit.metrics import ( + AggregatedMetricCollection, + MaxAggregator, + MeanAggregator, +) +from torch import Tensor +from torch.nn import Module, ModuleDict +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import Metric, MetricCollection +from torchmetrics.classification import ( + MulticlassAccuracy, + MulticlassAUROC, + MulticlassPrecision, + MulticlassRecall, +) + +from ml.loss import CumulativeLinkLoss +from ml.modeling import LogisticCumulativeLink +from ml.modeling.regression_head import RegressionHead +from ml.typing import MetadataTilesBatch, Output, TilesInput, TilesPredictInput + + +class OrderedRegression(LightningModule): + def __init__(self, backbone: Module, lr: float) -> None: + super().__init__() + self.backbone = backbone + self.n_classes = 5 + self.decode_head = RegressionHead() + self.cumulative_link = LogisticCumulativeLink(num_classes=self.n_classes) + self.criterion = CumulativeLinkLoss() + self.lr = lr + + metrics: dict[str, Metric] = { + "AUC": MulticlassAUROC(num_classes=self.n_classes, average=None), + "accuracy": MulticlassAccuracy(num_classes=self.n_classes), + "precision": MulticlassPrecision(num_classes=self.n_classes, average=None), + "recall": MulticlassRecall(num_classes=self.n_classes, average=None), + } + + val_metrics: dict[str, MetricCollection] = { + "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), + "slide_max": AggregatedMetricCollection( + metrics, + aggregator=MaxAggregator(), + prefix="validation/scenes/max/", + ), + "slide_mean": AggregatedMetricCollection( + metrics, + aggregator=MeanAggregator(), + prefix="validation/slides/mean/", + ), + } + + test_metrics = { + name: metric.clone( + prefix=cast("str", metric.prefix).replace("validation", "test") + ) + for name, metric in val_metrics.items() + } + + self.val_metrics = cast("dict[str, MetricCollection]", ModuleDict(val_metrics)) + self.test_metrics = cast( + "dict[str, MetricCollection]", ModuleDict(test_metrics) + ) + + def forward(self, x: Tensor) -> Output: + x = self.backbone(x) + x = self.decode_head(x) + x = self.cumulative_link(x) + return x + + def training_step(self, batch: TilesInput) -> Tensor: + inputs, targets, _ = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("train/loss", loss, on_step=True, prog_bar=True) + + return loss + + def validation_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + + loss = self.criterion(outputs, targets) + self.log("validation/loss", loss, on_epoch=True, prog_bar=True) + + targets = targets.reshape(-1) + self.update_metrics(self.val_metrics, outputs, targets, metadata) + self.log_metrics(self.val_metrics) + + def test_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + + targets = targets.reshape(-1) + self.update_metrics(self.test_metrics, outputs, targets, metadata) + self.log_metrics(self.test_metrics) + + def predict_step(self, batch: TilesPredictInput) -> Output: + return self(batch[0]) + + def configure_optimizers(self) -> Optimizer: + return Adam(self.parameters(), lr=self.lr) + + def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: + for name, metric in dictionary.items(): + result = cast("Tensor", metric.compute()) + if result.shape: + for i, value in enumerate(result): + self.log(f"{name}/{i}", value, *args, **kwargs) + else: + self.log(name, result, *args, **kwargs) + + def update_metrics( + self, + metrics: Mapping[str, MetricCollection], + outputs: Tensor, + targets: Tensor, + metadata: MetadataTilesBatch, + ) -> None: + for name, metric in metrics.items(): + if "slide" in name: + metric.update(outputs, targets, key=metadata["slide_name"]) + else: + metric.update(outputs, targets) + + def log_metrics(self, metrics: dict[str, MetricCollection]) -> None: + for metric in metrics.values(): + self.log_dict(metric, on_epoch=True) diff --git a/ml/project_name_model.py b/ml/project_name_model.py deleted file mode 100644 index 403260d..0000000 --- a/ml/project_name_model.py +++ /dev/null @@ -1,54 +0,0 @@ -from lightning import LightningModule -from torch import Tensor, nn -from torch.optim.optimizer import Optimizer -from torchmetrics import MetricCollection - -from ml.typing import Input, Outputs - - -class ProjectNameModel(LightningModule): - def __init__(self, backbone: nn.Module, decode_head: nn.Module) -> None: - super().__init__() - self.backbone = backbone - self.decode_head = decode_head - self.criterion = ... # TODO add your loss function - - self.val_metrics = MetricCollection( - {...}, # TODO add metrics you want to compute - prefix="validation/", - ) - - self.test_mterics = self.val_metrics.clone(prefix="test/") - - def forward(self, x: Input) -> Outputs: - features = self.backbone(x) - return self.decode_head(features) - - def training_step(self, batch: Input) -> Tensor: - inputs, targets = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("train/loss", loss, on_step=True, prog_bar=True) - - return loss - - def validation_step(self, batch: Input) -> None: - inputs, targets = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("validation/loss", loss, on_epoch=True, prog_bar=True) - - self.val_metrics.update(outputs, targets) - self.log_dict(self.val_metrics, on_epoch=True) - - def test_step(self, batch: Input) -> None: - inputs, targets = batch - outputs = self(inputs) - self.test_metrics.update(outputs, targets) - self.log_dict(self.test_metrics, on_epoch=True) - - def configure_optimizers(self) -> Optimizer: - # TODO add your optimizer - ... diff --git a/ml/typing.py b/ml/typing.py index 29f2672..edd3b02 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -6,7 +6,11 @@ class Metadata(TypedDict): - slide_id: str + slide_name: str + + +class MetadataBatch(TypedDict): + slide_name: list[str] class MetadataTiles(Metadata): @@ -14,21 +18,28 @@ class MetadataTiles(Metadata): y: int +class MetadataTilesBatch(MetadataBatch): + x: Tensor + y: Tensor + + TilesSample: TypeAlias = tuple[Tensor, Tensor, MetadataTiles] TilesPredictSample: TypeAlias = tuple[Tensor, MetadataTiles] +TilesInput: TypeAlias = tuple[Tensor, Tensor, MetadataTilesBatch] +TilesPredictInput: TypeAlias = tuple[Tensor, MetadataTilesBatch] -class MetadataEmbeddings(Metadata): - x: int - y: int - +MetadataEmbeddings: TypeAlias = MetadataTiles +MetadataEmbeddingsBatch: TypeAlias = MetadataTilesBatch EmbeddingsSample: TypeAlias = tuple[Tensor, Tensor, MetadataEmbeddings] EmbeddingsPredictSample: TypeAlias = tuple[Tensor, MetadataEmbeddings] +EmbeddingsInput: TypeAlias = tuple[Tensor, Tensor, MetadataEmbeddingsBatch] +EmbeddingsPredictInput: TypeAlias = tuple[Tensor, MetadataEmbeddingsBatch] + class MetadataBags(Metadata): - slide_name: str slide_path: Path level: int tile_extent_x: int From 81e8eb036d81404d28e277dd210223fa133eb22e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 14:06:52 +0000 Subject: [PATCH 16/45] feat: postprocessing WIP --- postprocessing/ensembling.py | 1 + postprocessing/markov_chain_confidence.py | 1 + 2 files changed, 2 insertions(+) create mode 100644 postprocessing/ensembling.py create mode 100644 postprocessing/markov_chain_confidence.py diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/postprocessing/ensembling.py @@ -0,0 +1 @@ +# TODO diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py new file mode 100644 index 0000000..4640904 --- /dev/null +++ b/postprocessing/markov_chain_confidence.py @@ -0,0 +1 @@ +# TODO From 773e4dfcf0b44fe2a03614e6e2e9fa87821f092a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 16:47:30 +0200 Subject: [PATCH 17/45] feat: ensembling confs --- configs/base.yaml | 2 ++ configs/postprocessing.yaml | 8 ++++++++ configs/postprocessing/ensembling.yaml | 9 +++++++++ configs/predictions/nancy_high/ftn.yaml | 9 +++++++++ configs/predictions/nancy_high/ikem.yaml | 8 ++++++++ configs/predictions/nancy_high/knl_patos.yaml | 9 +++++++++ configs/predictions/nancy_low/ftn.yaml | 9 +++++++++ configs/predictions/nancy_low/ikem.yaml | 8 ++++++++ configs/predictions/nancy_low/knl_patos.yaml | 9 +++++++++ configs/predictions/neutrophils/ftn.yaml | 9 +++++++++ configs/predictions/neutrophils/ikem.yaml | 8 ++++++++ configs/predictions/neutrophils/knl_patos.yaml | 9 +++++++++ configs/preprocessing.yaml | 2 -- 13 files changed, 97 insertions(+), 2 deletions(-) create mode 100644 configs/postprocessing.yaml create mode 100644 configs/postprocessing/ensembling.yaml create mode 100644 configs/predictions/nancy_high/ftn.yaml create mode 100644 configs/predictions/nancy_high/ikem.yaml create mode 100644 configs/predictions/nancy_high/knl_patos.yaml create mode 100644 configs/predictions/nancy_low/ftn.yaml create mode 100644 configs/predictions/nancy_low/ikem.yaml create mode 100644 configs/predictions/nancy_low/knl_patos.yaml create mode 100644 configs/predictions/neutrophils/ftn.yaml create mode 100644 configs/predictions/neutrophils/ikem.yaml create mode 100644 configs/predictions/neutrophils/knl_patos.yaml diff --git a/configs/base.yaml b/configs/base.yaml index 94c880e..2bd2179 100644 --- a/configs/base.yaml +++ b/configs/base.yaml @@ -3,5 +3,7 @@ defaults: - logger: mlflow - _self_ +project_dir: /mnt/projects/inflammatory_bowel_disease/ulcerative_colitis + metadata: experiment_name: Ulcerative Colitis diff --git a/configs/postprocessing.yaml b/configs/postprocessing.yaml new file mode 100644 index 0000000..5c12b05 --- /dev/null +++ b/configs/postprocessing.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - base + - _self_ + +dataset: ??? +predictions: ??? diff --git a/configs/postprocessing/ensembling.yaml b/configs/postprocessing/ensembling.yaml new file mode 100644 index 0000000..60919b6 --- /dev/null +++ b/configs/postprocessing/ensembling.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] + +metadata: + run_name: "Ensembling: ${dataset.institution}" + description: Slide-level ensembling for ${dataset.institution} + hyperparams: + folds: ${folds} diff --git a/configs/predictions/nancy_high/ftn.yaml b/configs/predictions/nancy_high/ftn.yaml new file mode 100644 index 0000000..ed0878e --- /dev/null +++ b/configs/predictions/nancy_high/ftn.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/nancy_high/ikem.yaml b/configs/predictions/nancy_high/ikem.yaml new file mode 100644 index 0000000..44cd6ab --- /dev/null +++ b/configs/predictions/nancy_high/ikem.yaml @@ -0,0 +1,8 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/nancy_high/knl_patos.yaml b/configs/predictions/nancy_high/knl_patos.yaml new file mode 100644 index 0000000..ed0878e --- /dev/null +++ b/configs/predictions/nancy_high/knl_patos.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/nancy_low/ftn.yaml b/configs/predictions/nancy_low/ftn.yaml new file mode 100644 index 0000000..ed0878e --- /dev/null +++ b/configs/predictions/nancy_low/ftn.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/nancy_low/ikem.yaml b/configs/predictions/nancy_low/ikem.yaml new file mode 100644 index 0000000..44cd6ab --- /dev/null +++ b/configs/predictions/nancy_low/ikem.yaml @@ -0,0 +1,8 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/nancy_low/knl_patos.yaml b/configs/predictions/nancy_low/knl_patos.yaml new file mode 100644 index 0000000..ed0878e --- /dev/null +++ b/configs/predictions/nancy_low/knl_patos.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/neutrophils/ftn.yaml b/configs/predictions/neutrophils/ftn.yaml new file mode 100644 index 0000000..ed0878e --- /dev/null +++ b/configs/predictions/neutrophils/ftn.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/predictions/neutrophils/ikem.yaml b/configs/predictions/neutrophils/ikem.yaml new file mode 100644 index 0000000..44cd6ab --- /dev/null +++ b/configs/predictions/neutrophils/ikem.yaml @@ -0,0 +1,8 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/neutrophils/knl_patos.yaml b/configs/predictions/neutrophils/knl_patos.yaml new file mode 100644 index 0000000..ed0878e --- /dev/null +++ b/configs/predictions/neutrophils/knl_patos.yaml @@ -0,0 +1,9 @@ +mlflow_uris: + predictions: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + diff --git a/configs/preprocessing.yaml b/configs/preprocessing.yaml index 08a0372..33a4ddf 100644 --- a/configs/preprocessing.yaml +++ b/configs/preprocessing.yaml @@ -5,5 +5,3 @@ defaults: - _self_ dataset: ??? - -project_dir: /mnt/projects/inflammatory_bowel_disease/ulcerative_colitis From f34c711d85e1f33553b9ffa8a014837c4f07ed87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 15:10:40 +0000 Subject: [PATCH 18/45] feat: configs --- .../postprocessing/ensembling/ftn.yaml | 6 +++++ .../postprocessing/ensembling/ikem.yaml | 6 +++++ .../postprocessing/ensembling/knl_patos.yaml | 6 +++++ configs/predictions/ftn.yaml | 22 +++++++++++++++++++ configs/predictions/ikem.yaml | 22 +++++++++++++++++++ configs/predictions/knl_patos.yaml | 22 +++++++++++++++++++ configs/predictions/nancy_high/ftn.yaml | 9 -------- configs/predictions/nancy_high/ikem.yaml | 8 ------- configs/predictions/nancy_high/knl_patos.yaml | 9 -------- configs/predictions/nancy_low/ftn.yaml | 9 -------- configs/predictions/nancy_low/ikem.yaml | 8 ------- configs/predictions/nancy_low/knl_patos.yaml | 9 -------- configs/predictions/neutrophils/ftn.yaml | 9 -------- configs/predictions/neutrophils/ikem.yaml | 8 ------- .../predictions/neutrophils/knl_patos.yaml | 9 -------- 15 files changed, 84 insertions(+), 78 deletions(-) create mode 100644 configs/experiment/postprocessing/ensembling/ftn.yaml create mode 100644 configs/experiment/postprocessing/ensembling/ikem.yaml create mode 100644 configs/experiment/postprocessing/ensembling/knl_patos.yaml create mode 100644 configs/predictions/ftn.yaml create mode 100644 configs/predictions/ikem.yaml create mode 100644 configs/predictions/knl_patos.yaml delete mode 100644 configs/predictions/nancy_high/ftn.yaml delete mode 100644 configs/predictions/nancy_high/ikem.yaml delete mode 100644 configs/predictions/nancy_high/knl_patos.yaml delete mode 100644 configs/predictions/nancy_low/ftn.yaml delete mode 100644 configs/predictions/nancy_low/ikem.yaml delete mode 100644 configs/predictions/nancy_low/knl_patos.yaml delete mode 100644 configs/predictions/neutrophils/ftn.yaml delete mode 100644 configs/predictions/neutrophils/ikem.yaml delete mode 100644 configs/predictions/neutrophils/knl_patos.yaml diff --git a/configs/experiment/postprocessing/ensembling/ftn.yaml b/configs/experiment/postprocessing/ensembling/ftn.yaml new file mode 100644 index 0000000..4e1029a --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ftn.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ diff --git a/configs/experiment/postprocessing/ensembling/ikem.yaml b/configs/experiment/postprocessing/ensembling/ikem.yaml new file mode 100644 index 0000000..310d01e --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ikem.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ diff --git a/configs/experiment/postprocessing/ensembling/knl_patos.yaml b/configs/experiment/postprocessing/ensembling/knl_patos.yaml new file mode 100644 index 0000000..ccee46d --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/knl_patos.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ diff --git a/configs/predictions/ftn.yaml b/configs/predictions/ftn.yaml new file mode 100644 index 0000000..694f3e7 --- /dev/null +++ b/configs/predictions/ftn.yaml @@ -0,0 +1,22 @@ +mlflow_uris: + nancy_high: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + nancy_low: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + neutrophils: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/ikem.yaml b/configs/predictions/ikem.yaml new file mode 100644 index 0000000..694f3e7 --- /dev/null +++ b/configs/predictions/ikem.yaml @@ -0,0 +1,22 @@ +mlflow_uris: + nancy_high: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + nancy_low: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + neutrophils: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/knl_patos.yaml b/configs/predictions/knl_patos.yaml new file mode 100644 index 0000000..694f3e7 --- /dev/null +++ b/configs/predictions/knl_patos.yaml @@ -0,0 +1,22 @@ +mlflow_uris: + nancy_high: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + nancy_low: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... + neutrophils: + 1/5: ... + 2/5: ... + 3/5: ... + 4/5: ... + 5/5: ... + final: ... diff --git a/configs/predictions/nancy_high/ftn.yaml b/configs/predictions/nancy_high/ftn.yaml deleted file mode 100644 index ed0878e..0000000 --- a/configs/predictions/nancy_high/ftn.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/nancy_high/ikem.yaml b/configs/predictions/nancy_high/ikem.yaml deleted file mode 100644 index 44cd6ab..0000000 --- a/configs/predictions/nancy_high/ikem.yaml +++ /dev/null @@ -1,8 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/nancy_high/knl_patos.yaml b/configs/predictions/nancy_high/knl_patos.yaml deleted file mode 100644 index ed0878e..0000000 --- a/configs/predictions/nancy_high/knl_patos.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/nancy_low/ftn.yaml b/configs/predictions/nancy_low/ftn.yaml deleted file mode 100644 index ed0878e..0000000 --- a/configs/predictions/nancy_low/ftn.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/nancy_low/ikem.yaml b/configs/predictions/nancy_low/ikem.yaml deleted file mode 100644 index 44cd6ab..0000000 --- a/configs/predictions/nancy_low/ikem.yaml +++ /dev/null @@ -1,8 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/nancy_low/knl_patos.yaml b/configs/predictions/nancy_low/knl_patos.yaml deleted file mode 100644 index ed0878e..0000000 --- a/configs/predictions/nancy_low/knl_patos.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/neutrophils/ftn.yaml b/configs/predictions/neutrophils/ftn.yaml deleted file mode 100644 index ed0878e..0000000 --- a/configs/predictions/neutrophils/ftn.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - diff --git a/configs/predictions/neutrophils/ikem.yaml b/configs/predictions/neutrophils/ikem.yaml deleted file mode 100644 index 44cd6ab..0000000 --- a/configs/predictions/neutrophils/ikem.yaml +++ /dev/null @@ -1,8 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/neutrophils/knl_patos.yaml b/configs/predictions/neutrophils/knl_patos.yaml deleted file mode 100644 index ed0878e..0000000 --- a/configs/predictions/neutrophils/knl_patos.yaml +++ /dev/null @@ -1,9 +0,0 @@ -mlflow_uris: - predictions: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - From d9ed16d5b25a1216d6bfd17bd2cb6182efef65f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 19:57:34 +0200 Subject: [PATCH 19/45] feat: postprocessing --- .../postprocessing/ensembling/ftn_final.yaml | 8 ++ .../postprocessing/ensembling/ikem_final.yaml | 8 ++ .../ensembling/knl_patos_final.yaml | 8 ++ .../markov_chain_confidence/ftn_entropy.yaml | 8 ++ .../ftn_herfindahl.yaml | 8 ++ .../markov_chain_confidence/ftn_std.yaml | 8 ++ .../ftn_std_final.yaml | 9 ++ .../markov_chain_confidence/ikem_entropy.yaml | 8 ++ .../ikem_herfindahl.yaml | 8 ++ .../markov_chain_confidence/ikem_std.yaml | 8 ++ .../ikem_std_final.yaml | 9 ++ .../knl_patos_entropy.yaml | 8 ++ .../knl_patos_herfindahl.yaml | 8 ++ .../knl_patos_std.yaml | 8 ++ .../knl_patos_std_final.yaml | 9 ++ .../markov_chain_confidence.yaml | 11 ++ postprocessing/__init__.py | 0 postprocessing/ensembling.py | 128 +++++++++++++++++- postprocessing/markov_chain_confidence.py | 99 +++++++++++++- postprocessing/utils.py | 44 ++++++ scripts/postprocessing/ensembling.py | 16 +++ .../postprocessing/markov_chain_confidence.py | 16 +++ 22 files changed, 435 insertions(+), 2 deletions(-) create mode 100644 configs/experiment/postprocessing/ensembling/ftn_final.yaml create mode 100644 configs/experiment/postprocessing/ensembling/ikem_final.yaml create mode 100644 configs/experiment/postprocessing/ensembling/knl_patos_final.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml create mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml create mode 100644 configs/postprocessing/markov_chain_confidence.yaml create mode 100644 postprocessing/__init__.py create mode 100644 postprocessing/utils.py create mode 100644 scripts/postprocessing/ensembling.py create mode 100644 scripts/postprocessing/markov_chain_confidence.py diff --git a/configs/experiment/postprocessing/ensembling/ftn_final.yaml b/configs/experiment/postprocessing/ensembling/ftn_final.yaml new file mode 100644 index 0000000..3c52f5e --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ftn_final.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/ikem_final.yaml b/configs/experiment/postprocessing/ensembling/ikem_final.yaml new file mode 100644 index 0000000..0b5f874 --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/ikem_final.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml b/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml new file mode 100644 index 0000000..d9a2c27 --- /dev/null +++ b/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml new file mode 100644 index 0000000..c17c079 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml new file mode 100644 index 0000000..89b35d0 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml new file mode 100644 index 0000000..e0fdbd0 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml new file mode 100644 index 0000000..95cadb9 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +defaults: + - /dataset/processed/ftn@dataset + - /predictions/ftn@predictions + - _self_ + +confidence: std +folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml new file mode 100644 index 0000000..10f7c50 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml new file mode 100644 index 0000000..be93eaa --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml new file mode 100644 index 0000000..4a48c46 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml new file mode 100644 index 0000000..cc887d2 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem@predictions + - _self_ + +confidence: std +folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml new file mode 100644 index 0000000..ef9629c --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml new file mode 100644 index 0000000..225c711 --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml new file mode 100644 index 0000000..b76293f --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml new file mode 100644 index 0000000..013824d --- /dev/null +++ b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml @@ -0,0 +1,9 @@ +# @package _global_ + +defaults: + - /dataset/processed/knl_patos@dataset + - /predictions/knl_patos@predictions + - _self_ + +confidence: std +folds: [final] diff --git a/configs/postprocessing/markov_chain_confidence.yaml b/configs/postprocessing/markov_chain_confidence.yaml new file mode 100644 index 0000000..f6ee23a --- /dev/null +++ b/configs/postprocessing/markov_chain_confidence.yaml @@ -0,0 +1,11 @@ +# @package _global_ + +folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] +confidence: ??? # options: entropy, herfindahl, std + +metadata: + run_name: "Markov Chain Confidence (${confidence}): ${dataset.institution}" + description: Markov chain absorption confidence scores for ${dataset.institution} + hyperparams: + folds: ${folds} + confidence: ${confidence} diff --git a/postprocessing/__init__.py b/postprocessing/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py index 4640904..683f853 100644 --- a/postprocessing/ensembling.py +++ b/postprocessing/ensembling.py @@ -1 +1,127 @@ -# TODO +from pathlib import Path +from tempfile import TemporaryDirectory + +import hydra +import mlflow +import numpy as np +import pandas as pd +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger +from sklearn.metrics import ( + accuracy_score, + cohen_kappa_score, + confusion_matrix, + precision_score, + recall_score, +) + +from postprocessing.utils import load_folds, load_label_map + + +METRIC_KEYS = ["accuracy", "precision", "recall", "specificity", "cohen_kappa"] + + +def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: + cm = confusion_matrix(y_true, y_pred) + total = cm.sum() + specs = [] + for i in range(len(cm)): + tp = cm[i, i] + fp = cm[:, i].sum() - tp + fn = cm[i, :].sum() - tp + tn = total - tp - fp - fn + specs.append(tn / (tn + fp) if (tn + fp) > 0 else 0.0) + return float(np.mean(specs)) + + +def fold_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: + return { + "accuracy": accuracy_score(y_true, y_pred), + "precision": precision_score(y_true, y_pred, average="macro", zero_division=0), + "recall": recall_score(y_true, y_pred, average="macro", zero_division=0), + "specificity": macro_specificity(y_true, y_pred), + "cohen_kappa": cohen_kappa_score(y_true, y_pred), + } + + +def log_table_metrics( + label: str, folds: list[str], per_fold: list[dict[str, float]] +) -> None: + for fold, m in zip(folds, per_fold, strict=True): + fold_key = fold.replace("/", "_") + mlflow.log_metrics({f"{label}/fold_{fold_key}/{k}": v for k, v in m.items()}) + means = {k: float(np.mean([m[k] for m in per_fold])) for k in METRIC_KEYS} + mlflow.log_metrics({f"{label}/mean/{k}": v for k, v in means.items()}) + + +FoldData = dict[str, pd.DataFrame] + + +def run_ensembling( + folds: list[str], folds_data: list[FoldData] +) -> tuple[list[dict[str, float]], list[dict[str, float]], pd.DataFrame]: + ens_per_fold: list[dict[str, float]] = [] + hier_per_fold: list[dict[str, float]] = [] + results = [] + + for fold, fold_data in zip(folds, folds_data, strict=True): + neut_df = fold_data["neutrophils"] + nlow_df = fold_data["nancy_low"] + nhigh_df = fold_data["nancy_high"] + + neut_prob = np.array(neut_df["prediction"]) + low_probs = np.array(nlow_df["prediction"].tolist()) + high_probs = np.array(nhigh_df["prediction"].tolist()) + + y_true = neut_df["nancy"].values + low_branch = low_probs[:, :2].argmax(axis=1) + high_branch = high_probs[:, 1:].argmax(axis=1) + 2 + + # Ensembling: soft majority vote across three tasks + route_high_ens = ( + neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) + ) >= 1.5 + ens_pred = np.where(route_high_ens, high_branch, low_branch) + ens_per_fold.append(fold_metrics(y_true, ens_pred)) + + # Hierarchical: neutrophils task alone routes + hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) + hier_per_fold.append(fold_metrics(y_true, hier_pred)) + + for slide, yt, ens_yp, hier_yp in zip( + neut_df.index, y_true, ens_pred, hier_pred, strict=True + ): + results.append( + { + "fold": fold, + "slide": slide, + "nancy": int(yt), + "pred_ensembling": int(ens_yp), + "pred_hierarchical": int(hier_yp), + } + ) + + return ens_per_fold, hier_per_fold, pd.DataFrame(results) + + +@with_cli_args(["+postprocessing=ensembling"]) +@hydra.main(config_path="../configs", config_name="postprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + label_map = load_label_map(config.dataset.mlflow_uris.dataset) + folds: list[str] = list(config.folds) + folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) + ens_per_fold, hier_per_fold, results = run_ensembling(folds, folds_data) + + log_table_metrics("ensembling", folds, ens_per_fold) + log_table_metrics("hierarchical", folds, hier_per_fold) + + with TemporaryDirectory() as tmpdir: + output_path = Path(tmpdir) / "results.csv" + results.to_csv(output_path, index=False) + logger.log_artifact(str(output_path)) + + +if __name__ == "__main__": + main() diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py index 4640904..f874458 100644 --- a/postprocessing/markov_chain_confidence.py +++ b/postprocessing/markov_chain_confidence.py @@ -1 +1,98 @@ -# TODO +from enum import Enum + +import hydra +import mlflow +import numpy as np +import pandas as pd +from omegaconf import DictConfig +from rationai.mlkit import autolog, with_cli_args +from rationai.mlkit.lightning.loggers import MLFlowLogger + +from postprocessing.utils import load_folds, load_label_map + + +class Confidence(Enum): + ENTROPY = "entropy" + HERFINDAHL = "herfindahl" + STD = "std" + + +def absorption_distribution( + neut_df: pd.DataFrame, nlow_df: pd.DataFrame, nhigh_df: pd.DataFrame +) -> np.ndarray: + low = np.array(nlow_df["prediction"].tolist()) # (n, 3) + high = np.array(nhigh_df["prediction"].tolist()) # (n, 4) + + a = 1.0 - np.array(neut_df["prediction"]) # P(neut -> nancy_low) + b = low[:, 2] # P(nancy_low -> nancy_high) + c = low[:, 0] # P(nancy_low -> NHI-0) + d = high[:, 0] # P(nancy_high -> nancy_low) + e = high[:, 1] # P(nancy_high -> NHI-2) + f = high[:, 2] # P(nancy_high -> NHI-3) + + denom = 1.0 - b * d + flow_low = a + d - a * d # absorption flow factor for NHI 0/1 + flow_high = 1.0 - a * (1.0 - b) # absorption flow factor for NHI 2/3/4 + + return np.column_stack( + [ + c * flow_low / denom, # P(NHI-0) + low[:, 1] * flow_low / denom, # P(NHI-1) + e * flow_high / denom, # P(NHI-2) + f * flow_high / denom, # P(NHI-3) + high[:, 3] * flow_high / denom, # P(NHI-4) + ] + ) + + +def compute_confidence(pi: np.ndarray, mode: Confidence) -> np.ndarray: + match mode: + case Confidence.ENTROPY: + safe = np.where(pi > 0, pi, 1.0) + return 1.0 - (-(pi * np.log(safe) / np.log(5)).sum(axis=1)) + case Confidence.HERFINDAHL: + return (np.square(pi).sum(axis=1) - 0.2) / 0.8 + case Confidence.STD: + classes = np.array([0, 1, 2, 3, 4], dtype=float) + mu = (pi * classes).sum(axis=1, keepdims=True) + var = (pi * (classes - mu) ** 2).sum(axis=1) + return np.maximum(0.0, 1.0 - np.sqrt(var)) + + +@with_cli_args(["+postprocessing=markov_chain_confidence"]) +@hydra.main(config_path="../configs", config_name="postprocessing", version_base=None) +@autolog +def main(config: DictConfig, logger: MLFlowLogger) -> None: + confidence_mode = Confidence(config.confidence) + label_map = load_label_map(config.dataset.mlflow_uris.dataset) + folds: list[str] = list(config.folds) + folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) + + rows = [] + for fold, fold_data in zip(folds, folds_data, strict=True): + pi = absorption_distribution( + fold_data["neutrophils"], fold_data["nancy_low"], fold_data["nancy_high"] + ) + confidence = compute_confidence(pi, confidence_mode) + + for slide, pi_row, conf in zip( + fold_data["neutrophils"].index, pi, confidence, strict=True + ): + rows.append( + { + "slide": slide, + "fold": fold, + "pi_0": pi_row[0], + "pi_1": pi_row[1], + "pi_2": pi_row[2], + "pi_3": pi_row[3], + "pi_4": pi_row[4], + "confidence": conf, + } + ) + + mlflow.log_table(pd.DataFrame(rows), artifact_file="confidence.json") + + +if __name__ == "__main__": + main() diff --git a/postprocessing/utils.py b/postprocessing/utils.py new file mode 100644 index 0000000..dc3c867 --- /dev/null +++ b/postprocessing/utils.py @@ -0,0 +1,44 @@ +import json +from collections.abc import Mapping +from pathlib import Path + +import mlflow +import mlflow.artifacts +import pandas as pd + + +TASKS = ["neutrophils", "nancy_low", "nancy_high"] + + +def load_label_map(dataset_uri: str) -> dict[str, int]: + dataset = pd.read_csv(mlflow.artifacts.download_artifacts(dataset_uri), index_col=0) + return {str(k): int(v) for k, v in dataset["nancy"].items()} + + +def load_fold_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: + artifact_path = Path(mlflow.artifacts.download_artifacts(uri)) + if artifact_path.is_dir(): + (artifact_path,) = artifact_path.glob("*.json") + with open(artifact_path) as f: + d = json.load(f) + df = pd.DataFrame(d["data"], columns=d["columns"]) + df["nancy"] = df["slide"].map(label_map) + df = df[df["nancy"].notna()].copy() + df["nancy"] = df["nancy"].astype(int) + return df.set_index("slide") + + +def load_folds( + uris: Mapping[str, Mapping[str, str]], + folds: list[str], + label_map: dict[str, int], +) -> list[dict[str, pd.DataFrame]]: + folds_data = [] + for fold in folds: + fold_dfs = {task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS} + common = fold_dfs[TASKS[0]].index + for df in fold_dfs.values(): + common = common.intersection(df.index) + folds_data.append({k: v.loc[common] for k, v in fold_dfs.items()}) + print(f"Fold {fold}: {len(common)} slides") + return folds_data diff --git a/scripts/postprocessing/ensembling.py b/scripts/postprocessing/ensembling.py new file mode 100644 index 0000000..570b537 --- /dev/null +++ b/scripts/postprocessing/ensembling.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-ensembling-...", + username=..., + public=False, + cpu=2, + memory="4Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m postprocessing.ensembling +experiment/postprocessing/ensembling=...", + ], +) diff --git a/scripts/postprocessing/markov_chain_confidence.py b/scripts/postprocessing/markov_chain_confidence.py new file mode 100644 index 0000000..99a2eec --- /dev/null +++ b/scripts/postprocessing/markov_chain_confidence.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-markov-chain-confidence-...", + username=..., + public=False, + cpu=2, + memory="4Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m postprocessing.markov_chain_confidence +experiment/postprocessing/markov_chain_confidence=...", + ], +) From eec5bb1345497e319be1ee451e82ceef44aa099e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 17:59:09 +0000 Subject: [PATCH 20/45] chore: format --- postprocessing/utils.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/postprocessing/utils.py b/postprocessing/utils.py index dc3c867..ca79fa1 100644 --- a/postprocessing/utils.py +++ b/postprocessing/utils.py @@ -35,7 +35,9 @@ def load_folds( ) -> list[dict[str, pd.DataFrame]]: folds_data = [] for fold in folds: - fold_dfs = {task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS} + fold_dfs = { + task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS + } common = fold_dfs[TASKS[0]].index for df in fold_dfs.values(): common = common.intersection(df.index) From b653c460a84d697e123bd7bdeac32fe2cd8e30fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 18:01:25 +0000 Subject: [PATCH 21/45] feat: mil --- ml/mil.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml/mil.py b/ml/mil.py index 61af5b8..e162b3f 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -20,7 +20,7 @@ from ml.typing import BagsInput, BagsPredictInput, Output -class MILBase(LightningModule): +class MIL(LightningModule): def __init__( self, foundation: str, num_classes: int, lr: float | None = None ) -> None: From 838125a70e3831a9c4657130632f2fa254d94599 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 20:24:51 +0200 Subject: [PATCH 22/45] feat: ml --- ml/base.py | 129 +++++++++++++++++++++++++++++++++++++++ ml/classification.py | 68 +++------------------ ml/ordered_regression.py | 129 +++------------------------------------ 3 files changed, 147 insertions(+), 179 deletions(-) create mode 100644 ml/base.py diff --git a/ml/base.py b/ml/base.py new file mode 100644 index 0000000..c95f3c0 --- /dev/null +++ b/ml/base.py @@ -0,0 +1,129 @@ +from abc import abstractmethod +from collections.abc import Mapping +from typing import cast + +from lightning import LightningModule +from rationai.mlkit.metrics import ( + AggregatedMetricCollection, + MaxAggregator, + MeanAggregator, +) +from torch import Tensor +from torch.nn import Module, ModuleDict +from torch.optim.adam import Adam +from torch.optim.optimizer import Optimizer +from torchmetrics import MetricCollection +from torchmetrics.classification import ( + MulticlassAccuracy, + MulticlassAUROC, + MulticlassCohenKappa, + MulticlassPrecision, + MulticlassRecall, + MulticlassSpecificity, +) + +from ml.typing import MetadataTilesBatch, Output, TilesInput, TilesPredictInput + + +class BaseModule(LightningModule): + criterion: Module + + def __init__(self, backbone: Module, lr: float) -> None: + super().__init__() + self.backbone = backbone + self.lr = lr + + N_CLASSES = 5 + + def _build_metrics(self) -> None: + metrics = { + "AUC": MulticlassAUROC(num_classes=self.N_CLASSES, average=None), + "accuracy": MulticlassAccuracy(num_classes=self.N_CLASSES), + "precision": MulticlassPrecision(num_classes=self.N_CLASSES, average=None), + "recall": MulticlassRecall(num_classes=self.N_CLASSES, average=None), + "specificity": MulticlassSpecificity( + num_classes=self.N_CLASSES, average=None + ), + "kappa": MulticlassCohenKappa(num_classes=self.N_CLASSES), + } + val_metrics: dict[str, MetricCollection] = { + "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), + "slide_max": AggregatedMetricCollection( + metrics, + aggregator=MaxAggregator(), + prefix="validation/scenes/max/", + ), + "slide_mean": AggregatedMetricCollection( + metrics, + aggregator=MeanAggregator(), + prefix="validation/slides/mean/", + ), + } + test_metrics = { + name: metric.clone( + prefix=cast("str", metric.prefix).replace("validation", "test") + ) + for name, metric in val_metrics.items() + } + self.val_metrics = cast("dict[str, MetricCollection]", ModuleDict(val_metrics)) + self.test_metrics = cast( + "dict[str, MetricCollection]", ModuleDict(test_metrics) + ) + + @abstractmethod + def forward(self, x: Tensor) -> Output: ... + + def training_step(self, batch: TilesInput) -> Tensor: + inputs, targets, _ = batch + outputs = self(inputs) + loss = self.criterion(outputs, targets) + self.log("train/loss", loss, on_step=True, prog_bar=True) + return loss + + def validation_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + loss = self.criterion(outputs, targets) + self.log("validation/loss", loss, on_epoch=True, prog_bar=True) + targets = targets.reshape(-1) + self.update_metrics(self.val_metrics, outputs, targets, metadata) + self.log_metrics(self.val_metrics) + + def test_step(self, batch: TilesInput) -> None: + inputs, targets, metadata = batch + outputs = self(inputs) + targets = targets.reshape(-1) + self.update_metrics(self.test_metrics, outputs, targets, metadata) + self.log_metrics(self.test_metrics) + + def predict_step(self, batch: TilesPredictInput) -> Output: + return self(batch[0]) + + def configure_optimizers(self) -> Optimizer: + return Adam(self.parameters(), lr=self.lr) + + def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: + for name, metric in dictionary.items(): + result = cast("Tensor", metric.compute()) + if result.shape: + for i, value in enumerate(result): + self.log(f"{name}/{i}", value, *args, **kwargs) + else: + self.log(name, result, *args, **kwargs) + + def update_metrics( + self, + metrics: Mapping[str, MetricCollection], + outputs: Tensor, + targets: Tensor, + metadata: MetadataTilesBatch, + ) -> None: + for name, metric in metrics.items(): + if "slide" in name: + metric.update(outputs, targets, key=metadata["slide_name"]) + else: + metric.update(outputs, targets) + + def log_metrics(self, metrics: dict[str, MetricCollection]) -> None: + for metric in metrics.values(): + self.log_dict(metric, on_epoch=True) diff --git a/ml/classification.py b/ml/classification.py index e7a3edc..bea4795 100644 --- a/ml/classification.py +++ b/ml/classification.py @@ -1,64 +1,16 @@ -from lightning import LightningModule -from rationai.mlkit.metrics import LazyMetricDict from torch import Tensor, nn -from torch.optim.adam import Adam -from torch.optim.optimizer import Optimizer -from torchmetrics import AUROC, Accuracy, MetricCollection, Precision, Recall +from torch.nn import Module -from ml.modeling import ClassificationHead -from ml.typing import Output, TilesInput +from ml.base import BaseModule +from ml.typing import Output -class Classification(LightningModule): - def __init__(self, backbone: nn.Module) -> None: - super().__init__() - self.backbone = backbone - self.decode_head = ClassificationHead() +class Classification(BaseModule): + def __init__(self, backbone: Module, decode_head: Module, lr: float = 1e-4) -> None: + super().__init__(backbone, lr) + self.decode_head = decode_head self.criterion = nn.CrossEntropyLoss() + self._build_metrics() - self.val_metrics = MetricCollection( - { - "AUC": AUROC("binary"), - "accuracy": Accuracy("binary"), - "precision": Precision("binary"), - "recall": Recall("binary"), - }, - prefix="validation/", - ) - - self.test_metrics = LazyMetricDict(self.val_metrics.clone(prefix="test/")) - - def forward(self, x: TilesInput) -> Output: - features = self.backbone(x) - return self.decode_head(features) - - def training_step(self, batch: TilesInput) -> Tensor: - inputs, targets, _ = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("train/loss", loss, on_step=True, prog_bar=True) - - return loss - - def validation_step(self, batch: TilesInput) -> None: - inputs, targets, _ = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("validation/loss", loss, on_epoch=True, prog_bar=True) - - self.val_metrics.update(outputs, targets) - self.log_dict(self.val_metrics, on_epoch=True) - - def test_step(self, batch: TilesInput) -> None: - inputs, targets, metadata = batch - outputs = self(inputs) - for output, target, slide in zip( - outputs, targets, metadata["slide_name"], strict=False - ): - self.test_metrics.update(output, target, key=slide) - self.log_dict(self.test_metrics, on_epoch=True) - - def configure_optimizers(self) -> Optimizer: - return Adam(self.parameters(), lr=0.0001) + def forward(self, x: Tensor) -> Output: + return self.decode_head(self.backbone(x)) diff --git a/ml/ordered_regression.py b/ml/ordered_regression.py index 348baa9..6932590 100644 --- a/ml/ordered_regression.py +++ b/ml/ordered_regression.py @@ -1,135 +1,22 @@ -from collections.abc import Mapping -from typing import cast - -from lightning import LightningModule -from rationai.mlkit.metrics import ( - AggregatedMetricCollection, - MaxAggregator, - MeanAggregator, -) from torch import Tensor -from torch.nn import Module, ModuleDict -from torch.optim.adam import Adam -from torch.optim.optimizer import Optimizer -from torchmetrics import Metric, MetricCollection -from torchmetrics.classification import ( - MulticlassAccuracy, - MulticlassAUROC, - MulticlassPrecision, - MulticlassRecall, -) +from torch.nn import Module +from ml.base import BaseModule from ml.loss import CumulativeLinkLoss from ml.modeling import LogisticCumulativeLink from ml.modeling.regression_head import RegressionHead -from ml.typing import MetadataTilesBatch, Output, TilesInput, TilesPredictInput +from ml.typing import Output -class OrderedRegression(LightningModule): +class OrderedRegression(BaseModule): def __init__(self, backbone: Module, lr: float) -> None: - super().__init__() - self.backbone = backbone - self.n_classes = 5 + super().__init__(backbone, lr) self.decode_head = RegressionHead() - self.cumulative_link = LogisticCumulativeLink(num_classes=self.n_classes) + self.cumulative_link = LogisticCumulativeLink(num_classes=self.N_CLASSES) self.criterion = CumulativeLinkLoss() - self.lr = lr - - metrics: dict[str, Metric] = { - "AUC": MulticlassAUROC(num_classes=self.n_classes, average=None), - "accuracy": MulticlassAccuracy(num_classes=self.n_classes), - "precision": MulticlassPrecision(num_classes=self.n_classes, average=None), - "recall": MulticlassRecall(num_classes=self.n_classes, average=None), - } - - val_metrics: dict[str, MetricCollection] = { - "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), - "slide_max": AggregatedMetricCollection( - metrics, - aggregator=MaxAggregator(), - prefix="validation/scenes/max/", - ), - "slide_mean": AggregatedMetricCollection( - metrics, - aggregator=MeanAggregator(), - prefix="validation/slides/mean/", - ), - } - - test_metrics = { - name: metric.clone( - prefix=cast("str", metric.prefix).replace("validation", "test") - ) - for name, metric in val_metrics.items() - } - - self.val_metrics = cast("dict[str, MetricCollection]", ModuleDict(val_metrics)) - self.test_metrics = cast( - "dict[str, MetricCollection]", ModuleDict(test_metrics) - ) + self._build_metrics() def forward(self, x: Tensor) -> Output: x = self.backbone(x) x = self.decode_head(x) - x = self.cumulative_link(x) - return x - - def training_step(self, batch: TilesInput) -> Tensor: - inputs, targets, _ = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("train/loss", loss, on_step=True, prog_bar=True) - - return loss - - def validation_step(self, batch: TilesInput) -> None: - inputs, targets, metadata = batch - outputs = self(inputs) - - loss = self.criterion(outputs, targets) - self.log("validation/loss", loss, on_epoch=True, prog_bar=True) - - targets = targets.reshape(-1) - self.update_metrics(self.val_metrics, outputs, targets, metadata) - self.log_metrics(self.val_metrics) - - def test_step(self, batch: TilesInput) -> None: - inputs, targets, metadata = batch - outputs = self(inputs) - - targets = targets.reshape(-1) - self.update_metrics(self.test_metrics, outputs, targets, metadata) - self.log_metrics(self.test_metrics) - - def predict_step(self, batch: TilesPredictInput) -> Output: - return self(batch[0]) - - def configure_optimizers(self) -> Optimizer: - return Adam(self.parameters(), lr=self.lr) - - def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: - for name, metric in dictionary.items(): - result = cast("Tensor", metric.compute()) - if result.shape: - for i, value in enumerate(result): - self.log(f"{name}/{i}", value, *args, **kwargs) - else: - self.log(name, result, *args, **kwargs) - - def update_metrics( - self, - metrics: Mapping[str, MetricCollection], - outputs: Tensor, - targets: Tensor, - metadata: MetadataTilesBatch, - ) -> None: - for name, metric in metrics.items(): - if "slide" in name: - metric.update(outputs, targets, key=metadata["slide_name"]) - else: - metric.update(outputs, targets) - - def log_metrics(self, metrics: dict[str, MetricCollection]) -> None: - for metric in metrics.values(): - self.log_dict(metric, on_epoch=True) + return self.cumulative_link(x) From 617c720cdb6280b2e2e3a6fe3ba9d72fc6a57821 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 18:26:43 +0000 Subject: [PATCH 23/45] feat: bags --- ml/data/datasets/bags.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 7aeabad..9c654eb 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -49,7 +49,6 @@ def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: embeddings = F.pad(embeddings, (0, 0, 0, pad_amount), value=0.0) metadata = MetadataBags( - slide_name=slide_metadata["id"], slide_name=slide_name, slide_path=Path(slide_metadata["path"]), level=slide_metadata["level"], @@ -90,7 +89,6 @@ def __init__( tiling_uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, - slide_names: Iterable[str] | None = None, ) -> None: super().__init__( tiling_uris=tiling_uris, From 34d19a701c309d75d12b15a969648e92cd92b5c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Thu, 7 May 2026 21:28:27 +0200 Subject: [PATCH 24/45] feat: qc filtering --- ml/data/datasets/bags.py | 14 ++++++++++++-- ml/data/datasets/embeddings.py | 13 +++++++++++-- ml/data/datasets/tiles.py | 13 +++++++++++-- ml/data/datasets/utils.py | 7 +++++++ 4 files changed, 41 insertions(+), 6 deletions(-) create mode 100644 ml/data/datasets/utils.py diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 9c654eb..a6652bf 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -1,3 +1,4 @@ +from collections import Counter from collections.abc import Iterable from pathlib import Path from typing import Generic, TypeVar @@ -8,6 +9,7 @@ from torch.utils.data import Dataset from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.data.datasets.utils import filter_tiles from ml.typing import BagsPredictSample, BagsSample, MetadataBags @@ -21,19 +23,23 @@ def __init__( mode: LabelMode | str | None = None, padding: bool = True, include_labels: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: self.mode = LabelMode(mode) if mode is not None else None self.include_labels = include_labels + self.thresholds = thresholds or {} if self.include_labels and self.mode is None: raise ValueError("Mode must be specified when including labels.") self._meta = SlidesTilesLoader(uris=tiling_uris) - self.tiles = self._meta.tiles + self.tiles = filter_tiles(self._meta.tiles, self.thresholds) + self._meta.tiles = self.tiles + self._meta._slide_id_to_indices = self._build_tile_index(self.tiles) self.slides = process_slides(self._meta.slides, self.mode) self.padding = padding - self.max_embeddings = self.tiles["slide_id"].value_counts().max() + self.max_embeddings = max(Counter(self.tiles["slide_id"]).values()) def __len__(self) -> int: return len(self.slides) @@ -74,12 +80,14 @@ def __init__( tiling_uris: Iterable[str] | str, mode: LabelMode | str, padding: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: super().__init__( tiling_uris=tiling_uris, mode=mode, padding=padding, include_labels=True, + thresholds=thresholds, ) @@ -89,10 +97,12 @@ def __init__( tiling_uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: super().__init__( tiling_uris=tiling_uris, mode=mode, padding=padding, include_labels=False, + thresholds=thresholds, ) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index c38d9c0..42ce5f2 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -7,6 +7,7 @@ from torch.utils.data import Dataset from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.data.datasets.utils import filter_tiles from ml.typing import EmbeddingsPredictSample, EmbeddingsSample, MetadataEmbeddings @@ -54,8 +55,10 @@ def __init__( self, uris: Iterable[str] | str, mode: LabelMode | str, + thresholds: dict[str, float] | None = None, ) -> None: self.mode = LabelMode(mode) + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: @@ -63,7 +66,9 @@ def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: return ( _Embeddings( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=self.mode, include_labels=True, ) @@ -76,8 +81,10 @@ def __init__( self, uris: Iterable[str] | str, mode: LabelMode | str, + thresholds: dict[str, float] | None = None, ) -> None: self.mode = LabelMode(mode) + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsPredictSample]]: @@ -85,7 +92,9 @@ def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsPredictSample]]: return ( _Embeddings( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=self.mode, include_labels=False, ) diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 58c16a2..16448b0 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -8,6 +8,7 @@ from torch.utils.data import Dataset from ml.data.datasets.labels import LabelMode, get_label, process_slides +from ml.data.datasets.utils import filter_tiles from ml.typing import MetadataTiles, TilesPredictSample, TilesSample @@ -73,10 +74,12 @@ def __init__( mode: LabelMode | str, transforms: TransformType | None = None, to_tensor: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: self.transforms = transforms self.mode = LabelMode(mode) self.to_tensor = to_tensor + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: @@ -84,7 +87,9 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: return ( _Tiles( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=self.mode, include_labels=True, transforms=self.transforms, @@ -100,9 +105,11 @@ def __init__( uris: Iterable[str] | str, transforms: TransformType | None = None, to_tensor: bool = True, + thresholds: dict[str, float] | None = None, ) -> None: self.transforms = transforms self.to_tensor = to_tensor + self.thresholds = thresholds or {} super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: @@ -110,7 +117,9 @@ def generate_datasets(self) -> Iterable[_Tiles[TilesPredictSample]]: return ( _Tiles( slide_metadata=dict(slide), - tiles=self.filter_tiles_by_slide(dict(slide)["id"]), + tiles=filter_tiles( + self.filter_tiles_by_slide(dict(slide)["id"]), self.thresholds + ), mode=None, include_labels=False, transforms=self.transforms, diff --git a/ml/data/datasets/utils.py b/ml/data/datasets/utils.py new file mode 100644 index 0000000..90f6cc8 --- /dev/null +++ b/ml/data/datasets/utils.py @@ -0,0 +1,7 @@ +from datasets import Dataset as HFDataset + + +def filter_tiles(tiles: HFDataset, thresholds: dict[str, float]) -> HFDataset: + return tiles.filter( + lambda tile: all(tile[col] <= thr for col, thr in thresholds.items()) + ) From 24d11d6996a99f38c42866d624621da75d42547f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 10:34:11 +0200 Subject: [PATCH 25/45] fix: bags --- ml/data/datasets/bags.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index a6652bf..b057410 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -35,7 +35,7 @@ def __init__( self._meta = SlidesTilesLoader(uris=tiling_uris) self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles - self._meta._slide_id_to_indices = self._build_tile_index(self.tiles) + self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) self.slides = process_slides(self._meta.slides, self.mode) self.padding = padding From 6c4cea6efbfa7c4209d757d8bce2fb346ad45787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 10:46:19 +0200 Subject: [PATCH 26/45] feat: more tilings --- configs/experiment/preprocessing/tiling/0_320.yaml | 5 +++++ configs/experiment/preprocessing/tiling/0_512.yaml | 5 +++++ configs/experiment/preprocessing/tiling/1_224.yaml | 5 +++++ configs/experiment/preprocessing/tiling/2_224.yaml | 5 +++++ configs/preprocessing/tiling.yaml | 6 +++--- scripts/preprocessing/tiling.py | 2 +- 6 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 configs/experiment/preprocessing/tiling/0_320.yaml create mode 100644 configs/experiment/preprocessing/tiling/0_512.yaml create mode 100644 configs/experiment/preprocessing/tiling/1_224.yaml create mode 100644 configs/experiment/preprocessing/tiling/2_224.yaml diff --git a/configs/experiment/preprocessing/tiling/0_320.yaml b/configs/experiment/preprocessing/tiling/0_320.yaml new file mode 100644 index 0000000..1aa21c1 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/0_320.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 0.17 # level 0 +tile_extent: 320 +stride: 160 \ No newline at end of file diff --git a/configs/experiment/preprocessing/tiling/0_512.yaml b/configs/experiment/preprocessing/tiling/0_512.yaml new file mode 100644 index 0000000..b1fbc04 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/0_512.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 0.17 # level 0 +tile_extent: 512 +stride: 256 \ No newline at end of file diff --git a/configs/experiment/preprocessing/tiling/1_224.yaml b/configs/experiment/preprocessing/tiling/1_224.yaml new file mode 100644 index 0000000..4c67413 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/1_224.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 0.51 # level 1 +tile_extent: 224 +stride: 112 \ No newline at end of file diff --git a/configs/experiment/preprocessing/tiling/2_224.yaml b/configs/experiment/preprocessing/tiling/2_224.yaml new file mode 100644 index 0000000..ca84f78 --- /dev/null +++ b/configs/experiment/preprocessing/tiling/2_224.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +mpp: 1.54 # level 2 +tile_extent: 224 +stride: 112 \ No newline at end of file diff --git a/configs/preprocessing/tiling.yaml b/configs/preprocessing/tiling.yaml index ab4b48f..f2883fb 100644 --- a/configs/preprocessing/tiling.yaml +++ b/configs/preprocessing/tiling.yaml @@ -1,8 +1,8 @@ # @package _global_ -mpp: 1.55 # level 2 -tile_extent: 224 -stride: 112 +mpp: ??? +tile_extent: ??? +stride: ??? tissue_threshold: 0.5 metadata: diff --git a/scripts/preprocessing/tiling.py b/scripts/preprocessing/tiling.py index 61bea4d..6226fb7 100644 --- a/scripts/preprocessing/tiling.py +++ b/scripts/preprocessing/tiling.py @@ -12,7 +12,7 @@ "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", "cd workdir", "uv sync --frozen", - "uv run --active -m preprocessing.tiling +dataset=processed_w_masks/...", + "uv run --active -m preprocessing.tiling +dataset=processed_w_masks/... +experiment=preprocessing/tiling/...", ], storage=[storage.secure.DATA], ) From a494ced5b6b39cea64f422322c2e089f3d328a68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 11:20:57 +0200 Subject: [PATCH 27/45] feat: folds --- ml/data/datasets/bags.py | 8 +++++++- ml/data/datasets/embeddings.py | 6 +++++- ml/data/datasets/labels.py | 13 ++++++++++++- ml/data/datasets/tiles.py | 6 +++++- 4 files changed, 29 insertions(+), 4 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index b057410..a9677a7 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -24,6 +24,8 @@ def __init__( padding: bool = True, include_labels: bool = True, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: self.mode = LabelMode(mode) if mode is not None else None self.include_labels = include_labels @@ -36,7 +38,7 @@ def __init__( self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) - self.slides = process_slides(self._meta.slides, self.mode) + self.slides = process_slides(self._meta.slides, self.mode, val_fold=val_fold, is_val=is_val) self.padding = padding self.max_embeddings = max(Counter(self.tiles["slide_id"]).values()) @@ -81,6 +83,8 @@ def __init__( mode: LabelMode | str, padding: bool = True, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: super().__init__( tiling_uris=tiling_uris, @@ -88,6 +92,8 @@ def __init__( padding=padding, include_labels=True, thresholds=thresholds, + val_fold=val_fold, + is_val=is_val, ) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 42ce5f2..27c0d37 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -56,13 +56,17 @@ def __init__( uris: Iterable[str] | str, mode: LabelMode | str, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: self.mode = LabelMode(mode) self.thresholds = thresholds or {} + self.val_fold = val_fold + self.is_val = is_val super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: - self.slides = process_slides(self.slides, self.mode) + self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) return ( _Embeddings( slide_metadata=dict(slide), diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index c95448f..82aa67f 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -12,7 +12,12 @@ class LabelMode(Enum): ALL = "all" -def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDataset: +def process_slides( + slides: HFDataset, + mode: LabelMode | None = None, + val_fold: int | None = None, + is_val: bool = False, +) -> HFDataset: match mode: case LabelMode.NEUTROPHILS: slides = slides.map(lambda x: {"neutrophils": x["nancy_index"] >= 2}) @@ -26,6 +31,12 @@ def process_slides(slides: HFDataset, mode: LabelMode | None = None) -> HFDatase # Keep all labels pass + if val_fold is not None: + if is_val: + slides = slides.filter(lambda x: x["fold"] == val_fold) + else: + slides = slides.filter(lambda x: x["fold"] != val_fold) + slides = slides.map(lambda x: {"name": Path(x["path"]).stem}) return slides diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 16448b0..20cef35 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -75,15 +75,19 @@ def __init__( transforms: TransformType | None = None, to_tensor: bool = True, thresholds: dict[str, float] | None = None, + val_fold: int | None = None, + is_val: bool = False, ) -> None: self.transforms = transforms self.mode = LabelMode(mode) self.to_tensor = to_tensor self.thresholds = thresholds or {} + self.val_fold = val_fold + self.is_val = is_val super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: - self.slides = process_slides(self.slides, self.mode) + self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) return ( _Tiles( slide_metadata=dict(slide), From e497a9375d46c7b7e9436ffa4ce8167b2b17ce82 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 09:23:49 +0000 Subject: [PATCH 28/45] feat: sampler WIP --- ml/data/samplers/__init__.py | 6 +++++ .../samplers/auto_weighted_random_sampler.py | 26 +++++++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 ml/data/samplers/__init__.py create mode 100644 ml/data/samplers/auto_weighted_random_sampler.py diff --git a/ml/data/samplers/__init__.py b/ml/data/samplers/__init__.py new file mode 100644 index 0000000..f982fa8 --- /dev/null +++ b/ml/data/samplers/__init__.py @@ -0,0 +1,6 @@ +from ml.data.samplers.auto_weighted_random_sampler import ( + AutoWeightedRandomSampler, +) + + +__all__ = ["AutoWeightedRandomSampler"] diff --git a/ml/data/samplers/auto_weighted_random_sampler.py b/ml/data/samplers/auto_weighted_random_sampler.py new file mode 100644 index 0000000..49f26b2 --- /dev/null +++ b/ml/data/samplers/auto_weighted_random_sampler.py @@ -0,0 +1,26 @@ +from collections.abc import Sequence + +import pandas as pd +from torch.utils.data import WeightedRandomSampler + +from ml.data.datasets import ( + SlideEmbeddingsSubset, + TileEmbeddingsSubset, + TilesSubset, +) + + +class AutoWeightedRandomSampler(WeightedRandomSampler): + def __init__( + self, + dataset: TilesSubset | TileEmbeddingsSubset | SlideEmbeddingsSubset, + column: str, + replacement: bool = True, + ) -> None: + super().__init__( + self._get_weights(dataset.slides[column]), len(dataset), replacement + ) + + def _get_weights(self, column: pd.Series) -> Sequence[float]: + value_counts = column.value_counts() + return column.apply(lambda x: 1 / value_counts[x]).tolist() From 406e83b1e22646ce6650abece2d774f934053f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 11:36:56 +0200 Subject: [PATCH 29/45] feat: sampling --- ml/data/datasets/bags.py | 9 +++++- ml/data/datasets/embeddings.py | 8 +++++ ml/data/datasets/tiles.py | 8 +++++ .../samplers/auto_weighted_random_sampler.py | 32 +++++++------------ 4 files changed, 36 insertions(+), 21 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index a9677a7..a290f9e 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -38,7 +38,9 @@ def __init__( self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) - self.slides = process_slides(self._meta.slides, self.mode, val_fold=val_fold, is_val=is_val) + self.slides = process_slides( + self._meta.slides, self.mode, val_fold=val_fold, is_val=is_val + ) self.padding = padding self.max_embeddings = max(Counter(self.tiles["slide_id"]).values()) @@ -77,6 +79,11 @@ def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: class Bags(_Bags[BagsSample]): + @property + def labels(self) -> list[int]: + assert self.mode is not None + return [int(get_label(dict(slide), self.mode).item()) for slide in self.slides] + def __init__( self, tiling_uris: Iterable[str] | str, diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 27c0d37..4c47aa2 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -51,6 +51,14 @@ def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: class Embeddings(MetaTiledSlides[EmbeddingsSample]): + @property + def labels(self) -> list[int]: + return [ + int(get_label(ds.slide_metadata, self.mode).item()) + for ds in self.datasets + for _ in range(len(ds)) + ] + def __init__( self, uris: Iterable[str] | str, diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 20cef35..9e3b984 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -68,6 +68,14 @@ def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: class Tiles(MetaTiledSlides[TilesSample]): + @property + def labels(self) -> list[int]: + return [ + int(get_label(ds.slide_metadata, self.mode).item()) + for ds in self.datasets + for _ in range(len(ds)) + ] + def __init__( self, uris: Iterable[str] | str, diff --git a/ml/data/samplers/auto_weighted_random_sampler.py b/ml/data/samplers/auto_weighted_random_sampler.py index 49f26b2..cdabe4f 100644 --- a/ml/data/samplers/auto_weighted_random_sampler.py +++ b/ml/data/samplers/auto_weighted_random_sampler.py @@ -1,26 +1,18 @@ -from collections.abc import Sequence +from collections import Counter +from typing import Protocol -import pandas as pd from torch.utils.data import WeightedRandomSampler -from ml.data.datasets import ( - SlideEmbeddingsSubset, - TileEmbeddingsSubset, - TilesSubset, -) +class LabeledDataset(Protocol): + def __len__(self) -> int: ... + @property + def labels(self) -> list[int]: ... -class AutoWeightedRandomSampler(WeightedRandomSampler): - def __init__( - self, - dataset: TilesSubset | TileEmbeddingsSubset | SlideEmbeddingsSubset, - column: str, - replacement: bool = True, - ) -> None: - super().__init__( - self._get_weights(dataset.slides[column]), len(dataset), replacement - ) - def _get_weights(self, column: pd.Series) -> Sequence[float]: - value_counts = column.value_counts() - return column.apply(lambda x: 1 / value_counts[x]).tolist() +class AutoWeightedRandomSampler(WeightedRandomSampler): + def __init__(self, dataset: LabeledDataset, replacement: bool = True) -> None: + labels = dataset.labels + counts = Counter(labels) + weights = [1.0 / counts[label] for label in labels] + super().__init__(weights, len(dataset), replacement) From 89326595c884b14116bc2580612f7e7a0ef84175 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 11:46:42 +0200 Subject: [PATCH 30/45] feat: datamodule --- ml/data/data_module.py | 61 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 53 insertions(+), 8 deletions(-) diff --git a/ml/data/data_module.py b/ml/data/data_module.py index f803ac5..133c60f 100644 --- a/ml/data/data_module.py +++ b/ml/data/data_module.py @@ -1,20 +1,32 @@ -from collections.abc import Iterable +from collections.abc import Callable, Iterable +import torch from hydra.utils import instantiate from lightning import LightningDataModule from omegaconf import DictConfig +from torch import Tensor from torch.utils.data import DataLoader -from ml.typing import Input +from ml.data.samplers import AutoWeightedRandomSampler +from ml.typing import Metadata class DataModule(LightningDataModule): def __init__( - self, batch_size: int, num_workers: int = 0, **datasets: DictConfig + self, + batch_size: int, + num_workers: int = 0, + weighted_sampling: bool = True, + collate_fn: Callable | None = None, + collate_fn_predict: Callable | None = None, + **datasets: DictConfig, ) -> None: super().__init__() self.batch_size = batch_size self.num_workers = num_workers + self.weighted_sampling = weighted_sampling + self.collate_fn = collate_fn + self.collate_fn_predict = collate_fn_predict self.datasets = datasets def setup(self, stage: str) -> None: @@ -26,26 +38,59 @@ def setup(self, stage: str) -> None: self.val = instantiate(self.datasets["val"]) case "test": self.test = instantiate(self.datasets["test"]) + case "predict": + self.predict = instantiate(self.datasets["predict"]) - def train_dataloader(self) -> Iterable[Input]: + def train_dataloader(self) -> Iterable: + sampler = ( + AutoWeightedRandomSampler(self.train) if self.weighted_sampling else None + ) return DataLoader( self.train, batch_size=self.batch_size, - shuffle=True, + sampler=sampler, + shuffle=sampler is None, drop_last=True, num_workers=self.num_workers, + collate_fn=self.collate_fn, persistent_workers=self.num_workers > 0, ) - def val_dataloader(self) -> Iterable[Input]: + def val_dataloader(self) -> Iterable: return DataLoader( self.val, batch_size=self.batch_size, num_workers=self.num_workers, + collate_fn=self.collate_fn, persistent_workers=self.num_workers > 0, ) - def test_dataloader(self) -> Iterable[Input]: + def test_dataloader(self) -> Iterable: + return DataLoader( + self.test, + batch_size=self.batch_size, + num_workers=self.num_workers, + collate_fn=self.collate_fn, + ) + + def predict_dataloader(self) -> Iterable: return DataLoader( - self.test, batch_size=self.batch_size, num_workers=self.num_workers + self.predict, + batch_size=self.batch_size, + num_workers=self.num_workers, + collate_fn=self.collate_fn_predict, ) + + +def collate_fn( + batch: list[tuple[Tensor, Tensor, Metadata]], +) -> tuple[Tensor, Tensor, list[Metadata]]: + inputs, labels, metadatas = zip(*batch, strict=True) + return torch.stack(list(inputs)), torch.stack(list(labels)), list(metadatas) + + +def collate_fn_predict( + batch: list[tuple[Tensor, Metadata]], +) -> tuple[Tensor, list[Metadata]]: + inputs, metadatas = zip(*batch, strict=True) + return torch.stack(list(inputs)), list(metadatas) From 53fc65ee18f9cc804953529617afde39e26b0bf7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 13:29:28 +0200 Subject: [PATCH 31/45] feat: ml experiments --- configs/dataset/embeddings/ftn.yaml | 6 --- .../embeddings/ftn/1_prov-gigapath.yaml | 9 ++++ configs/dataset/embeddings/ftn/1_uni2.yaml | 9 ++++ .../dataset/embeddings/ftn/1_virchow2.yaml | 9 ++++ .../dataset/embeddings/ftn/2_virchow2.yaml | 9 ++++ configs/dataset/embeddings/ikem.yaml | 6 --- .../embeddings/ikem/1_prov-gigapath.yaml | 9 ++++ configs/dataset/embeddings/ikem/1_uni2.yaml | 9 ++++ .../dataset/embeddings/ikem/1_virchow2.yaml | 9 ++++ .../dataset/embeddings/ikem/2_virchow2.yaml | 9 ++++ configs/dataset/embeddings/knl_patos.yaml | 6 --- .../embeddings/knl_patos/1_prov-gigapath.yaml | 8 +++ .../dataset/embeddings/knl_patos/1_uni2.yaml | 8 +++ .../embeddings/knl_patos/1_virchow2.yaml | 8 +++ .../embeddings/knl_patos/2_virchow2.yaml | 8 +++ .../tiled/{ftn.yaml => ftn/0_320.yaml} | 0 configs/dataset/tiled/ftn/0_512.yaml | 9 ++++ configs/dataset/tiled/ftn/1_224.yaml | 9 ++++ configs/dataset/tiled/ftn/2_224.yaml | 9 ++++ .../tiled/{ikem.yaml => ikem/0_320.yaml} | 0 configs/dataset/tiled/ikem/0_512.yaml | 9 ++++ configs/dataset/tiled/ikem/1_224.yaml | 9 ++++ configs/dataset/tiled/ikem/2_224.yaml | 9 ++++ .../{knl_patos.yaml => knl_patos/0_320.yaml} | 0 configs/dataset/tiled/knl_patos/0_512.yaml | 8 +++ configs/dataset/tiled/knl_patos/1_224.yaml | 8 +++ configs/dataset/tiled/knl_patos/2_224.yaml | 8 +++ .../ml/classification_embeddings.yaml | 13 +++++ .../experiment/ml/classification_tiles.yaml | 13 +++++ .../fold_1.yaml | 12 +++++ .../fold_2.yaml | 12 +++++ .../fold_3.yaml | 12 +++++ .../fold_4.yaml | 12 +++++ .../fold_5.yaml | 12 +++++ .../fold_1.yaml | 12 +++++ .../fold_2.yaml | 12 +++++ .../fold_3.yaml | 12 +++++ .../fold_4.yaml | 12 +++++ .../fold_5.yaml | 12 +++++ .../fold_1.yaml | 12 +++++ .../fold_2.yaml | 12 +++++ .../fold_3.yaml | 12 +++++ .../fold_4.yaml | 12 +++++ .../fold_5.yaml | 12 +++++ .../nancy_high/fold_1.yaml | 15 ++++++ .../nancy_high/fold_2.yaml | 15 ++++++ .../nancy_high/fold_3.yaml | 15 ++++++ .../nancy_high/fold_4.yaml | 15 ++++++ .../nancy_high/fold_5.yaml | 15 ++++++ .../nancy_low/fold_1.yaml | 15 ++++++ .../nancy_low/fold_2.yaml | 15 ++++++ .../nancy_low/fold_3.yaml | 15 ++++++ .../nancy_low/fold_4.yaml | 15 ++++++ .../nancy_low/fold_5.yaml | 15 ++++++ .../neutrophils/fold_1.yaml | 15 ++++++ .../neutrophils/fold_2.yaml | 15 ++++++ .../neutrophils/fold_3.yaml | 15 ++++++ .../neutrophils/fold_4.yaml | 15 ++++++ .../neutrophils/fold_5.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_1.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_2.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_3.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_4.yaml | 15 ++++++ .../nancy_high/1_prov-gigapath/fold_5.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_1.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_2.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_3.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_4.yaml | 15 ++++++ .../nancy_high/1_uni2/fold_5.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_1.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_2.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_3.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_4.yaml | 15 ++++++ .../nancy_high/1_virchow2/fold_5.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_1.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_2.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_3.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_4.yaml | 15 ++++++ .../nancy_high/2_virchow2/fold_5.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_1.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_2.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_3.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_4.yaml | 15 ++++++ .../nancy_low/1_prov-gigapath/fold_5.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_1.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_2.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_3.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_4.yaml | 15 ++++++ .../nancy_low/1_uni2/fold_5.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_1.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_2.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_3.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_4.yaml | 15 ++++++ .../nancy_low/1_virchow2/fold_5.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_1.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_2.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_3.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_4.yaml | 15 ++++++ .../nancy_low/2_virchow2/fold_5.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_1.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_2.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_3.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_4.yaml | 15 ++++++ .../neutrophils/1_prov-gigapath/fold_5.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_1.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_2.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_3.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_4.yaml | 15 ++++++ .../neutrophils/1_uni2/fold_5.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_1.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_2.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_3.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_4.yaml | 15 ++++++ .../neutrophils/1_virchow2/fold_5.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_1.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_2.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_3.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_4.yaml | 15 ++++++ .../neutrophils/2_virchow2/fold_5.yaml | 15 ++++++ configs/experiment/ml/mil_bags.yaml | 8 +++ .../ml/ordered_regression_tiles.yaml | 9 ++++ .../embeddings/1_prov-gigapath/ftn.yaml | 7 +++ .../embeddings/1_prov-gigapath/ikem.yaml | 7 +++ .../embeddings/1_prov-gigapath/knl_patos.yaml | 7 +++ .../preprocessing/embeddings/1_uni2/ftn.yaml | 7 +++ .../preprocessing/embeddings/1_uni2/ikem.yaml | 7 +++ .../embeddings/1_uni2/knl_patos.yaml | 7 +++ .../embeddings/1_virchow2/ftn.yaml | 7 +++ .../embeddings/1_virchow2/ikem.yaml | 7 +++ .../embeddings/1_virchow2/knl_patos.yaml | 7 +++ .../embeddings/2_virchow2/ftn.yaml | 7 +++ .../embeddings/2_virchow2/ikem.yaml | 7 +++ .../embeddings/2_virchow2/knl_patos.yaml | 7 +++ configs/ml/backbone/identity.yaml | 1 + configs/ml/backbone/vgg16.yaml | 2 + configs/ml/data/bags.yaml | 16 ++++++ configs/ml/data/embeddings.yaml | 16 ++++++ configs/ml/data/tiles.yaml | 16 ++++++ configs/ml/model/classification.yaml | 4 ++ configs/ml/model/mil.yaml | 4 ++ configs/ml/model/ordered_regression.yaml | 3 ++ configs/ml/train.yaml | 27 ++++++++++ configs/preprocessing/embeddings.yaml | 2 +- configs/train_mil_old.yaml | 54 +++++++++++++++++++ ml/__main__.py | 4 -- ml/data/__init__.py | 4 +- ml/data/data_module.py | 9 ++++ ml/data/datasets/bags.py | 12 ++--- 148 files changed, 1775 insertions(+), 31 deletions(-) delete mode 100644 configs/dataset/embeddings/ftn.yaml create mode 100644 configs/dataset/embeddings/ftn/1_prov-gigapath.yaml create mode 100644 configs/dataset/embeddings/ftn/1_uni2.yaml create mode 100644 configs/dataset/embeddings/ftn/1_virchow2.yaml create mode 100644 configs/dataset/embeddings/ftn/2_virchow2.yaml delete mode 100644 configs/dataset/embeddings/ikem.yaml create mode 100644 configs/dataset/embeddings/ikem/1_prov-gigapath.yaml create mode 100644 configs/dataset/embeddings/ikem/1_uni2.yaml create mode 100644 configs/dataset/embeddings/ikem/1_virchow2.yaml create mode 100644 configs/dataset/embeddings/ikem/2_virchow2.yaml delete mode 100644 configs/dataset/embeddings/knl_patos.yaml create mode 100644 configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml create mode 100644 configs/dataset/embeddings/knl_patos/1_uni2.yaml create mode 100644 configs/dataset/embeddings/knl_patos/1_virchow2.yaml create mode 100644 configs/dataset/embeddings/knl_patos/2_virchow2.yaml rename configs/dataset/tiled/{ftn.yaml => ftn/0_320.yaml} (100%) create mode 100644 configs/dataset/tiled/ftn/0_512.yaml create mode 100644 configs/dataset/tiled/ftn/1_224.yaml create mode 100644 configs/dataset/tiled/ftn/2_224.yaml rename configs/dataset/tiled/{ikem.yaml => ikem/0_320.yaml} (100%) create mode 100644 configs/dataset/tiled/ikem/0_512.yaml create mode 100644 configs/dataset/tiled/ikem/1_224.yaml create mode 100644 configs/dataset/tiled/ikem/2_224.yaml rename configs/dataset/tiled/{knl_patos.yaml => knl_patos/0_320.yaml} (100%) create mode 100644 configs/dataset/tiled/knl_patos/0_512.yaml create mode 100644 configs/dataset/tiled/knl_patos/1_224.yaml create mode 100644 configs/dataset/tiled/knl_patos/2_224.yaml create mode 100644 configs/experiment/ml/classification_embeddings.yaml create mode 100644 configs/experiment/ml/classification_tiles.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/mil_bags.yaml create mode 100644 configs/experiment/ml/ordered_regression_tiles.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml create mode 100644 configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml create mode 100644 configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml create mode 100644 configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml create mode 100644 configs/ml/backbone/identity.yaml create mode 100644 configs/ml/backbone/vgg16.yaml create mode 100644 configs/ml/data/bags.yaml create mode 100644 configs/ml/data/embeddings.yaml create mode 100644 configs/ml/data/tiles.yaml create mode 100644 configs/ml/model/classification.yaml create mode 100644 configs/ml/model/mil.yaml create mode 100644 configs/ml/model/ordered_regression.yaml create mode 100644 configs/ml/train.yaml create mode 100644 configs/train_mil_old.yaml diff --git a/configs/dataset/embeddings/ftn.yaml b/configs/dataset/embeddings/ftn.yaml deleted file mode 100644 index 3446ced..0000000 --- a/configs/dataset/embeddings/ftn.yaml +++ /dev/null @@ -1,6 +0,0 @@ -defaults: - - /dataset/tiled/ftn/0_320@_here_ - - _self_ - -mlflow_uris: - neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils diff --git a/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml new file mode 100644 index 0000000..08ba0e4 --- /dev/null +++ b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_uni2.yaml b/configs/dataset/embeddings/ftn/1_uni2.yaml new file mode 100644 index 0000000..08ba0e4 --- /dev/null +++ b/configs/dataset/embeddings/ftn/1_uni2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_virchow2.yaml b/configs/dataset/embeddings/ftn/1_virchow2.yaml new file mode 100644 index 0000000..08ba0e4 --- /dev/null +++ b/configs/dataset/embeddings/ftn/1_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/2_virchow2.yaml b/configs/dataset/embeddings/ftn/2_virchow2.yaml new file mode 100644 index 0000000..5cb4f4e --- /dev/null +++ b/configs/dataset/embeddings/ftn/2_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ftn/2_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem.yaml b/configs/dataset/embeddings/ikem.yaml deleted file mode 100644 index 81d33b2..0000000 --- a/configs/dataset/embeddings/ikem.yaml +++ /dev/null @@ -1,6 +0,0 @@ -defaults: - - /dataset/tiled/ikem/0_320@_here_ - - _self_ - -mlflow_uris: - neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils diff --git a/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml new file mode 100644 index 0000000..a9353b5 --- /dev/null +++ b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_uni2.yaml b/configs/dataset/embeddings/ikem/1_uni2.yaml new file mode 100644 index 0000000..a9353b5 --- /dev/null +++ b/configs/dataset/embeddings/ikem/1_uni2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_virchow2.yaml b/configs/dataset/embeddings/ikem/1_virchow2.yaml new file mode 100644 index 0000000..a9353b5 --- /dev/null +++ b/configs/dataset/embeddings/ikem/1_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/2_virchow2.yaml b/configs/dataset/embeddings/ikem/2_virchow2.yaml new file mode 100644 index 0000000..6752183 --- /dev/null +++ b/configs/dataset/embeddings/ikem/2_virchow2.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/tiled/ikem/2_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos.yaml b/configs/dataset/embeddings/knl_patos.yaml deleted file mode 100644 index 5303a9a..0000000 --- a/configs/dataset/embeddings/knl_patos.yaml +++ /dev/null @@ -1,6 +0,0 @@ -defaults: - - /dataset/tiled/knl_patos/0_320@_here_ - - _self_ - -mlflow_uris: - neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils diff --git a/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml new file mode 100644 index 0000000..9952d82 --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/0_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_uni2.yaml b/configs/dataset/embeddings/knl_patos/1_uni2.yaml new file mode 100644 index 0000000..9952d82 --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/1_uni2.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/0_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_virchow2.yaml b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml new file mode 100644 index 0000000..9952d82 --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/0_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/2_virchow2.yaml b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml new file mode 100644 index 0000000..1acf5ee --- /dev/null +++ b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/tiled/knl_patos/2_224@_here_ + - _self_ + +mlflow_uris: + embeddings: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/tiled/ftn.yaml b/configs/dataset/tiled/ftn/0_320.yaml similarity index 100% rename from configs/dataset/tiled/ftn.yaml rename to configs/dataset/tiled/ftn/0_320.yaml diff --git a/configs/dataset/tiled/ftn/0_512.yaml b/configs/dataset/tiled/ftn/0_512.yaml new file mode 100644 index 0000000..3f9db69 --- /dev/null +++ b/configs/dataset/tiled/ftn/0_512.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ftn@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/1_224.yaml b/configs/dataset/tiled/ftn/1_224.yaml new file mode 100644 index 0000000..3f9db69 --- /dev/null +++ b/configs/dataset/tiled/ftn/1_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ftn@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/2_224.yaml b/configs/dataset/tiled/ftn/2_224.yaml new file mode 100644 index 0000000..3f9db69 --- /dev/null +++ b/configs/dataset/tiled/ftn/2_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ftn@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn + test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn + test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file diff --git a/configs/dataset/tiled/ikem.yaml b/configs/dataset/tiled/ikem/0_320.yaml similarity index 100% rename from configs/dataset/tiled/ikem.yaml rename to configs/dataset/tiled/ikem/0_320.yaml diff --git a/configs/dataset/tiled/ikem/0_512.yaml b/configs/dataset/tiled/ikem/0_512.yaml new file mode 100644 index 0000000..c8f212c --- /dev/null +++ b/configs/dataset/tiled/ikem/0_512.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ikem@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/1_224.yaml b/configs/dataset/tiled/ikem/1_224.yaml new file mode 100644 index 0000000..c8f212c --- /dev/null +++ b/configs/dataset/tiled/ikem/1_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ikem@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/2_224.yaml b/configs/dataset/tiled/ikem/2_224.yaml new file mode 100644 index 0000000..c8f212c --- /dev/null +++ b/configs/dataset/tiled/ikem/2_224.yaml @@ -0,0 +1,9 @@ +defaults: + - /dataset/processed_w_masks/ikem@_here_ + - _self_ + +mlflow_uris: + tiling: + train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem + test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem + test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos.yaml b/configs/dataset/tiled/knl_patos/0_320.yaml similarity index 100% rename from configs/dataset/tiled/knl_patos.yaml rename to configs/dataset/tiled/knl_patos/0_320.yaml diff --git a/configs/dataset/tiled/knl_patos/0_512.yaml b/configs/dataset/tiled/knl_patos/0_512.yaml new file mode 100644 index 0000000..a8e4401 --- /dev/null +++ b/configs/dataset/tiled/knl_patos/0_512.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/processed_w_masks/knl_patos@_here_ + - _self_ + +mlflow_uris: + tiling: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/1_224.yaml b/configs/dataset/tiled/knl_patos/1_224.yaml new file mode 100644 index 0000000..a8e4401 --- /dev/null +++ b/configs/dataset/tiled/knl_patos/1_224.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/processed_w_masks/knl_patos@_here_ + - _self_ + +mlflow_uris: + tiling: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/2_224.yaml b/configs/dataset/tiled/knl_patos/2_224.yaml new file mode 100644 index 0000000..a8e4401 --- /dev/null +++ b/configs/dataset/tiled/knl_patos/2_224.yaml @@ -0,0 +1,8 @@ +defaults: + - /dataset/processed_w_masks/knl_patos@_here_ + - _self_ + +mlflow_uris: + tiling: + test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos + test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file diff --git a/configs/experiment/ml/classification_embeddings.yaml b/configs/experiment/ml/classification_embeddings.yaml new file mode 100644 index 0000000..3416647 --- /dev/null +++ b/configs/experiment/ml/classification_embeddings.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/train + - /ml/model: classification + - /ml/data: embeddings + - /ml/backbone@model.backbone: identity + - _self_ + +model: + decode_head: + _target_: ml.modeling.LinearProbe + +metadata: + run_name: 'Classification Embeddings - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/classification_tiles.yaml b/configs/experiment/ml/classification_tiles.yaml new file mode 100644 index 0000000..876e9fa --- /dev/null +++ b/configs/experiment/ml/classification_tiles.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/train + - /ml/model: classification + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +model: + decode_head: + _target_: ml.modeling.ClassificationHead + +metadata: + run_name: 'Classification Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml new file mode 100644 index 0000000..930ec63 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 1 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml new file mode 100644 index 0000000..a1ffc9a --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 2 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml new file mode 100644 index 0000000..b084923 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 3 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml new file mode 100644 index 0000000..becf03b --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 4 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml new file mode 100644 index 0000000..cfdb374 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_tiles + - _self_ + +val_fold: 5 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml new file mode 100644 index 0000000..0f7c3bb --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 1 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml new file mode 100644 index 0000000..adb5ea9 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 2 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml new file mode 100644 index 0000000..7243818 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 3 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml new file mode 100644 index 0000000..efdc0e0 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 4 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml new file mode 100644 index 0000000..af8e3ae --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/ordered_regression_tiles + - _self_ + +val_fold: 5 +data: + train: + uris: tiled/ikem/0_512 + mode: all + val: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml new file mode 100644 index 0000000..da3cf76 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml new file mode 100644 index 0000000..feb94cd --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml new file mode 100644 index 0000000..66d6533 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml new file mode 100644 index 0000000..5a34a01 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml new file mode 100644 index 0000000..9a6827c --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml @@ -0,0 +1,12 @@ +defaults: + - /experiment/ml/classification_embeddings + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: all + val: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml new file mode 100644 index 0000000..ae75e56 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml new file mode 100644 index 0000000..43d25a7 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml new file mode 100644 index 0000000..cc001f1 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml new file mode 100644 index 0000000..9d5d171 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml new file mode 100644 index 0000000..669909d --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml new file mode 100644 index 0000000..971ec79 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml new file mode 100644 index 0000000..36e43ea --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml new file mode 100644 index 0000000..68088cf --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml new file mode 100644 index 0000000..e117dab --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml new file mode 100644 index 0000000..fa3df86 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml new file mode 100644 index 0000000..e120326 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml new file mode 100644 index 0000000..b250fd7 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml new file mode 100644 index 0000000..e775ee8 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml new file mode 100644 index 0000000..c2b1202 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml new file mode 100644 index 0000000..2beb752 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml new file mode 100644 index 0000000..ae75e56 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml new file mode 100644 index 0000000..43d25a7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml new file mode 100644 index 0000000..cc001f1 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml new file mode 100644 index 0000000..9d5d171 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml new file mode 100644 index 0000000..669909d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high +model: + foundation: prov-gigapath + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml new file mode 100644 index 0000000..d38bc7d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml new file mode 100644 index 0000000..acec326 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml new file mode 100644 index 0000000..859199a --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml new file mode 100644 index 0000000..1aa61e8 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml new file mode 100644 index 0000000..347c782 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_high + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_high +model: + foundation: uni2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml new file mode 100644 index 0000000..6943a55 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml new file mode 100644 index 0000000..bd0318a --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml new file mode 100644 index 0000000..468f3c9 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml new file mode 100644 index 0000000..1e1eb56 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml new file mode 100644 index 0000000..4261aee --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml new file mode 100644 index 0000000..8797d26 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml new file mode 100644 index 0000000..28ab24b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml new file mode 100644 index 0000000..613d103 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml new file mode 100644 index 0000000..673194c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml new file mode 100644 index 0000000..d91a22f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml new file mode 100644 index 0000000..971ec79 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml new file mode 100644 index 0000000..36e43ea --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml new file mode 100644 index 0000000..68088cf --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml new file mode 100644 index 0000000..e117dab --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml new file mode 100644 index 0000000..fa3df86 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low + val: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low +model: + foundation: prov-gigapath + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml new file mode 100644 index 0000000..9e09df6 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml new file mode 100644 index 0000000..bacb48e --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml new file mode 100644 index 0000000..d13cf5b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml new file mode 100644 index 0000000..3eabdcf --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml new file mode 100644 index 0000000..6815f1d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: nancy_low + val: + uris: embeddings/ikem/1_uni2 + mode: nancy_low +model: + foundation: uni2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml new file mode 100644 index 0000000..12e15bc --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml new file mode 100644 index 0000000..f642759 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml new file mode 100644 index 0000000..bd98259 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml new file mode 100644 index 0000000..3ce7308 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml new file mode 100644 index 0000000..4c80f84 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml new file mode 100644 index 0000000..27d2edf --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml new file mode 100644 index 0000000..7fe2ad6 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml new file mode 100644 index 0000000..80cec9f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml new file mode 100644 index 0000000..51d1a19 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml new file mode 100644 index 0000000..f09d6d2 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low + val: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml new file mode 100644 index 0000000..e120326 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml new file mode 100644 index 0000000..b250fd7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml new file mode 100644 index 0000000..e775ee8 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml new file mode 100644 index 0000000..c2b1202 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml new file mode 100644 index 0000000..2beb752 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils + val: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils +model: + foundation: prov-gigapath + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml new file mode 100644 index 0000000..42c44b2 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml new file mode 100644 index 0000000..3291160 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml new file mode 100644 index 0000000..f837e34 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml new file mode 100644 index 0000000..3d5bc5d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml new file mode 100644 index 0000000..170bd5a --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_uni2 + mode: neutrophils + val: + uris: embeddings/ikem/1_uni2 + mode: neutrophils +model: + foundation: uni2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml new file mode 100644 index 0000000..92f2aa4 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml new file mode 100644 index 0000000..904ace0 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml new file mode 100644 index 0000000..060ae87 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml new file mode 100644 index 0000000..bfd6eac --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml new file mode 100644 index 0000000..b2edf75 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml new file mode 100644 index 0000000..24f1659 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 1 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml new file mode 100644 index 0000000..688d514 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 2 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml new file mode 100644 index 0000000..f6b0c43 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 3 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml new file mode 100644 index 0000000..059393f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 4 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml new file mode 100644 index 0000000..0d81920 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml @@ -0,0 +1,15 @@ +defaults: + - /experiment/ml/mil_bags + - _self_ + +val_fold: 5 +data: + train: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils + val: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 diff --git a/configs/experiment/ml/mil_bags.yaml b/configs/experiment/ml/mil_bags.yaml new file mode 100644 index 0000000..effe3ed --- /dev/null +++ b/configs/experiment/ml/mil_bags.yaml @@ -0,0 +1,8 @@ +defaults: + - /ml/train + - /ml/model: mil + - /ml/data: bags + - _self_ + +metadata: + run_name: 'MIL Bags - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/ordered_regression_tiles.yaml b/configs/experiment/ml/ordered_regression_tiles.yaml new file mode 100644 index 0000000..dea06c9 --- /dev/null +++ b/configs/experiment/ml/ordered_regression_tiles.yaml @@ -0,0 +1,9 @@ +defaults: + - /ml/train + - /ml/model: ordered_regression + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +metadata: + run_name: 'Ordered Regression Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml new file mode 100644 index 0000000..f7f8053 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +model: prov-gigapath \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml new file mode 100644 index 0000000..dcd9d56 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +model: prov-gigapath diff --git a/configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml new file mode 100644 index 0000000..b81d5ad --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_prov-gigapath/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/1_224@_here_ + - _self_ + +model: prov-gigapath \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml b/configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml new file mode 100644 index 0000000..1c05032 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_uni2/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +model: uni2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml b/configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml new file mode 100644 index 0000000..03435b5 --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_uni2/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +model: uni2 diff --git a/configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml new file mode 100644 index 0000000..cd5fa8a --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_uni2/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/1_224@_here_ + - _self_ + +model: uni2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml b/configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml new file mode 100644 index 0000000..9fcbd7e --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_virchow2/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/1_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml b/configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml new file mode 100644 index 0000000..9ce441f --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_virchow2/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/1_224@_here_ + - _self_ + +model: virchow2 diff --git a/configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml new file mode 100644 index 0000000..0fcc7bf --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/1_virchow2/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/1_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml b/configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml new file mode 100644 index 0000000..45f7a6b --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/2_virchow2/ftn.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ftn/2_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml b/configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml new file mode 100644 index 0000000..b8dea0f --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/2_virchow2/ikem.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/ikem/2_224@_here_ + - _self_ + +model: virchow2 diff --git a/configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml b/configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml new file mode 100644 index 0000000..a489b2a --- /dev/null +++ b/configs/experiment/preprocessing/embeddings/2_virchow2/knl_patos.yaml @@ -0,0 +1,7 @@ +# @package _global_ + +defaults: + - /dataset/tiled/knl_patos/2_224@_here_ + - _self_ + +model: virchow2 \ No newline at end of file diff --git a/configs/ml/backbone/identity.yaml b/configs/ml/backbone/identity.yaml new file mode 100644 index 0000000..d8bfafa --- /dev/null +++ b/configs/ml/backbone/identity.yaml @@ -0,0 +1 @@ +_target_: torch.nn.Identity diff --git a/configs/ml/backbone/vgg16.yaml b/configs/ml/backbone/vgg16.yaml new file mode 100644 index 0000000..5589801 --- /dev/null +++ b/configs/ml/backbone/vgg16.yaml @@ -0,0 +1,2 @@ +_target_: ml.modeling.backbone.vgg16 +weights: DEFAULT diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml new file mode 100644 index 0000000..3860df0 --- /dev/null +++ b/configs/ml/data/bags.yaml @@ -0,0 +1,16 @@ +_target_: ml.data.BagsDataModule +batch_size: 8 +num_workers: 4 +weighted_sampling: true +train: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: false +val: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: true diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml new file mode 100644 index 0000000..d7ba100 --- /dev/null +++ b/configs/ml/data/embeddings.yaml @@ -0,0 +1,16 @@ +_target_: ml.data.DataModule +batch_size: 32 +num_workers: 4 +weighted_sampling: true +train: + _target_: ml.data.datasets.Embeddings + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: false +val: + _target_: ml.data.datasets.Embeddings + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: true diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml new file mode 100644 index 0000000..f227b7f --- /dev/null +++ b/configs/ml/data/tiles.yaml @@ -0,0 +1,16 @@ +_target_: ml.data.DataModule +batch_size: 32 +num_workers: 4 +weighted_sampling: true +train: + _target_: ml.data.datasets.Tiles + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: false +val: + _target_: ml.data.datasets.Tiles + uris: ??? + mode: ??? + val_fold: ${val_fold} + is_val: true diff --git a/configs/ml/model/classification.yaml b/configs/ml/model/classification.yaml new file mode 100644 index 0000000..ac1b903 --- /dev/null +++ b/configs/ml/model/classification.yaml @@ -0,0 +1,4 @@ +_target_: ml.classification.Classification +backbone: ??? +decode_head: ??? +lr: 1e-4 diff --git a/configs/ml/model/mil.yaml b/configs/ml/model/mil.yaml new file mode 100644 index 0000000..fdfbcc6 --- /dev/null +++ b/configs/ml/model/mil.yaml @@ -0,0 +1,4 @@ +_target_: ml.mil.MIL +foundation: ??? +num_classes: ??? +lr: 1e-5 diff --git a/configs/ml/model/ordered_regression.yaml b/configs/ml/model/ordered_regression.yaml new file mode 100644 index 0000000..e66c22f --- /dev/null +++ b/configs/ml/model/ordered_regression.yaml @@ -0,0 +1,3 @@ +_target_: ml.ordered_regression.OrderedRegression +backbone: ??? +lr: 1e-4 diff --git a/configs/ml/train.yaml b/configs/ml/train.yaml new file mode 100644 index 0000000..788192f --- /dev/null +++ b/configs/ml/train.yaml @@ -0,0 +1,27 @@ +defaults: + - hydra: default + - logger: mlflow + - _self_ + +seed: ${random_seed:} +mode: fit +checkpoint: null +val_fold: ??? + +trainer: + enable_checkpointing: true + max_epochs: 300 + log_every_n_steps: 5 + callbacks: + - _target_: lightning.pytorch.callbacks.ModelCheckpoint + save_top_k: 1 + monitor: validation/kappa + mode: max + - _target_: lightning.pytorch.callbacks.EarlyStopping + monitor: validation/kappa + mode: max + patience: 20 + +metadata: + experiment_name: Ulcerative Colitis + user: AdamK diff --git a/configs/preprocessing/embeddings.yaml b/configs/preprocessing/embeddings.yaml index b9c46c3..08b9b20 100644 --- a/configs/preprocessing/embeddings.yaml +++ b/configs/preprocessing/embeddings.yaml @@ -1,6 +1,6 @@ # @package _global_ -model: virchow2 +model: ??? output_dir: ${project_dir}/embeddings/${dataset.institution} concurrency: 512 block_size: 128 diff --git a/configs/train_mil_old.yaml b/configs/train_mil_old.yaml new file mode 100644 index 0000000..2119f4b --- /dev/null +++ b/configs/train_mil_old.yaml @@ -0,0 +1,54 @@ +defaults: + - hydra: default + - logger: mlflow + - /data/datasets@data.train: tile_embeddings/tile_embeddings + - uris + - paths + - _self_ + +seed: ${random_seed:} +mode: fit +checkpoint: null +cohort: ??? +data_mode: ??? +level: ??? +foundation: ??? + +trainer: + enable_checkpointing: True + max_epochs: 300 + log_every_n_steps: 5 + callbacks: + - _target_: lightning.pytorch.callbacks.ModelCheckpoint + save_top_k: 1 + monitor: validation/kappa + mode: max + - _target_: lightning.pytorch.callbacks.EarlyStopping + monitor: validation/kappa + mode: max + patience: 20 + +data: + batch_size: 8 + target_column: ulceration + num_workers: 4 + kfold_splits: 5 + k: 1 + train: + tiling_uris: ${uris.tiling.${level}.${cohort}.train} + embeddings_uris: ${uris.embeddings.${level}.${cohort}.${foundation}} + mode: ${data_mode} + embeddings_folders: ${paths.embeddings.${level}.${cohort}.${foundation}} + stride_eq_tile: false + +model: + _target_: ulcerative_colitis.ulcerative_colitis_attention_mil.UlcerativeColitisModelAttentionMIL + lr: 0.00001 + foundation: ${foundation} + +metadata: + experiment_name: 'Ulcerative Colitis' + run_name: '🏋️‍♂️ Training: ${data_mode} - ${cohort} - ${level} - ${foundation} (${data.k}/${data.kfold_splits})' + description: 'Ulcerative Colitis' + user: AdamK + hyperparams: {} \ No newline at end of file diff --git a/ml/__main__.py b/ml/__main__.py index 16220fd..ddf68ce 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -6,9 +6,6 @@ from omegaconf import DictConfig, OmegaConf from rationai.mlkit import Trainer, autolog -from ml.data import DataModule - - OmegaConf.register_new_resolver( "random_seed", lambda: randint(0, 2**31), use_cache=True ) @@ -22,7 +19,6 @@ def main(config: DictConfig, logger: Logger | None) -> None: data = hydra.utils.instantiate( config.data, _recursive_=False, # to avoid instantiating all the datasets - _target_=DataModule, ) model = hydra.utils.instantiate(config.model) diff --git a/ml/data/__init__.py b/ml/data/__init__.py index e7058ee..46e5b06 100644 --- a/ml/data/__init__.py +++ b/ml/data/__init__.py @@ -1,4 +1,4 @@ -from ml.data.data_module import DataModule +from ml.data.data_module import BagsDataModule, DataModule -__all__ = ["DataModule"] +__all__ = ["BagsDataModule", "DataModule"] diff --git a/ml/data/data_module.py b/ml/data/data_module.py index 133c60f..481432a 100644 --- a/ml/data/data_module.py +++ b/ml/data/data_module.py @@ -82,6 +82,15 @@ def predict_dataloader(self) -> Iterable: ) +class BagsDataModule(DataModule): + def __init__(self, **kwargs) -> None: + super().__init__( + collate_fn=collate_fn, + collate_fn_predict=collate_fn_predict, + **kwargs, + ) + + def collate_fn( batch: list[tuple[Tensor, Tensor, Metadata]], ) -> tuple[Tensor, Tensor, list[Metadata]]: diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index a290f9e..6b19646 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -19,7 +19,7 @@ class _Bags(Dataset[T], Generic[T]): def __init__( self, - tiling_uris: Iterable[str] | str, + uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, include_labels: bool = True, @@ -34,7 +34,7 @@ def __init__( if self.include_labels and self.mode is None: raise ValueError("Mode must be specified when including labels.") - self._meta = SlidesTilesLoader(uris=tiling_uris) + self._meta = SlidesTilesLoader(uris=uris) self.tiles = filter_tiles(self._meta.tiles, self.thresholds) self._meta.tiles = self.tiles self._meta._slide_id_to_indices = self._meta._build_tile_index(self.tiles) @@ -86,7 +86,7 @@ def labels(self) -> list[int]: def __init__( self, - tiling_uris: Iterable[str] | str, + uris: Iterable[str] | str, mode: LabelMode | str, padding: bool = True, thresholds: dict[str, float] | None = None, @@ -94,7 +94,7 @@ def __init__( is_val: bool = False, ) -> None: super().__init__( - tiling_uris=tiling_uris, + uris=uris, mode=mode, padding=padding, include_labels=True, @@ -107,13 +107,13 @@ def __init__( class BagsPredict(_Bags[BagsPredictSample]): def __init__( self, - tiling_uris: Iterable[str] | str, + uris: Iterable[str] | str, mode: LabelMode | str | None = None, padding: bool = True, thresholds: dict[str, float] | None = None, ) -> None: super().__init__( - tiling_uris=tiling_uris, + uris=uris, mode=mode, padding=padding, include_labels=False, From af90f470cd8b39ed0270979cf9026add33e11e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 13:58:08 +0200 Subject: [PATCH 32/45] feat: callback --- ml/base.py | 3 +- ml/callbacks/__init__.py | 4 ++ ml/callbacks/mlflow_prediction_callback.py | 50 ++++++++++++++++++++++ ml/mil.py | 5 ++- 4 files changed, 59 insertions(+), 3 deletions(-) create mode 100644 ml/callbacks/__init__.py create mode 100644 ml/callbacks/mlflow_prediction_callback.py diff --git a/ml/base.py b/ml/base.py index c95f3c0..f947226 100644 --- a/ml/base.py +++ b/ml/base.py @@ -89,12 +89,13 @@ def validation_step(self, batch: TilesInput) -> None: self.update_metrics(self.val_metrics, outputs, targets, metadata) self.log_metrics(self.val_metrics) - def test_step(self, batch: TilesInput) -> None: + def test_step(self, batch: TilesInput) -> Output: inputs, targets, metadata = batch outputs = self(inputs) targets = targets.reshape(-1) self.update_metrics(self.test_metrics, outputs, targets, metadata) self.log_metrics(self.test_metrics) + return outputs def predict_step(self, batch: TilesPredictInput) -> Output: return self(batch[0]) diff --git a/ml/callbacks/__init__.py b/ml/callbacks/__init__.py new file mode 100644 index 0000000..81ad876 --- /dev/null +++ b/ml/callbacks/__init__.py @@ -0,0 +1,4 @@ +from ml.callbacks.mlflow_prediction_callback import MLFlowPredictionCallback + + +__all__ = ["MLFlowPredictionCallback"] diff --git a/ml/callbacks/mlflow_prediction_callback.py b/ml/callbacks/mlflow_prediction_callback.py new file mode 100644 index 0000000..eaf80a6 --- /dev/null +++ b/ml/callbacks/mlflow_prediction_callback.py @@ -0,0 +1,50 @@ +from lightning import Callback, LightningModule, Trainer +from rationai.mlkit.lightning.loggers.mlflow import MLFlowLogger + +from ml.typing import Output + + +def _slide_names(metadata) -> list[str]: + if isinstance(metadata, dict): + return metadata["slide_name"] + return [m["slide_name"] for m in metadata] + + +class MLFlowPredictionCallback(Callback): + def _on_batch_end( + self, + trainer: Trainer, + outputs: Output, + batch: tuple, + ) -> None: + assert isinstance(trainer.logger, MLFlowLogger) + trainer.logger.log_table( + { + "slide": _slide_names(batch[-1]), + "prediction": outputs.tolist(), + }, + artifact_file="predictions.json", + ) + + def on_predict_batch_end( + self, + trainer: Trainer, + pl_module: LightningModule, + outputs: Output, + batch: tuple, + batch_idx: int, + dataloader_idx: int = 0, + ) -> None: + self._on_batch_end(trainer, outputs, batch) + assert isinstance(trainer.logger, MLFlowLogger) + + def on_test_batch_end( + self, + trainer: Trainer, + pl_module: LightningModule, + outputs: Output, + batch: tuple, + batch_idx: int, + dataloader_idx: int = 0, + ) -> None: + self._on_batch_end(trainer, outputs, batch) diff --git a/ml/mil.py b/ml/mil.py index e162b3f..d93cc46 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -109,12 +109,13 @@ def test_step(self, batch: BagsInput) -> None: outputs = self(bags) - self.test_metrics.update(self.activation(outputs), labels) + probabilities = self.activation(outputs) + self.test_metrics.update(probabilities, labels) self.log_dict( self.test_metrics, on_epoch=True, on_step=False, batch_size=len(bags) ) - return outputs + return probabilities def predict_step(self, batch: BagsPredictInput) -> Output: return self.activation(self(batch[0])) From 70540f1b03dab61175bda7e6fda58419cecce001 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 17:18:09 +0200 Subject: [PATCH 33/45] feat: ml configs --- .../fold_1.yaml | 1 + .../fold_2.yaml | 1 + .../fold_3.yaml | 1 + .../fold_4.yaml | 1 + .../fold_5.yaml | 1 + .../fold_1.yaml | 1 + .../fold_2.yaml | 1 + .../fold_3.yaml | 1 + .../fold_4.yaml | 1 + .../fold_5.yaml | 1 + .../fold_1.yaml | 1 + .../fold_2.yaml | 1 + .../fold_3.yaml | 1 + .../fold_4.yaml | 1 + .../fold_5.yaml | 1 + .../nancy_high/fold_1.yaml | 1 + .../nancy_high/fold_2.yaml | 1 + .../nancy_high/fold_3.yaml | 1 + .../nancy_high/fold_4.yaml | 1 + .../nancy_high/fold_5.yaml | 1 + .../nancy_low/fold_1.yaml | 1 + .../nancy_low/fold_2.yaml | 1 + .../nancy_low/fold_3.yaml | 1 + .../nancy_low/fold_4.yaml | 1 + .../nancy_low/fold_5.yaml | 1 + .../neutrophils/fold_1.yaml | 1 + .../neutrophils/fold_2.yaml | 1 + .../neutrophils/fold_3.yaml | 1 + .../neutrophils/fold_4.yaml | 1 + .../neutrophils/fold_5.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_1.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_2.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_3.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_4.yaml | 1 + .../nancy_high/1_prov-gigapath/fold_5.yaml | 1 + .../nancy_high/1_uni2/fold_1.yaml | 1 + .../nancy_high/1_uni2/fold_2.yaml | 1 + .../nancy_high/1_uni2/fold_3.yaml | 1 + .../nancy_high/1_uni2/fold_4.yaml | 1 + .../nancy_high/1_uni2/fold_5.yaml | 1 + .../nancy_high/1_virchow2/fold_1.yaml | 1 + .../nancy_high/1_virchow2/fold_2.yaml | 1 + .../nancy_high/1_virchow2/fold_3.yaml | 1 + .../nancy_high/1_virchow2/fold_4.yaml | 1 + .../nancy_high/1_virchow2/fold_5.yaml | 1 + .../nancy_high/2_virchow2/fold_1.yaml | 1 + .../nancy_high/2_virchow2/fold_2.yaml | 1 + .../nancy_high/2_virchow2/fold_3.yaml | 1 + .../nancy_high/2_virchow2/fold_4.yaml | 1 + .../nancy_high/2_virchow2/fold_5.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_1.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_2.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_3.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_4.yaml | 1 + .../nancy_low/1_prov-gigapath/fold_5.yaml | 1 + .../nancy_low/1_uni2/fold_1.yaml | 1 + .../nancy_low/1_uni2/fold_2.yaml | 1 + .../nancy_low/1_uni2/fold_3.yaml | 1 + .../nancy_low/1_uni2/fold_4.yaml | 1 + .../nancy_low/1_uni2/fold_5.yaml | 1 + .../nancy_low/1_virchow2/fold_1.yaml | 1 + .../nancy_low/1_virchow2/fold_2.yaml | 1 + .../nancy_low/1_virchow2/fold_3.yaml | 1 + .../nancy_low/1_virchow2/fold_4.yaml | 1 + .../nancy_low/1_virchow2/fold_5.yaml | 1 + .../nancy_low/2_virchow2/fold_1.yaml | 1 + .../nancy_low/2_virchow2/fold_2.yaml | 1 + .../nancy_low/2_virchow2/fold_3.yaml | 1 + .../nancy_low/2_virchow2/fold_4.yaml | 1 + .../nancy_low/2_virchow2/fold_5.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_1.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_2.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_3.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_4.yaml | 1 + .../neutrophils/1_prov-gigapath/fold_5.yaml | 1 + .../neutrophils/1_uni2/fold_1.yaml | 1 + .../neutrophils/1_uni2/fold_2.yaml | 1 + .../neutrophils/1_uni2/fold_3.yaml | 1 + .../neutrophils/1_uni2/fold_4.yaml | 1 + .../neutrophils/1_uni2/fold_5.yaml | 1 + .../neutrophils/1_virchow2/fold_1.yaml | 1 + .../neutrophils/1_virchow2/fold_2.yaml | 1 + .../neutrophils/1_virchow2/fold_3.yaml | 1 + .../neutrophils/1_virchow2/fold_4.yaml | 1 + .../neutrophils/1_virchow2/fold_5.yaml | 1 + .../neutrophils/2_virchow2/fold_1.yaml | 1 + .../neutrophils/2_virchow2/fold_2.yaml | 1 + .../neutrophils/2_virchow2/fold_3.yaml | 1 + .../neutrophils/2_virchow2/fold_4.yaml | 1 + .../neutrophils/2_virchow2/fold_5.yaml | 1 + .../test/fold_1.yaml | 10 ++++ .../test/fold_2.yaml | 10 ++++ .../test/fold_3.yaml | 10 ++++ .../test/fold_4.yaml | 10 ++++ .../test/fold_5.yaml | 10 ++++ .../train}/fold_1.yaml | 2 +- .../train}/fold_2.yaml | 2 +- .../{ => train}/fold_3.yaml | 2 +- .../train}/fold_4.yaml | 2 +- .../{ => train}/fold_5.yaml | 2 +- .../test/fold_1.yaml | 10 ++++ .../test/fold_2.yaml | 10 ++++ .../test/fold_3.yaml | 10 ++++ .../test/fold_4.yaml | 10 ++++ .../test/fold_5.yaml | 10 ++++ .../train}/fold_1.yaml | 2 +- .../train}/fold_2.yaml | 2 +- .../{ => train}/fold_3.yaml | 2 +- .../train}/fold_4.yaml | 2 +- .../{ => train}/fold_5.yaml | 2 +- .../test/fold_1.yaml | 10 ++++ .../test/fold_2.yaml | 10 ++++ .../test/fold_3.yaml | 10 ++++ .../test/fold_4.yaml | 10 ++++ .../test/fold_5.yaml | 10 ++++ .../{ => train}/fold_1.yaml | 2 +- .../{ => train}/fold_2.yaml | 2 +- .../{ => train}/fold_3.yaml | 2 +- .../{ => train}/fold_4.yaml | 2 +- .../{ => train}/fold_5.yaml | 2 +- .../nancy_high/test/fold_1.yaml | 10 ++++ .../nancy_high/test/fold_2.yaml | 10 ++++ .../nancy_high/test/fold_3.yaml | 10 ++++ .../nancy_high/test/fold_4.yaml | 10 ++++ .../nancy_high/test/fold_5.yaml | 10 ++++ .../nancy_high/{ => train}/fold_1.yaml | 2 +- .../nancy_high/train}/fold_2.yaml | 2 +- .../nancy_high/train}/fold_3.yaml | 2 +- .../nancy_high/train}/fold_4.yaml | 2 +- .../nancy_high/{ => train}/fold_5.yaml | 2 +- .../nancy_low/test/fold_1.yaml | 10 ++++ .../nancy_low/test/fold_2.yaml | 10 ++++ .../nancy_low/test/fold_3.yaml | 10 ++++ .../nancy_low/test/fold_4.yaml | 10 ++++ .../nancy_low/test/fold_5.yaml | 10 ++++ .../nancy_low/train}/fold_1.yaml | 2 +- .../nancy_low/train}/fold_2.yaml | 2 +- .../nancy_low/train}/fold_3.yaml | 2 +- .../nancy_low/train}/fold_4.yaml | 2 +- .../nancy_low/{ => train}/fold_5.yaml | 2 +- .../neutrophils/test/fold_1.yaml | 10 ++++ .../neutrophils/test/fold_2.yaml | 10 ++++ .../neutrophils/test/fold_3.yaml | 10 ++++ .../neutrophils/test/fold_4.yaml | 10 ++++ .../neutrophils/test/fold_5.yaml | 10 ++++ .../neutrophils/train}/fold_1.yaml | 2 +- .../neutrophils/train}/fold_2.yaml | 2 +- .../neutrophils/{ => train}/fold_3.yaml | 2 +- .../neutrophils/train}/fold_4.yaml | 2 +- .../neutrophils/{ => train}/fold_5.yaml | 2 +- .../1_prov-gigapath/test/fold_1.yaml | 10 ++++ .../1_prov-gigapath/test/fold_2.yaml | 10 ++++ .../1_prov-gigapath/test/fold_3.yaml | 10 ++++ .../1_prov-gigapath/test/fold_4.yaml | 10 ++++ .../1_prov-gigapath/test/fold_5.yaml | 10 ++++ .../1_prov-gigapath/{ => train}/fold_1.yaml | 2 +- .../1_prov-gigapath/train}/fold_2.yaml | 2 +- .../1_prov-gigapath/train}/fold_3.yaml | 2 +- .../1_prov-gigapath/train}/fold_4.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_5.yaml | 2 +- .../nancy_high/1_uni2/test/fold_1.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_2.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_3.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_4.yaml | 10 ++++ .../nancy_high/1_uni2/test/fold_5.yaml | 10 ++++ .../nancy_high/1_uni2/{ => train}/fold_1.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_2.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_3.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_4.yaml | 2 +- .../nancy_high/1_uni2/{ => train}/fold_5.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_high/1_virchow2/test/fold_5.yaml | 10 ++++ .../1_virchow2/{ => train}/fold_1.yaml | 2 +- .../1_virchow2/{ => train}/fold_2.yaml | 2 +- .../1_virchow2/{ => train}/fold_3.yaml | 2 +- .../1_virchow2/{ => train}/fold_4.yaml | 2 +- .../1_virchow2/{ => train}/fold_5.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_high/2_virchow2/test/fold_5.yaml | 10 ++++ .../2_virchow2/{ => train}/fold_1.yaml | 2 +- .../2_virchow2/{ => train}/fold_2.yaml | 2 +- .../2_virchow2/{ => train}/fold_3.yaml | 2 +- .../2_virchow2/{ => train}/fold_4.yaml | 2 +- .../2_virchow2/{ => train}/fold_5.yaml | 2 +- .../1_prov-gigapath/test/fold_1.yaml | 10 ++++ .../1_prov-gigapath/test/fold_2.yaml | 10 ++++ .../1_prov-gigapath/test/fold_3.yaml | 10 ++++ .../1_prov-gigapath/test/fold_4.yaml | 10 ++++ .../1_prov-gigapath/test/fold_5.yaml | 10 ++++ .../1_prov-gigapath/train}/fold_1.yaml | 2 +- .../1_prov-gigapath/train}/fold_2.yaml | 2 +- .../1_prov-gigapath/train}/fold_3.yaml | 2 +- .../1_prov-gigapath/train}/fold_4.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_5.yaml | 2 +- .../nancy_low/1_uni2/test/fold_1.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_2.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_3.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_4.yaml | 10 ++++ .../nancy_low/1_uni2/test/fold_5.yaml | 10 ++++ .../nancy_low/1_uni2/{ => train}/fold_1.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_2.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_3.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_4.yaml | 2 +- .../nancy_low/1_uni2/{ => train}/fold_5.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_low/1_virchow2/test/fold_5.yaml | 10 ++++ .../1_virchow2/{ => train}/fold_1.yaml | 2 +- .../1_virchow2/{ => train}/fold_2.yaml | 2 +- .../1_virchow2/{ => train}/fold_3.yaml | 2 +- .../1_virchow2/{ => train}/fold_4.yaml | 2 +- .../1_virchow2/{ => train}/fold_5.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_1.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_2.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_3.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_4.yaml | 10 ++++ .../nancy_low/2_virchow2/test/fold_5.yaml | 10 ++++ .../2_virchow2/{ => train}/fold_1.yaml | 2 +- .../2_virchow2/{ => train}/fold_2.yaml | 2 +- .../2_virchow2/{ => train}/fold_3.yaml | 2 +- .../2_virchow2/{ => train}/fold_4.yaml | 2 +- .../2_virchow2/{ => train}/fold_5.yaml | 2 +- .../1_prov-gigapath/test/fold_1.yaml | 10 ++++ .../1_prov-gigapath/test/fold_2.yaml | 10 ++++ .../1_prov-gigapath/test/fold_3.yaml | 10 ++++ .../1_prov-gigapath/test/fold_4.yaml | 10 ++++ .../1_prov-gigapath/test/fold_5.yaml | 10 ++++ .../1_prov-gigapath/train}/fold_1.yaml | 2 +- .../1_prov-gigapath/train}/fold_2.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_3.yaml | 2 +- .../1_prov-gigapath/train}/fold_4.yaml | 2 +- .../1_prov-gigapath/{ => train}/fold_5.yaml | 2 +- .../neutrophils/1_uni2/test/fold_1.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_2.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_3.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_4.yaml | 10 ++++ .../neutrophils/1_uni2/test/fold_5.yaml | 10 ++++ .../1_uni2/{ => train}/fold_1.yaml | 2 +- .../1_uni2/{ => train}/fold_2.yaml | 2 +- .../1_uni2/{ => train}/fold_3.yaml | 2 +- .../1_uni2/{ => train}/fold_4.yaml | 2 +- .../1_uni2/{ => train}/fold_5.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_1.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_2.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_3.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_4.yaml | 10 ++++ .../neutrophils/1_virchow2/test/fold_5.yaml | 10 ++++ .../1_virchow2/{ => train}/fold_1.yaml | 2 +- .../1_virchow2/{ => train}/fold_2.yaml | 2 +- .../1_virchow2/{ => train}/fold_3.yaml | 2 +- .../1_virchow2/{ => train}/fold_4.yaml | 2 +- .../1_virchow2/{ => train}/fold_5.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_1.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_2.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_3.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_4.yaml | 10 ++++ .../neutrophils/2_virchow2/test/fold_5.yaml | 10 ++++ .../2_virchow2/{ => train}/fold_1.yaml | 2 +- .../2_virchow2/{ => train}/fold_2.yaml | 2 +- .../2_virchow2/{ => train}/fold_3.yaml | 2 +- .../2_virchow2/{ => train}/fold_4.yaml | 2 +- .../2_virchow2/{ => train}/fold_5.yaml | 2 +- .../run.yaml | 7 +++ configs/experiment/ml/mil_bags.yaml | 8 --- .../ml/test/classification_embeddings.yaml | 13 +++++ .../ml/test/classification_tiles.yaml | 13 +++++ configs/experiment/ml/test/mil_bags.yaml | 8 +++ .../ml/test/ordered_regression_tiles.yaml | 9 ++++ .../classification_embeddings.yaml | 2 +- .../ml/{ => train}/classification_tiles.yaml | 2 +- configs/experiment/ml/train/mil_bags.yaml | 8 +++ .../{ => train}/ordered_regression_tiles.yaml | 2 +- configs/ml.yaml | 9 ++++ configs/ml/data/bags.yaml | 4 ++ configs/ml/data/embeddings.yaml | 4 ++ configs/ml/data/tiles.yaml | 4 ++ configs/ml/neutrophils.yaml | 5 ++ configs/ml/test.yaml | 10 ++++ configs/ml/train.yaml | 9 +--- configs/train_mil_old.yaml | 54 ------------------- 288 files changed, 1178 insertions(+), 163 deletions(-) create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml create mode 100644 configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml create mode 100644 configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml create mode 100644 configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml create mode 100644 configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml rename configs/experiment/ml/{experiment_ii_ordered_regression => experiment_i_baseline_classification/train}/fold_1.yaml (75%) rename configs/experiment/ml/{experiment_ii_ordered_regression => experiment_i_baseline_classification/train}/fold_2.yaml (75%) rename configs/experiment/ml/experiment_i_baseline_classification/{ => train}/fold_3.yaml (75%) rename configs/experiment/ml/{experiment_ii_ordered_regression => experiment_i_baseline_classification/train}/fold_4.yaml (75%) rename configs/experiment/ml/experiment_i_baseline_classification/{ => train}/fold_5.yaml (75%) create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml rename configs/experiment/ml/{experiment_i_baseline_classification => experiment_ii_ordered_regression/train}/fold_1.yaml (73%) rename configs/experiment/ml/{experiment_i_baseline_classification => experiment_ii_ordered_regression/train}/fold_2.yaml (73%) rename configs/experiment/ml/experiment_ii_ordered_regression/{ => train}/fold_3.yaml (73%) rename configs/experiment/ml/{experiment_i_baseline_classification => experiment_ii_ordered_regression/train}/fold_4.yaml (73%) rename configs/experiment/ml/experiment_ii_ordered_regression/{ => train}/fold_5.yaml (73%) create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_1.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_2.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_3.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_4.yaml (76%) rename configs/experiment/ml/experiment_iii_pathology_foundation_model/{ => train}/fold_5.yaml (76%) create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/{ => train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_high/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_high/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_high/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_high/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_high/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_high/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/nancy_low/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/nancy_low/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml rename configs/experiment/ml/{experiment_v_more_foundation_models/neutrophils/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/neutrophils/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/neutrophils/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/neutrophils/train}/fold_2.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/{ => train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_v_more_foundation_models/neutrophils/1_prov-gigapath => experiment_iv_mil_and_hierarchical_modeling/neutrophils/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/{ => train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_high => experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_high => experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_high => experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_1.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_2.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_3.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_4.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/{ => train}/fold_5.yaml (85%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_2.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/nancy_low => experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_1.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_2.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_3.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_4.yaml (85%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/{ => train}/fold_5.yaml (85%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/neutrophils => experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train}/fold_1.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/neutrophils => experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train}/fold_2.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/{ => train}/fold_3.yaml (87%) rename configs/experiment/ml/{experiment_iv_mil_and_hierarchical_modeling/neutrophils => experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train}/fold_4.yaml (87%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/{ => train}/fold_5.yaml (87%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml create mode 100644 configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_1.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_2.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_3.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_4.yaml (86%) rename configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/{ => train}/fold_5.yaml (86%) create mode 100644 configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml delete mode 100644 configs/experiment/ml/mil_bags.yaml create mode 100644 configs/experiment/ml/test/classification_embeddings.yaml create mode 100644 configs/experiment/ml/test/classification_tiles.yaml create mode 100644 configs/experiment/ml/test/mil_bags.yaml create mode 100644 configs/experiment/ml/test/ordered_regression_tiles.yaml rename configs/experiment/ml/{ => train}/classification_embeddings.yaml (65%) rename configs/experiment/ml/{ => train}/classification_tiles.yaml (66%) create mode 100644 configs/experiment/ml/train/mil_bags.yaml rename configs/experiment/ml/{ => train}/ordered_regression_tiles.yaml (56%) create mode 100644 configs/ml.yaml create mode 100644 configs/ml/neutrophils.yaml create mode 100644 configs/ml/test.yaml delete mode 100644 configs/train_mil_old.yaml diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml b/configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_i_baseline_classification/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml b/configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_ii_ordered_regression/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iii_pathology_foundation_model/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml new file mode 100644 index 0000000..1d4fff5 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_1 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_1 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml new file mode 100644 index 0000000..d1b9413 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_2 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_2 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml new file mode 100644 index 0000000..e03bab7 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_3 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_3 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml new file mode 100644 index 0000000..8a7d8b6 --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_4 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_4 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml new file mode 100644 index 0000000..3478bba --- /dev/null +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_i_baseline_classification/train/fold_5 + - /ml/test + - /checkpoints/experiment_i_baseline_classification/fold_5 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml similarity index 75% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml index 0f7c3bb..8277385 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_1.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml similarity index 75% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml index adb5ea9..4280ceb 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_2.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml similarity index 75% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml index b084923..eeb2c37 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_3.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml similarity index 75% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml index efdc0e0..caa448f 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_4.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml similarity index 75% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml rename to configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml index cfdb374..3bad444 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_5.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/classification_tiles - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml new file mode 100644 index 0000000..f1d14bc --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_1 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_1 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml new file mode 100644 index 0000000..1d2da59 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_2 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_2 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml new file mode 100644 index 0000000..ba03cef --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_3 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_3 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml new file mode 100644 index 0000000..ff17540 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_4 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_4 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml new file mode 100644 index 0000000..bd66527 --- /dev/null +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_ii_ordered_regression/train/fold_5 + - /ml/test + - /checkpoints/experiment_ii_ordered_regression/fold_5 + - _self_ + +data: + test: + uris: tiled/ikem/0_512 + mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml similarity index 73% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml index 930ec63..599b17d 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_1.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml similarity index 73% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml index a1ffc9a..9741359 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_2.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml similarity index 73% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml index 7243818..0a85a51 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_3.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml similarity index 73% rename from configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml index becf03b..7558e4f 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/fold_4.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml similarity index 73% rename from configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml rename to configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml index af8e3ae..953c556 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/fold_5.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/ordered_regression_tiles + - /experiment/ml/train/ordered_regression_tiles - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml new file mode 100644 index 0000000..9f76138 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml new file mode 100644 index 0000000..cce8282 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml new file mode 100644 index 0000000..8a992f5 --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml new file mode 100644 index 0000000..d4222cd --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml new file mode 100644 index 0000000..26aaeda --- /dev/null +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5 + - /ml/test + - /checkpoints/experiment_iii_pathology_foundation_model/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml index da3cf76..459cacb 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_1.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml index feb94cd..626fd2d 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_2.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml index 66d6533..0289f07 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_3.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml index 5a34a01..25cfce0 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_4.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml similarity index 76% rename from configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml rename to configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml index 9a6827c..9f886c2 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/fold_5.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/classification_embeddings + - /experiment/ml/train/classification_embeddings - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml new file mode 100644 index 0000000..7d4efbb --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml new file mode 100644 index 0000000..fc73925 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml new file mode 100644 index 0000000..b1dbd3c --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml new file mode 100644 index 0000000..f974eb1 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml new file mode 100644 index 0000000..5463138 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml index ae75e56..cbbfcfb 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml index 43d25a7..fd8b4af 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml index cc001f1..1a5c4fb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml index 9d5d171..e262f5f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml index 669909d..eeeb2b6 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml new file mode 100644 index 0000000..2d65b97 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml new file mode 100644 index 0000000..bdd837b --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml new file mode 100644 index 0000000..77123dc --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml new file mode 100644 index 0000000..dc3f611 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml new file mode 100644 index 0000000..9050988 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml index 971ec79..0ebf71e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml index 36e43ea..c3cd9d7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml index 68088cf..2908577 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml index e117dab..2b1b0ba 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml index fa3df86..06c0291 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml new file mode 100644 index 0000000..cd8c1e2 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml new file mode 100644 index 0000000..b810d4e --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml new file mode 100644 index 0000000..75a90e9 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml new file mode 100644 index 0000000..66aa451 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml new file mode 100644 index 0000000..dfd5f64 --- /dev/null +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5 + - /ml/test + - /checkpoints/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml index e120326..47319e2 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml index b250fd7..fdc7c00 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml index e775ee8..e71e33a 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml index c2b1202..8b8e06f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml rename to configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml index 2beb752..ae2db3a 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml new file mode 100644 index 0000000..cf54bd5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml new file mode 100644 index 0000000..e017792 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml new file mode 100644 index 0000000..d6f3f3c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml new file mode 100644 index 0000000..c525576 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml new file mode 100644 index 0000000..f607789 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml index ae75e56..cbbfcfb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml index 43d25a7..fd8b4af 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml index cc001f1..1a5c4fb 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml index 9d5d171..e262f5f 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml index 669909d..eeeb2b6 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml new file mode 100644 index 0000000..0af1d47 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml new file mode 100644 index 0000000..4aa762f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml new file mode 100644 index 0000000..6abadd7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml new file mode 100644 index 0000000..0a86a61 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml new file mode 100644 index 0000000..36e6187 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml index d38bc7d..76eefbf 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml index acec326..67e5743 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml index 859199a..b62e356 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml index 1aa61e8..804fdc5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml index 347c782..682cafd 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml new file mode 100644 index 0000000..914315b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml new file mode 100644 index 0000000..20bdc60 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml new file mode 100644 index 0000000..a90e900 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml new file mode 100644 index 0000000..1c346e5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml new file mode 100644 index 0000000..4468451 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml index 6943a55..f5b1da7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml index bd0318a..f0bdc1f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml index 468f3c9..63b4785 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml index 1e1eb56..277c183 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml index 4261aee..3cb722b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml new file mode 100644 index 0000000..13b5f32 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml new file mode 100644 index 0000000..68542ba --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml new file mode 100644 index 0000000..8b4e80b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml new file mode 100644 index 0000000..a60e34f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml new file mode 100644 index 0000000..38402d9 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml index 8797d26..7005a0b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml index 28ab24b..fa61145 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml index 613d103..721b84e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml index 673194c..0c7797f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml index d91a22f..30952c8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml new file mode 100644 index 0000000..0ae53ac --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml new file mode 100644 index 0000000..b421792 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml new file mode 100644 index 0000000..dc4989c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml new file mode 100644 index 0000000..70e573f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml new file mode 100644 index 0000000..03107ff --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml index 971ec79..0ebf71e 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml index 36e43ea..c3cd9d7 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml index 68088cf..2908577 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml index e117dab..2b1b0ba 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml index fa3df86..06c0291 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml new file mode 100644 index 0000000..b0667f7 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml new file mode 100644 index 0000000..16ea348 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml new file mode 100644 index 0000000..989a640 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml new file mode 100644 index 0000000..a72f3dd --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml new file mode 100644 index 0000000..bfad198 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml index 9e09df6..38db568 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml index bacb48e..d675521 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml index d13cf5b..7ef5181 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml index 3eabdcf..92f8f8c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml similarity index 85% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml index 6815f1d..e29771c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml new file mode 100644 index 0000000..98362b6 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml new file mode 100644 index 0000000..487aaf5 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml new file mode 100644 index 0000000..774b2fe --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml new file mode 100644 index 0000000..4d42203 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml new file mode 100644 index 0000000..3c1f38d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml index 12e15bc..582892c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml index f642759..6d6921d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml index bd98259..b456e5b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml index 3ce7308..22dbc4c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml index 4c80f84..ceb1fff 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml new file mode 100644 index 0000000..184b653 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml new file mode 100644 index 0000000..7cbec3f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml new file mode 100644 index 0000000..be08067 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml new file mode 100644 index 0000000..3717896 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml new file mode 100644 index 0000000..0f1bfdf --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml index 27d2edf..0b3302d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml index 7fe2ad6..a8b407b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml index 80cec9f..56b8a40 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml index 51d1a19..d07ed80 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml index f09d6d2..eab00b3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml new file mode 100644 index 0000000..fe1d9c6 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml new file mode 100644 index 0000000..510234f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml new file mode 100644 index 0000000..64ab3ae --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml new file mode 100644 index 0000000..dfb7392 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml new file mode 100644 index 0000000..22c29ec --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_prov-gigapath + mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml index e120326..47319e2 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml index b250fd7..fdc7c00 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml index e775ee8..e71e33a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml similarity index 87% rename from configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml index c2b1202..8b8e06f 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml similarity index 87% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml index 2beb752..ae2db3a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml new file mode 100644 index 0000000..434d1be --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml new file mode 100644 index 0000000..aee8c0e --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml new file mode 100644 index 0000000..c5b8d8c --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml new file mode 100644 index 0000000..c753a8d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml new file mode 100644 index 0000000..7080e15 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_uni2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml index 42c44b2..3ebd1ea 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml index 3291160..1d8b21c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml index f837e34..6086623 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml index 3d5bc5d..0023f19 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml index 170bd5a..52fb1e3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml new file mode 100644 index 0000000..3b1b11b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml new file mode 100644 index 0000000..05d3307 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml new file mode 100644 index 0000000..5a89a79 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml new file mode 100644 index 0000000..33c966d --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml new file mode 100644 index 0000000..8b84680 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/1_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml index 92f2aa4..64cf906 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml index 904ace0..5f54c1c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml index 060ae87..12ea5b8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml index bfd6eac..f43a98d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml index b2edf75..2da15ca 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml new file mode 100644 index 0000000..220f82f --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml new file mode 100644 index 0000000..f7c800b --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml new file mode 100644 index 0000000..a72fb45 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml new file mode 100644 index 0000000..a1ce0af --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml new file mode 100644 index 0000000..68fb366 --- /dev/null +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml @@ -0,0 +1,10 @@ +defaults: + - /experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5 + - /ml/test + - /checkpoints/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5 + - _self_ + +data: + test: + uris: embeddings/ikem/2_virchow2 + mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml index 24f1659..b1439c0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 1 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml index 688d514..b846471 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml index f6b0c43..4550d3c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 3 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml index 059393f..c101ef7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 4 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml similarity index 86% rename from configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml rename to configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml index 0d81920..23b345c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml @@ -1,5 +1,5 @@ defaults: - - /experiment/ml/mil_bags + - /experiment/ml/train/mil_bags - _self_ val_fold: 5 diff --git a/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml new file mode 100644 index 0000000..633feb2 --- /dev/null +++ b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml @@ -0,0 +1,7 @@ +defaults: + - /ml/neutrophils + - /dataset/neutrophils@dataset: ikem + - _self_ + +metadata: + run_name: 'Neutrophils ML - ikem - 0_320' diff --git a/configs/experiment/ml/mil_bags.yaml b/configs/experiment/ml/mil_bags.yaml deleted file mode 100644 index effe3ed..0000000 --- a/configs/experiment/ml/mil_bags.yaml +++ /dev/null @@ -1,8 +0,0 @@ -defaults: - - /ml/train - - /ml/model: mil - - /ml/data: bags - - _self_ - -metadata: - run_name: 'MIL Bags - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/classification_embeddings.yaml b/configs/experiment/ml/test/classification_embeddings.yaml new file mode 100644 index 0000000..f75cdde --- /dev/null +++ b/configs/experiment/ml/test/classification_embeddings.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/test + - /ml/model: classification + - /ml/data: embeddings + - /ml/backbone@model.backbone: identity + - _self_ + +model: + decode_head: + _target_: ml.modeling.LinearProbe + +metadata: + run_name: '📏 Testing: Classification Embeddings - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/classification_tiles.yaml b/configs/experiment/ml/test/classification_tiles.yaml new file mode 100644 index 0000000..c0dd1f9 --- /dev/null +++ b/configs/experiment/ml/test/classification_tiles.yaml @@ -0,0 +1,13 @@ +defaults: + - /ml/test + - /ml/model: classification + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +model: + decode_head: + _target_: ml.modeling.ClassificationHead + +metadata: + run_name: '📏 Testing: Classification Tiles - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/mil_bags.yaml b/configs/experiment/ml/test/mil_bags.yaml new file mode 100644 index 0000000..323ce5d --- /dev/null +++ b/configs/experiment/ml/test/mil_bags.yaml @@ -0,0 +1,8 @@ +defaults: + - /ml/test + - /ml/model: mil + - /ml/data: bags + - _self_ + +metadata: + run_name: '📏 Testing: MIL Bags - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/test/ordered_regression_tiles.yaml b/configs/experiment/ml/test/ordered_regression_tiles.yaml new file mode 100644 index 0000000..00c5499 --- /dev/null +++ b/configs/experiment/ml/test/ordered_regression_tiles.yaml @@ -0,0 +1,9 @@ +defaults: + - /ml/test + - /ml/model: ordered_regression + - /ml/data: tiles + - /ml/backbone@model.backbone: vgg16 + - _self_ + +metadata: + run_name: '📏 Testing: Ordered Regression Tiles - ${data.test.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/classification_embeddings.yaml b/configs/experiment/ml/train/classification_embeddings.yaml similarity index 65% rename from configs/experiment/ml/classification_embeddings.yaml rename to configs/experiment/ml/train/classification_embeddings.yaml index 3416647..0f3469a 100644 --- a/configs/experiment/ml/classification_embeddings.yaml +++ b/configs/experiment/ml/train/classification_embeddings.yaml @@ -10,4 +10,4 @@ model: _target_: ml.modeling.LinearProbe metadata: - run_name: 'Classification Embeddings - ${data.train.mode} - fold ${val_fold}' + run_name: '🏋️‍♂️ Training: Classification Embeddings - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/classification_tiles.yaml b/configs/experiment/ml/train/classification_tiles.yaml similarity index 66% rename from configs/experiment/ml/classification_tiles.yaml rename to configs/experiment/ml/train/classification_tiles.yaml index 876e9fa..c5bab42 100644 --- a/configs/experiment/ml/classification_tiles.yaml +++ b/configs/experiment/ml/train/classification_tiles.yaml @@ -10,4 +10,4 @@ model: _target_: ml.modeling.ClassificationHead metadata: - run_name: 'Classification Tiles - ${data.train.mode} - fold ${val_fold}' + run_name: '🏋️‍♂️ Training: Classification Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/train/mil_bags.yaml b/configs/experiment/ml/train/mil_bags.yaml new file mode 100644 index 0000000..05c2f72 --- /dev/null +++ b/configs/experiment/ml/train/mil_bags.yaml @@ -0,0 +1,8 @@ +defaults: + - /ml/train + - /ml/model: mil + - /ml/data: bags + - _self_ + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/experiment/ml/ordered_regression_tiles.yaml b/configs/experiment/ml/train/ordered_regression_tiles.yaml similarity index 56% rename from configs/experiment/ml/ordered_regression_tiles.yaml rename to configs/experiment/ml/train/ordered_regression_tiles.yaml index dea06c9..1a10ac3 100644 --- a/configs/experiment/ml/ordered_regression_tiles.yaml +++ b/configs/experiment/ml/train/ordered_regression_tiles.yaml @@ -6,4 +6,4 @@ defaults: - _self_ metadata: - run_name: 'Ordered Regression Tiles - ${data.train.mode} - fold ${val_fold}' + run_name: '🏋️‍♂️ Training: Ordered Regression Tiles - ${data.train.mode} - fold ${val_fold}' diff --git a/configs/ml.yaml b/configs/ml.yaml new file mode 100644 index 0000000..9f7e233 --- /dev/null +++ b/configs/ml.yaml @@ -0,0 +1,9 @@ +defaults: + - base + - _self_ + +seed: ${random_seed:} +checkpoint: null + +metadata: + user: AdamK diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index 3860df0..c879820 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -14,3 +14,7 @@ val: mode: ??? val_fold: ${val_fold} is_val: true +test: + _target_: ml.data.datasets.Bags + uris: ??? + mode: ??? diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml index d7ba100..3f50fac 100644 --- a/configs/ml/data/embeddings.yaml +++ b/configs/ml/data/embeddings.yaml @@ -14,3 +14,7 @@ val: mode: ??? val_fold: ${val_fold} is_val: true +test: + _target_: ml.data.datasets.Embeddings + uris: ??? + mode: ??? diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml index f227b7f..16fa0be 100644 --- a/configs/ml/data/tiles.yaml +++ b/configs/ml/data/tiles.yaml @@ -14,3 +14,7 @@ val: mode: ??? val_fold: ${val_fold} is_val: true +test: + _target_: ml.data.datasets.Tiles + uris: ??? + mode: ??? diff --git a/configs/ml/neutrophils.yaml b/configs/ml/neutrophils.yaml new file mode 100644 index 0000000..6711ca9 --- /dev/null +++ b/configs/ml/neutrophils.yaml @@ -0,0 +1,5 @@ +# @package _global_ + +metadata: + run_name: "🏋️‍♂️📏🎯 Neutrophils" + description: "Train and evaluate neutrophil detection model" \ No newline at end of file diff --git a/configs/ml/test.yaml b/configs/ml/test.yaml new file mode 100644 index 0000000..d60813d --- /dev/null +++ b/configs/ml/test.yaml @@ -0,0 +1,10 @@ +defaults: + - /ml + - _self_ + +mode: test +checkpoint: ??? + +trainer: + callbacks: + - _target_: ml.callbacks.MLFlowPredictionCallback diff --git a/configs/ml/train.yaml b/configs/ml/train.yaml index 788192f..653ef64 100644 --- a/configs/ml/train.yaml +++ b/configs/ml/train.yaml @@ -1,11 +1,8 @@ defaults: - - hydra: default - - logger: mlflow + - /ml - _self_ -seed: ${random_seed:} mode: fit -checkpoint: null val_fold: ??? trainer: @@ -21,7 +18,3 @@ trainer: monitor: validation/kappa mode: max patience: 20 - -metadata: - experiment_name: Ulcerative Colitis - user: AdamK diff --git a/configs/train_mil_old.yaml b/configs/train_mil_old.yaml deleted file mode 100644 index 2119f4b..0000000 --- a/configs/train_mil_old.yaml +++ /dev/null @@ -1,54 +0,0 @@ -defaults: - - hydra: default - - logger: mlflow - - /data/datasets@data.train: tile_embeddings/tile_embeddings - - uris - - paths - - _self_ - -seed: ${random_seed:} -mode: fit -checkpoint: null -cohort: ??? -data_mode: ??? -level: ??? -foundation: ??? - -trainer: - enable_checkpointing: True - max_epochs: 300 - log_every_n_steps: 5 - callbacks: - - _target_: lightning.pytorch.callbacks.ModelCheckpoint - save_top_k: 1 - monitor: validation/kappa - mode: max - - _target_: lightning.pytorch.callbacks.EarlyStopping - monitor: validation/kappa - mode: max - patience: 20 - -data: - batch_size: 8 - target_column: ulceration - num_workers: 4 - kfold_splits: 5 - k: 1 - train: - tiling_uris: ${uris.tiling.${level}.${cohort}.train} - embeddings_uris: ${uris.embeddings.${level}.${cohort}.${foundation}} - mode: ${data_mode} - embeddings_folders: ${paths.embeddings.${level}.${cohort}.${foundation}} - stride_eq_tile: false - -model: - _target_: ulcerative_colitis.ulcerative_colitis_attention_mil.UlcerativeColitisModelAttentionMIL - lr: 0.00001 - foundation: ${foundation} - -metadata: - experiment_name: 'Ulcerative Colitis' - run_name: '🏋️‍♂️ Training: ${data_mode} - ${cohort} - ${level} - ${foundation} (${data.k}/${data.kfold_splits})' - description: 'Ulcerative Colitis' - user: AdamK - hyperparams: {} \ No newline at end of file From 3fffc856e254d2a8690dc48d38383c9ebdd4dd79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:22:24 +0200 Subject: [PATCH 34/45] feat: postprocessing confs --- configs/checkpoints/final/nancy_high.yaml | 1 + configs/checkpoints/final/nancy_low.yaml | 1 + configs/checkpoints/final/neutrophils.yaml | 1 + .../run.yaml | 3 - .../experiment/ml/final/nancy_high/test.yaml | 17 +++ .../experiment/ml/final/nancy_high/train.yaml | 27 +++++ .../experiment/ml/final/nancy_low/test.yaml | 17 +++ .../experiment/ml/final/nancy_low/train.yaml | 27 +++++ .../experiment/ml/final/neutrophils/test.yaml | 16 +++ .../ml/final/neutrophils/train.yaml | 27 +++++ .../postprocessing/ensembling/ftn_final.yaml | 8 -- .../ensembling/knl_patos_final.yaml | 8 -- .../fold_1.yaml} | 4 +- .../experiment_vii_ensembling/fold_2.yaml | 6 + .../experiment_vii_ensembling/fold_3.yaml | 6 + .../experiment_vii_ensembling/fold_4.yaml | 6 + .../experiment_vii_ensembling/fold_5.yaml | 6 + .../entropy/fold_1.yaml} | 2 +- .../entropy/fold_2.yaml | 8 ++ .../entropy/fold_3.yaml | 8 ++ .../entropy/fold_4.yaml | 8 ++ .../entropy/fold_5.yaml | 8 ++ .../herfindahl/fold_1.yaml} | 2 +- .../herfindahl/fold_2.yaml | 8 ++ .../herfindahl/fold_3.yaml | 8 ++ .../herfindahl/fold_4.yaml | 8 ++ .../herfindahl/fold_5.yaml | 8 ++ .../std/fold_1.yaml} | 3 +- .../std/fold_2.yaml | 8 ++ .../std/fold_3.yaml | 8 ++ .../std/fold_4.yaml | 8 ++ .../std/fold_5.yaml | 8 ++ .../{ensembling => final_ensembling}/ftn.yaml | 2 +- .../ikem.yaml | 2 +- .../knl_patos.yaml | 2 +- .../ftn.yaml} | 2 +- .../ikem.yaml} | 2 +- .../knl_patos.yaml} | 2 +- .../markov_chain_confidence/ftn_entropy.yaml | 8 -- .../ftn_herfindahl.yaml | 8 -- .../ftn_std_final.yaml | 9 -- .../knl_patos_entropy.yaml | 8 -- .../knl_patos_herfindahl.yaml | 8 -- .../knl_patos_std_final.yaml | 9 -- configs/postprocessing/ensembling.yaml | 6 +- .../markov_chain_confidence.yaml | 4 +- configs/predictions/ftn.yaml | 22 ---- configs/predictions/ftn/final.yaml | 4 + configs/predictions/ikem.yaml | 22 ---- configs/predictions/ikem/final.yaml | 4 + configs/predictions/ikem/fold_1.yaml | 4 + configs/predictions/ikem/fold_2.yaml | 4 + configs/predictions/ikem/fold_3.yaml | 4 + configs/predictions/ikem/fold_4.yaml | 4 + configs/predictions/ikem/fold_5.yaml | 4 + configs/predictions/knl_patos.yaml | 22 ---- configs/predictions/knl_patos/final.yaml | 4 + postprocessing/ensembling.py | 105 +++++++----------- postprocessing/markov_chain_confidence.py | 65 ++++++----- postprocessing/utils.py | 25 ++--- 60 files changed, 381 insertions(+), 268 deletions(-) create mode 100644 configs/checkpoints/final/nancy_high.yaml create mode 100644 configs/checkpoints/final/nancy_low.yaml create mode 100644 configs/checkpoints/final/neutrophils.yaml create mode 100644 configs/experiment/ml/final/nancy_high/test.yaml create mode 100644 configs/experiment/ml/final/nancy_high/train.yaml create mode 100644 configs/experiment/ml/final/nancy_low/test.yaml create mode 100644 configs/experiment/ml/final/nancy_low/train.yaml create mode 100644 configs/experiment/ml/final/neutrophils/test.yaml create mode 100644 configs/experiment/ml/final/neutrophils/train.yaml delete mode 100644 configs/experiment/postprocessing/ensembling/ftn_final.yaml delete mode 100644 configs/experiment/postprocessing/ensembling/knl_patos_final.yaml rename configs/experiment/postprocessing/{ensembling/ikem_final.yaml => experiment_vii_ensembling/fold_1.yaml} (60%) create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_entropy.yaml => experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml} (70%) create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_herfindahl.yaml => experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml} (71%) create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_std_final.yaml => experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml} (65%) create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml create mode 100644 configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml rename configs/experiment/postprocessing/{ensembling => final_ensembling}/ftn.yaml (66%) rename configs/experiment/postprocessing/{ensembling => final_ensembling}/ikem.yaml (66%) rename configs/experiment/postprocessing/{ensembling => final_ensembling}/knl_patos.yaml (64%) rename configs/experiment/postprocessing/{markov_chain_confidence/ftn_std.yaml => final_markov_chain_confidence/ftn.yaml} (70%) rename configs/experiment/postprocessing/{markov_chain_confidence/ikem_std.yaml => final_markov_chain_confidence/ikem.yaml} (70%) rename configs/experiment/postprocessing/{markov_chain_confidence/knl_patos_std.yaml => final_markov_chain_confidence/knl_patos.yaml} (68%) delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml delete mode 100644 configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml delete mode 100644 configs/predictions/ftn.yaml create mode 100644 configs/predictions/ftn/final.yaml delete mode 100644 configs/predictions/ikem.yaml create mode 100644 configs/predictions/ikem/final.yaml create mode 100644 configs/predictions/ikem/fold_1.yaml create mode 100644 configs/predictions/ikem/fold_2.yaml create mode 100644 configs/predictions/ikem/fold_3.yaml create mode 100644 configs/predictions/ikem/fold_4.yaml create mode 100644 configs/predictions/ikem/fold_5.yaml delete mode 100644 configs/predictions/knl_patos.yaml create mode 100644 configs/predictions/knl_patos/final.yaml diff --git a/configs/checkpoints/final/nancy_high.yaml b/configs/checkpoints/final/nancy_high.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/final/nancy_high.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/final/nancy_low.yaml b/configs/checkpoints/final/nancy_low.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/final/nancy_low.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/checkpoints/final/neutrophils.yaml b/configs/checkpoints/final/neutrophils.yaml new file mode 100644 index 0000000..d882745 --- /dev/null +++ b/configs/checkpoints/final/neutrophils.yaml @@ -0,0 +1 @@ +checkpoint: ??? diff --git a/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml index 633feb2..a446016 100644 --- a/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml +++ b/configs/experiment/ml/experiment_vi_neutrophil_detection/run.yaml @@ -2,6 +2,3 @@ defaults: - /ml/neutrophils - /dataset/neutrophils@dataset: ikem - _self_ - -metadata: - run_name: 'Neutrophils ML - ikem - 0_320' diff --git a/configs/experiment/ml/final/nancy_high/test.yaml b/configs/experiment/ml/final/nancy_high/test.yaml new file mode 100644 index 0000000..79fc3bd --- /dev/null +++ b/configs/experiment/ml/final/nancy_high/test.yaml @@ -0,0 +1,17 @@ +defaults: + - /experiment/ml/final/nancy_high/train + - /ml/test + - /checkpoints/final/nancy_high + - _self_ + +data: + test: + uris: + - ${ikem.mlflow_uris.embeddings.test_final} + - ${ftn.mlflow_uris.embeddings.test_final} + - ${knl_patos.mlflow_uris.embeddings.test_final} + mode: nancy_high + +metadata: + run_name: '📏 Testing: MIL Bags - nancy_high - final' + diff --git a/configs/experiment/ml/final/nancy_high/train.yaml b/configs/experiment/ml/final/nancy_high/train.yaml new file mode 100644 index 0000000..d267e78 --- /dev/null +++ b/configs/experiment/ml/final/nancy_high/train.yaml @@ -0,0 +1,27 @@ +defaults: + - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem + - /dataset/embeddings/ftn/2_virchow2@ftn + - /dataset/embeddings/knl_patos/2_virchow2@knl_patos + - _self_ + +val_fold: null +data: + train: + uris: + - ${ikem.mlflow_uris.embeddings.train} + - ${ftn.mlflow_uris.embeddings.train} + - ${knl_patos.mlflow_uris.embeddings.train} + mode: nancy_high + val: + uris: + - ${ikem.mlflow_uris.embeddings.test_preliminary} + - ${ftn.mlflow_uris.embeddings.test_preliminary} + - ${knl_patos.mlflow_uris.embeddings.test_preliminary} + mode: nancy_high +model: + foundation: virchow2 + num_classes: 4 + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - nancy_high - final' diff --git a/configs/experiment/ml/final/nancy_low/test.yaml b/configs/experiment/ml/final/nancy_low/test.yaml new file mode 100644 index 0000000..6f4ff8c --- /dev/null +++ b/configs/experiment/ml/final/nancy_low/test.yaml @@ -0,0 +1,17 @@ +defaults: + - /experiment/ml/final/nancy_low/train + - /ml/test + - /checkpoints/final/nancy_low + - _self_ + +data: + test: + uris: + - ${ikem.mlflow_uris.embeddings.test_final} + - ${ftn.mlflow_uris.embeddings.test_final} + - ${knl_patos.mlflow_uris.embeddings.test_final} + mode: nancy_low + +metadata: + run_name: '📏 Testing: MIL Bags - nancy_low - final' + diff --git a/configs/experiment/ml/final/nancy_low/train.yaml b/configs/experiment/ml/final/nancy_low/train.yaml new file mode 100644 index 0000000..e5df77f --- /dev/null +++ b/configs/experiment/ml/final/nancy_low/train.yaml @@ -0,0 +1,27 @@ +defaults: + - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem + - /dataset/embeddings/ftn/2_virchow2@ftn + - /dataset/embeddings/knl_patos/2_virchow2@knl_patos + - _self_ + +val_fold: null +data: + train: + uris: + - ${ikem.mlflow_uris.embeddings.train} + - ${ftn.mlflow_uris.embeddings.train} + - ${knl_patos.mlflow_uris.embeddings.train} + mode: nancy_low + val: + uris: + - ${ikem.mlflow_uris.embeddings.test_preliminary} + - ${ftn.mlflow_uris.embeddings.test_preliminary} + - ${knl_patos.mlflow_uris.embeddings.test_preliminary} + mode: nancy_low +model: + foundation: virchow2 + num_classes: 3 + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - nancy_low - final' diff --git a/configs/experiment/ml/final/neutrophils/test.yaml b/configs/experiment/ml/final/neutrophils/test.yaml new file mode 100644 index 0000000..89ae941 --- /dev/null +++ b/configs/experiment/ml/final/neutrophils/test.yaml @@ -0,0 +1,16 @@ +defaults: + - /experiment/ml/final/neutrophils/train + - /ml/test + - /checkpoints/final/neutrophils + - _self_ + +data: + test: + uris: + - ${ikem.mlflow_uris.embeddings.test_final} + - ${ftn.mlflow_uris.embeddings.test_final} + - ${knl_patos.mlflow_uris.embeddings.test_final} + mode: neutrophils + +metadata: + run_name: '📏 Testing: MIL Bags - neutrophils - final' diff --git a/configs/experiment/ml/final/neutrophils/train.yaml b/configs/experiment/ml/final/neutrophils/train.yaml new file mode 100644 index 0000000..c452f78 --- /dev/null +++ b/configs/experiment/ml/final/neutrophils/train.yaml @@ -0,0 +1,27 @@ +defaults: + - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem + - /dataset/embeddings/ftn/2_virchow2@ftn + - /dataset/embeddings/knl_patos/2_virchow2@knl_patos + - _self_ + +val_fold: null +data: + train: + uris: + - ${ikem.mlflow_uris.embeddings.train} + - ${ftn.mlflow_uris.embeddings.train} + - ${knl_patos.mlflow_uris.embeddings.train} + mode: neutrophils + val: + uris: + - ${ikem.mlflow_uris.embeddings.test_preliminary} + - ${ftn.mlflow_uris.embeddings.test_preliminary} + - ${knl_patos.mlflow_uris.embeddings.test_preliminary} + mode: neutrophils +model: + foundation: virchow2 + num_classes: 1 + +metadata: + run_name: '🏋️‍♂️ Training: MIL Bags - neutrophils - final' diff --git a/configs/experiment/postprocessing/ensembling/ftn_final.yaml b/configs/experiment/postprocessing/ensembling/ftn_final.yaml deleted file mode 100644 index 3c52f5e..0000000 --- a/configs/experiment/postprocessing/ensembling/ftn_final.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml b/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml deleted file mode 100644 index d9a2c27..0000000 --- a/configs/experiment/postprocessing/ensembling/knl_patos_final.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -folds: [final] diff --git a/configs/experiment/postprocessing/ensembling/ikem_final.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_1.yaml similarity index 60% rename from configs/experiment/postprocessing/ensembling/ikem_final.yaml rename to configs/experiment/postprocessing/experiment_vii_ensembling/fold_1.yaml index 0b5f874..ebb28de 100644 --- a/configs/experiment/postprocessing/ensembling/ikem_final.yaml +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_1.yaml @@ -2,7 +2,5 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ - -folds: [final] diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml new file mode 100644 index 0000000..4f3f260 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_2.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml new file mode 100644 index 0000000..861f848 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_3.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml new file mode 100644 index 0000000..d75e1a7 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_4.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ diff --git a/configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml new file mode 100644 index 0000000..6b066c8 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_vii_ensembling/fold_5.yaml @@ -0,0 +1,6 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml similarity index 70% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml rename to configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml index 10f7c50..bba8cd5 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_entropy.yaml +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_1.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml new file mode 100644 index 0000000..b2713d4 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_2.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml new file mode 100644 index 0000000..333f2ad --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_3.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml new file mode 100644 index 0000000..94bd4c5 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_4.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml new file mode 100644 index 0000000..1bdaffd --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/entropy/fold_5.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ + +confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml similarity index 71% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml rename to configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml index be93eaa..439642e 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_herfindahl.yaml +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_1.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml new file mode 100644 index 0000000..5fa57a8 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_2.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml new file mode 100644 index 0000000..fd3111e --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_3.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml new file mode 100644 index 0000000..02d6f77 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_4.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml new file mode 100644 index 0000000..c9ca4e6 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/herfindahl/fold_5.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ + +confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml similarity index 65% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml rename to configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml index cc887d2..012765e 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std_final.yaml +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_1.yaml @@ -2,8 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/fold_1@predictions - _self_ confidence: std -folds: [final] diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml new file mode 100644 index 0000000..613f859 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_2.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_2@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml new file mode 100644 index 0000000..d7d2ec9 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_3.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_3@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml new file mode 100644 index 0000000..cd94cba --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_4.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_4@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml new file mode 100644 index 0000000..b69ad59 --- /dev/null +++ b/configs/experiment/postprocessing/experiment_viii_markov_chain_model_aggregation/std/fold_5.yaml @@ -0,0 +1,8 @@ +# @package _global_ + +defaults: + - /dataset/processed/ikem@dataset + - /predictions/ikem/fold_5@predictions + - _self_ + +confidence: std diff --git a/configs/experiment/postprocessing/ensembling/ftn.yaml b/configs/experiment/postprocessing/final_ensembling/ftn.yaml similarity index 66% rename from configs/experiment/postprocessing/ensembling/ftn.yaml rename to configs/experiment/postprocessing/final_ensembling/ftn.yaml index 4e1029a..611cf7a 100644 --- a/configs/experiment/postprocessing/ensembling/ftn.yaml +++ b/configs/experiment/postprocessing/final_ensembling/ftn.yaml @@ -2,5 +2,5 @@ defaults: - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions + - /predictions/ftn/final@predictions - _self_ diff --git a/configs/experiment/postprocessing/ensembling/ikem.yaml b/configs/experiment/postprocessing/final_ensembling/ikem.yaml similarity index 66% rename from configs/experiment/postprocessing/ensembling/ikem.yaml rename to configs/experiment/postprocessing/final_ensembling/ikem.yaml index 310d01e..83e2453 100644 --- a/configs/experiment/postprocessing/ensembling/ikem.yaml +++ b/configs/experiment/postprocessing/final_ensembling/ikem.yaml @@ -2,5 +2,5 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/final@predictions - _self_ diff --git a/configs/experiment/postprocessing/ensembling/knl_patos.yaml b/configs/experiment/postprocessing/final_ensembling/knl_patos.yaml similarity index 64% rename from configs/experiment/postprocessing/ensembling/knl_patos.yaml rename to configs/experiment/postprocessing/final_ensembling/knl_patos.yaml index ccee46d..49daa06 100644 --- a/configs/experiment/postprocessing/ensembling/knl_patos.yaml +++ b/configs/experiment/postprocessing/final_ensembling/knl_patos.yaml @@ -2,5 +2,5 @@ defaults: - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions + - /predictions/knl_patos/final@predictions - _self_ diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml b/configs/experiment/postprocessing/final_markov_chain_confidence/ftn.yaml similarity index 70% rename from configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml rename to configs/experiment/postprocessing/final_markov_chain_confidence/ftn.yaml index e0fdbd0..2da5b20 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std.yaml +++ b/configs/experiment/postprocessing/final_markov_chain_confidence/ftn.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions + - /predictions/ftn/final@predictions - _self_ confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml b/configs/experiment/postprocessing/final_markov_chain_confidence/ikem.yaml similarity index 70% rename from configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml rename to configs/experiment/postprocessing/final_markov_chain_confidence/ikem.yaml index 4a48c46..f5cf823 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/ikem_std.yaml +++ b/configs/experiment/postprocessing/final_markov_chain_confidence/ikem.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/ikem@dataset - - /predictions/ikem@predictions + - /predictions/ikem/final@predictions - _self_ confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml b/configs/experiment/postprocessing/final_markov_chain_confidence/knl_patos.yaml similarity index 68% rename from configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml rename to configs/experiment/postprocessing/final_markov_chain_confidence/knl_patos.yaml index b76293f..b5b0ac8 100644 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std.yaml +++ b/configs/experiment/postprocessing/final_markov_chain_confidence/knl_patos.yaml @@ -2,7 +2,7 @@ defaults: - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions + - /predictions/knl_patos/final@predictions - _self_ confidence: std diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml deleted file mode 100644 index c17c079..0000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_entropy.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml deleted file mode 100644 index 89b35d0..0000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_herfindahl.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml deleted file mode 100644 index 95cadb9..0000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/ftn_std_final.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/ftn@dataset - - /predictions/ftn@predictions - - _self_ - -confidence: std -folds: [final] diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml deleted file mode 100644 index ef9629c..0000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_entropy.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -confidence: entropy diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml deleted file mode 100644 index 225c711..0000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_herfindahl.yaml +++ /dev/null @@ -1,8 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -confidence: herfindahl diff --git a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml b/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml deleted file mode 100644 index 013824d..0000000 --- a/configs/experiment/postprocessing/markov_chain_confidence/knl_patos_std_final.yaml +++ /dev/null @@ -1,9 +0,0 @@ -# @package _global_ - -defaults: - - /dataset/processed/knl_patos@dataset - - /predictions/knl_patos@predictions - - _self_ - -confidence: std -folds: [final] diff --git a/configs/postprocessing/ensembling.yaml b/configs/postprocessing/ensembling.yaml index 60919b6..838a596 100644 --- a/configs/postprocessing/ensembling.yaml +++ b/configs/postprocessing/ensembling.yaml @@ -1,9 +1,5 @@ # @package _global_ -folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] - metadata: - run_name: "Ensembling: ${dataset.institution}" + run_name: "🔀 Ensembling: ${dataset.institution}" description: Slide-level ensembling for ${dataset.institution} - hyperparams: - folds: ${folds} diff --git a/configs/postprocessing/markov_chain_confidence.yaml b/configs/postprocessing/markov_chain_confidence.yaml index f6ee23a..76dd59c 100644 --- a/configs/postprocessing/markov_chain_confidence.yaml +++ b/configs/postprocessing/markov_chain_confidence.yaml @@ -1,11 +1,9 @@ # @package _global_ -folds: ["1/5", "2/5", "3/5", "4/5", "5/5"] confidence: ??? # options: entropy, herfindahl, std metadata: - run_name: "Markov Chain Confidence (${confidence}): ${dataset.institution}" + run_name: "🔗 Markov Chain Confidence (${confidence}): ${dataset.institution}" description: Markov chain absorption confidence scores for ${dataset.institution} hyperparams: - folds: ${folds} confidence: ${confidence} diff --git a/configs/predictions/ftn.yaml b/configs/predictions/ftn.yaml deleted file mode 100644 index 694f3e7..0000000 --- a/configs/predictions/ftn.yaml +++ /dev/null @@ -1,22 +0,0 @@ -mlflow_uris: - nancy_high: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - nancy_low: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - neutrophils: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/ftn/final.yaml b/configs/predictions/ftn/final.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ftn/final.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem.yaml b/configs/predictions/ikem.yaml deleted file mode 100644 index 694f3e7..0000000 --- a/configs/predictions/ikem.yaml +++ /dev/null @@ -1,22 +0,0 @@ -mlflow_uris: - nancy_high: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - nancy_low: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - neutrophils: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/ikem/final.yaml b/configs/predictions/ikem/final.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ikem/final.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_1.yaml b/configs/predictions/ikem/fold_1.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ikem/fold_1.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_2.yaml b/configs/predictions/ikem/fold_2.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ikem/fold_2.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_3.yaml b/configs/predictions/ikem/fold_3.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ikem/fold_3.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_4.yaml b/configs/predictions/ikem/fold_4.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ikem/fold_4.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/ikem/fold_5.yaml b/configs/predictions/ikem/fold_5.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/ikem/fold_5.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/configs/predictions/knl_patos.yaml b/configs/predictions/knl_patos.yaml deleted file mode 100644 index 694f3e7..0000000 --- a/configs/predictions/knl_patos.yaml +++ /dev/null @@ -1,22 +0,0 @@ -mlflow_uris: - nancy_high: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - nancy_low: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... - neutrophils: - 1/5: ... - 2/5: ... - 3/5: ... - 4/5: ... - 5/5: ... - final: ... diff --git a/configs/predictions/knl_patos/final.yaml b/configs/predictions/knl_patos/final.yaml new file mode 100644 index 0000000..a9b9fd7 --- /dev/null +++ b/configs/predictions/knl_patos/final.yaml @@ -0,0 +1,4 @@ +mlflow_uris: + nancy_high: ??? + nancy_low: ??? + neutrophils: ??? \ No newline at end of file diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py index 683f853..b808f5a 100644 --- a/postprocessing/ensembling.py +++ b/postprocessing/ensembling.py @@ -16,10 +16,7 @@ recall_score, ) -from postprocessing.utils import load_folds, load_label_map - - -METRIC_KEYS = ["accuracy", "precision", "recall", "specificity", "cohen_kappa"] +from postprocessing.utils import load_predictions, load_label_map def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: @@ -35,7 +32,7 @@ def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: return float(np.mean(specs)) -def fold_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: +def compute_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: return { "accuracy": accuracy_score(y_true, y_pred), "precision": precision_score(y_true, y_pred, average="macro", zero_division=0), @@ -45,64 +42,48 @@ def fold_metrics(y_true: np.ndarray, y_pred: np.ndarray) -> dict[str, float]: } -def log_table_metrics( - label: str, folds: list[str], per_fold: list[dict[str, float]] -) -> None: - for fold, m in zip(folds, per_fold, strict=True): - fold_key = fold.replace("/", "_") - mlflow.log_metrics({f"{label}/fold_{fold_key}/{k}": v for k, v in m.items()}) - means = {k: float(np.mean([m[k] for m in per_fold])) for k in METRIC_KEYS} - mlflow.log_metrics({f"{label}/mean/{k}": v for k, v in means.items()}) - - -FoldData = dict[str, pd.DataFrame] +PredictionData = dict[str, pd.DataFrame] def run_ensembling( - folds: list[str], folds_data: list[FoldData] -) -> tuple[list[dict[str, float]], list[dict[str, float]], pd.DataFrame]: - ens_per_fold: list[dict[str, float]] = [] - hier_per_fold: list[dict[str, float]] = [] - results = [] - - for fold, fold_data in zip(folds, folds_data, strict=True): - neut_df = fold_data["neutrophils"] - nlow_df = fold_data["nancy_low"] - nhigh_df = fold_data["nancy_high"] - - neut_prob = np.array(neut_df["prediction"]) - low_probs = np.array(nlow_df["prediction"].tolist()) - high_probs = np.array(nhigh_df["prediction"].tolist()) - - y_true = neut_df["nancy"].values - low_branch = low_probs[:, :2].argmax(axis=1) - high_branch = high_probs[:, 1:].argmax(axis=1) + 2 - - # Ensembling: soft majority vote across three tasks - route_high_ens = ( - neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) - ) >= 1.5 - ens_pred = np.where(route_high_ens, high_branch, low_branch) - ens_per_fold.append(fold_metrics(y_true, ens_pred)) - - # Hierarchical: neutrophils task alone routes - hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) - hier_per_fold.append(fold_metrics(y_true, hier_pred)) - + data: PredictionData, +) -> tuple[dict[str, float], dict[str, float], pd.DataFrame]: + neut_df = data["neutrophils"] + nlow_df = data["nancy_low"] + nhigh_df = data["nancy_high"] + + neut_prob = np.array(neut_df["prediction"]) + low_probs = np.array(nlow_df["prediction"].tolist()) + high_probs = np.array(nhigh_df["prediction"].tolist()) + + y_true = neut_df["nancy"].values + low_branch = low_probs[:, :2].argmax(axis=1) + high_branch = high_probs[:, 1:].argmax(axis=1) + 2 + + # Ensembling: soft majority vote across three tasks + route_high_ens = ( + neut_prob + low_probs[:, 2] + high_probs[:, 1:].sum(axis=1) + ) >= 1.5 + ens_pred = np.where(route_high_ens, high_branch, low_branch) + ens_metrics = compute_metrics(y_true, ens_pred) + + # Hierarchical: neutrophils task alone routes + hier_pred = np.where(neut_prob >= 0.5, high_branch, low_branch) + hier_metrics = compute_metrics(y_true, hier_pred) + + results = [ + { + "slide": slide, + "nancy": int(yt), + "pred_ensembling": int(ens_yp), + "pred_hierarchical": int(hier_yp), + } for slide, yt, ens_yp, hier_yp in zip( neut_df.index, y_true, ens_pred, hier_pred, strict=True - ): - results.append( - { - "fold": fold, - "slide": slide, - "nancy": int(yt), - "pred_ensembling": int(ens_yp), - "pred_hierarchical": int(hier_yp), - } - ) + ) + ] - return ens_per_fold, hier_per_fold, pd.DataFrame(results) + return ens_metrics, hier_metrics, pd.DataFrame(results) @with_cli_args(["+postprocessing=ensembling"]) @@ -110,12 +91,12 @@ def run_ensembling( @autolog def main(config: DictConfig, logger: MLFlowLogger) -> None: label_map = load_label_map(config.dataset.mlflow_uris.dataset) - folds: list[str] = list(config.folds) - folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) - ens_per_fold, hier_per_fold, results = run_ensembling(folds, folds_data) + uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + data = load_predictions(uris, label_map) + ens_metrics, hier_metrics, results = run_ensembling(data) - log_table_metrics("ensembling", folds, ens_per_fold) - log_table_metrics("hierarchical", folds, hier_per_fold) + logger.log_metrics({f"ensembling/{k}": v for k, v in ens_metrics.items()}) + logger.log_metrics({f"hierarchical/{k}": v for k, v in hier_metrics.items()}) with TemporaryDirectory() as tmpdir: output_path = Path(tmpdir) / "results.csv" diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py index f874458..aab3503 100644 --- a/postprocessing/markov_chain_confidence.py +++ b/postprocessing/markov_chain_confidence.py @@ -8,7 +8,7 @@ from rationai.mlkit import autolog, with_cli_args from rationai.mlkit.lightning.loggers import MLFlowLogger -from postprocessing.utils import load_folds, load_label_map +from postprocessing.utils import load_predictions, load_label_map class Confidence(Enum): @@ -20,27 +20,27 @@ class Confidence(Enum): def absorption_distribution( neut_df: pd.DataFrame, nlow_df: pd.DataFrame, nhigh_df: pd.DataFrame ) -> np.ndarray: - low = np.array(nlow_df["prediction"].tolist()) # (n, 3) + low = np.array(nlow_df["prediction"].tolist()) # (n, 3) high = np.array(nhigh_df["prediction"].tolist()) # (n, 4) a = 1.0 - np.array(neut_df["prediction"]) # P(neut -> nancy_low) - b = low[:, 2] # P(nancy_low -> nancy_high) - c = low[:, 0] # P(nancy_low -> NHI-0) + b = low[:, 2] # P(nancy_low -> nancy_high) + c = low[:, 0] # P(nancy_low -> NHI-0) d = high[:, 0] # P(nancy_high -> nancy_low) e = high[:, 1] # P(nancy_high -> NHI-2) f = high[:, 2] # P(nancy_high -> NHI-3) denom = 1.0 - b * d - flow_low = a + d - a * d # absorption flow factor for NHI 0/1 + flow_low = a + d - a * d # absorption flow factor for NHI 0/1 flow_high = 1.0 - a * (1.0 - b) # absorption flow factor for NHI 2/3/4 return np.column_stack( [ - c * flow_low / denom, # P(NHI-0) - low[:, 1] * flow_low / denom, # P(NHI-1) - e * flow_high / denom, # P(NHI-2) - f * flow_high / denom, # P(NHI-3) - high[:, 3] * flow_high / denom, # P(NHI-4) + c * flow_low / denom, # P(NHI-0) + low[:, 1] * flow_low / denom, # P(NHI-1) + e * flow_high / denom, # P(NHI-2) + f * flow_high / denom, # P(NHI-3) + high[:, 3] * flow_high / denom, # P(NHI-4) ] ) @@ -65,33 +65,30 @@ def compute_confidence(pi: np.ndarray, mode: Confidence) -> np.ndarray: def main(config: DictConfig, logger: MLFlowLogger) -> None: confidence_mode = Confidence(config.confidence) label_map = load_label_map(config.dataset.mlflow_uris.dataset) - folds: list[str] = list(config.folds) - folds_data = load_folds(config.predictions.mlflow_uris, folds, label_map) + uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + data = load_predictions(uris, label_map) - rows = [] - for fold, fold_data in zip(folds, folds_data, strict=True): - pi = absorption_distribution( - fold_data["neutrophils"], fold_data["nancy_low"], fold_data["nancy_high"] + pi = absorption_distribution( + data["neutrophils"], data["nancy_low"], data["nancy_high"] + ) + confidence = compute_confidence(pi, confidence_mode) + + rows = [ + { + "slide": slide, + "pi_0": pi_row[0], + "pi_1": pi_row[1], + "pi_2": pi_row[2], + "pi_3": pi_row[3], + "pi_4": pi_row[4], + "confidence": conf, + } + for slide, pi_row, conf in zip( + data["neutrophils"].index, pi, confidence, strict=True ) - confidence = compute_confidence(pi, confidence_mode) + ] - for slide, pi_row, conf in zip( - fold_data["neutrophils"].index, pi, confidence, strict=True - ): - rows.append( - { - "slide": slide, - "fold": fold, - "pi_0": pi_row[0], - "pi_1": pi_row[1], - "pi_2": pi_row[2], - "pi_3": pi_row[3], - "pi_4": pi_row[4], - "confidence": conf, - } - ) - - mlflow.log_table(pd.DataFrame(rows), artifact_file="confidence.json") + logger.log_table(pd.DataFrame(rows), artifact_file="confidence.json") if __name__ == "__main__": diff --git a/postprocessing/utils.py b/postprocessing/utils.py index ca79fa1..4625ac3 100644 --- a/postprocessing/utils.py +++ b/postprocessing/utils.py @@ -15,7 +15,7 @@ def load_label_map(dataset_uri: str) -> dict[str, int]: return {str(k): int(v) for k, v in dataset["nancy"].items()} -def load_fold_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: +def load_task_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: artifact_path = Path(mlflow.artifacts.download_artifacts(uri)) if artifact_path.is_dir(): (artifact_path,) = artifact_path.glob("*.json") @@ -28,19 +28,12 @@ def load_fold_predictions(uri: str, label_map: dict[str, int]) -> pd.DataFrame: return df.set_index("slide") -def load_folds( - uris: Mapping[str, Mapping[str, str]], - folds: list[str], +def load_predictions( + uris: Mapping[str, str], label_map: dict[str, int], -) -> list[dict[str, pd.DataFrame]]: - folds_data = [] - for fold in folds: - fold_dfs = { - task: load_fold_predictions(uris[task][fold], label_map) for task in TASKS - } - common = fold_dfs[TASKS[0]].index - for df in fold_dfs.values(): - common = common.intersection(df.index) - folds_data.append({k: v.loc[common] for k, v in fold_dfs.items()}) - print(f"Fold {fold}: {len(common)} slides") - return folds_data +) -> dict[str, pd.DataFrame]: + task_dfs = {task: load_task_predictions(uris[task], label_map) for task in TASKS} + common = task_dfs[TASKS[0]].index + for df in task_dfs.values(): + common = common.intersection(df.index) + return {k: v.loc[common] for k, v in task_dfs.items()} From 8d5235f35b7d5fa843b13a984247bdcf49f52a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:24:56 +0200 Subject: [PATCH 35/45] feat: uris --- .../ml/experiment_i_baseline_classification/test/fold_1.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_2.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_3.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_4.yaml | 2 +- .../ml/experiment_i_baseline_classification/test/fold_5.yaml | 2 +- .../experiment_i_baseline_classification/train/fold_1.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_2.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_3.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_4.yaml | 5 +++-- .../experiment_i_baseline_classification/train/fold_5.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/test/fold_1.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_2.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_3.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_4.yaml | 2 +- .../ml/experiment_ii_ordered_regression/test/fold_5.yaml | 2 +- .../ml/experiment_ii_ordered_regression/train/fold_1.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_2.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_3.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_4.yaml | 5 +++-- .../ml/experiment_ii_ordered_regression/train/fold_5.yaml | 5 +++-- .../test/fold_1.yaml | 2 +- .../test/fold_2.yaml | 2 +- .../test/fold_3.yaml | 2 +- .../test/fold_4.yaml | 2 +- .../test/fold_5.yaml | 2 +- .../train/fold_1.yaml | 5 +++-- .../train/fold_2.yaml | 5 +++-- .../train/fold_3.yaml | 5 +++-- .../train/fold_4.yaml | 5 +++-- .../train/fold_5.yaml | 5 +++-- .../nancy_high/test/fold_1.yaml | 2 +- .../nancy_high/test/fold_2.yaml | 2 +- .../nancy_high/test/fold_3.yaml | 2 +- .../nancy_high/test/fold_4.yaml | 2 +- .../nancy_high/test/fold_5.yaml | 2 +- .../nancy_high/train/fold_1.yaml | 5 +++-- .../nancy_high/train/fold_2.yaml | 5 +++-- .../nancy_high/train/fold_3.yaml | 5 +++-- .../nancy_high/train/fold_4.yaml | 5 +++-- .../nancy_high/train/fold_5.yaml | 5 +++-- .../nancy_low/test/fold_1.yaml | 2 +- .../nancy_low/test/fold_2.yaml | 2 +- .../nancy_low/test/fold_3.yaml | 2 +- .../nancy_low/test/fold_4.yaml | 2 +- .../nancy_low/test/fold_5.yaml | 2 +- .../nancy_low/train/fold_1.yaml | 5 +++-- .../nancy_low/train/fold_2.yaml | 5 +++-- .../nancy_low/train/fold_3.yaml | 5 +++-- .../nancy_low/train/fold_4.yaml | 5 +++-- .../nancy_low/train/fold_5.yaml | 5 +++-- .../neutrophils/test/fold_1.yaml | 2 +- .../neutrophils/test/fold_2.yaml | 2 +- .../neutrophils/test/fold_3.yaml | 2 +- .../neutrophils/test/fold_4.yaml | 2 +- .../neutrophils/test/fold_5.yaml | 2 +- .../neutrophils/train/fold_1.yaml | 5 +++-- .../neutrophils/train/fold_2.yaml | 5 +++-- .../neutrophils/train/fold_3.yaml | 5 +++-- .../neutrophils/train/fold_4.yaml | 5 +++-- .../neutrophils/train/fold_5.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/test/fold_1.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_2.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_3.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_4.yaml | 2 +- .../nancy_high/1_prov-gigapath/test/fold_5.yaml | 2 +- .../nancy_high/1_prov-gigapath/train/fold_1.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_2.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_3.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_4.yaml | 5 +++-- .../nancy_high/1_prov-gigapath/train/fold_5.yaml | 5 +++-- .../nancy_high/1_uni2/test/fold_1.yaml | 2 +- .../nancy_high/1_uni2/test/fold_2.yaml | 2 +- .../nancy_high/1_uni2/test/fold_3.yaml | 2 +- .../nancy_high/1_uni2/test/fold_4.yaml | 2 +- .../nancy_high/1_uni2/test/fold_5.yaml | 2 +- .../nancy_high/1_uni2/train/fold_1.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_2.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_3.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_4.yaml | 5 +++-- .../nancy_high/1_uni2/train/fold_5.yaml | 5 +++-- .../nancy_high/1_virchow2/test/fold_1.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_2.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_3.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_4.yaml | 2 +- .../nancy_high/1_virchow2/test/fold_5.yaml | 2 +- .../nancy_high/1_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_high/1_virchow2/train/fold_5.yaml | 5 +++-- .../nancy_high/2_virchow2/test/fold_1.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_2.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_3.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_4.yaml | 2 +- .../nancy_high/2_virchow2/test/fold_5.yaml | 2 +- .../nancy_high/2_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_high/2_virchow2/train/fold_5.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/test/fold_1.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_2.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_3.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_4.yaml | 2 +- .../nancy_low/1_prov-gigapath/test/fold_5.yaml | 2 +- .../nancy_low/1_prov-gigapath/train/fold_1.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_2.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_3.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_4.yaml | 5 +++-- .../nancy_low/1_prov-gigapath/train/fold_5.yaml | 5 +++-- .../nancy_low/1_uni2/test/fold_1.yaml | 2 +- .../nancy_low/1_uni2/test/fold_2.yaml | 2 +- .../nancy_low/1_uni2/test/fold_3.yaml | 2 +- .../nancy_low/1_uni2/test/fold_4.yaml | 2 +- .../nancy_low/1_uni2/test/fold_5.yaml | 2 +- .../nancy_low/1_uni2/train/fold_1.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_2.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_3.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_4.yaml | 5 +++-- .../nancy_low/1_uni2/train/fold_5.yaml | 5 +++-- .../nancy_low/1_virchow2/test/fold_1.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_2.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_3.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_4.yaml | 2 +- .../nancy_low/1_virchow2/test/fold_5.yaml | 2 +- .../nancy_low/1_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_low/1_virchow2/train/fold_5.yaml | 5 +++-- .../nancy_low/2_virchow2/test/fold_1.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_2.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_3.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_4.yaml | 2 +- .../nancy_low/2_virchow2/test/fold_5.yaml | 2 +- .../nancy_low/2_virchow2/train/fold_1.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_2.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_3.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_4.yaml | 5 +++-- .../nancy_low/2_virchow2/train/fold_5.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/test/fold_1.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_2.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_3.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_4.yaml | 2 +- .../neutrophils/1_prov-gigapath/test/fold_5.yaml | 2 +- .../neutrophils/1_prov-gigapath/train/fold_1.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_2.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_3.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_4.yaml | 5 +++-- .../neutrophils/1_prov-gigapath/train/fold_5.yaml | 5 +++-- .../neutrophils/1_uni2/test/fold_1.yaml | 2 +- .../neutrophils/1_uni2/test/fold_2.yaml | 2 +- .../neutrophils/1_uni2/test/fold_3.yaml | 2 +- .../neutrophils/1_uni2/test/fold_4.yaml | 2 +- .../neutrophils/1_uni2/test/fold_5.yaml | 2 +- .../neutrophils/1_uni2/train/fold_1.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_2.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_3.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_4.yaml | 5 +++-- .../neutrophils/1_uni2/train/fold_5.yaml | 5 +++-- .../neutrophils/1_virchow2/test/fold_1.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_2.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_3.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_4.yaml | 2 +- .../neutrophils/1_virchow2/test/fold_5.yaml | 2 +- .../neutrophils/1_virchow2/train/fold_1.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_2.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_3.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_4.yaml | 5 +++-- .../neutrophils/1_virchow2/train/fold_5.yaml | 5 +++-- .../neutrophils/2_virchow2/test/fold_1.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_2.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_3.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_4.yaml | 2 +- .../neutrophils/2_virchow2/test/fold_5.yaml | 2 +- .../neutrophils/2_virchow2/train/fold_1.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_2.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_3.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_4.yaml | 5 +++-- .../neutrophils/2_virchow2/train/fold_5.yaml | 5 +++-- 180 files changed, 360 insertions(+), 270 deletions(-) diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml index 1d4fff5..2eab735 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml index d1b9413..49fb0ff 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml index e03bab7..5bb8a52 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml index 8a7d8b6..82916c4 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml index 3478bba..b218e3d 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml index 8277385..3ab29e5 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_1.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 1 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml index 4280ceb..157f86d 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_2.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 2 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml index eeb2c37..997bb42 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_3.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 3 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml index caa448f..285e85f 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_4.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 4 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml index 3bad444..2b766de 100644 --- a/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_i_baseline_classification/train/fold_5.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 5 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml index f1d14bc..e847d65 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml index 1d2da59..cc081eb 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml index ba03cef..3636567 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml index ff17540..5337248 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml index bd66527..b161c8a 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml index 599b17d..da80aea 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_1.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 1 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml index 9741359..f8db0ba 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_2.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 2 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml index 0a85a51..70f3708 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_3.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 3 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml index 7558e4f..f245424 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_4.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 4 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml index 953c556..d1adc82 100644 --- a/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_ii_ordered_regression/train/fold_5.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/ordered_regression_tiles + - /dataset/tiled/ikem/0_512@ikem - _self_ val_fold: 5 data: train: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all val: - uris: tiled/ikem/0_512 + uris: ${ikem.mlflow_uris.tiling.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml index 9f76138..fcae733 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml index cce8282..8f2d472 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml index 8a992f5..a05de43 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml index d4222cd..4927f24 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml index 26aaeda..904b97e 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml index 459cacb..a2ceeab 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_1.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml index 626fd2d..a87da1c 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_2.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml index 0289f07..0150514 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_3.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml index 25cfce0..2cbd4d7 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_4.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml index 9f886c2..609c1cd 100644 --- a/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iii_pathology_foundation_model/train/fold_5.yaml @@ -1,12 +1,13 @@ defaults: - /experiment/ml/train/classification_embeddings + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: all diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml index 7d4efbb..016b751 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml index fc73925..7009ae6 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml index b1dbd3c..d86f7b0 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml index f974eb1..a4479f0 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml index 5463138..156b607 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml index cbbfcfb..ed98687 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml index fd8b4af..3cbab67 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml index 1a5c4fb..760456e 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml index e262f5f..a391e84 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml index eeeb2b6..30e1ece 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml index 2d65b97..0af8143 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml index bdd837b..5f348c9 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml index 77123dc..25c9ba1 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml index dc3f611..a59bb3b 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml index 9050988..3390f33 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml index 0ebf71e..76379b7 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml index c3cd9d7..2104a63 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml index 2908577..25d1173 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml index 2b1b0ba..ac00756 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml index 06c0291..eb5bdaa 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/nancy_low/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml index cd8c1e2..e611a14 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml index b810d4e..4ecf6f0 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml index 75a90e9..8462dad 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml index 66aa451..f1da2e9 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml index dfd5f64..101d62c 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml index 47319e2..1d53ca3 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml index fdc7c00..cf16049 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml index e71e33a..bb4a6b4 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml index 8b8e06f..a5cedb8 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml index ae2db3a..58661ad 100644 --- a/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_iv_mil_and_hierarchical_modeling/neutrophils/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml index cf54bd5..acee021 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml index e017792..8f0a593 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml index d6f3f3c..d2bc782 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml index c525576..bdc8ce0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml index f607789..de30f7b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml index cbbfcfb..ed98687 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml index fd8b4af..3cbab67 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml index 1a5c4fb..760456e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml index e262f5f..a391e84 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml index eeeb2b6..30e1ece 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_prov-gigapath/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml index 0af1d47..a8939b0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml index 4aa762f..0a49a29 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml index 6abadd7..155a70e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml index 0a86a61..d7babbb 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml index 36e6187..61a389e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml index 76eefbf..b0e75b0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml index 67e5743..29825ed 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml index b62e356..e64c051 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml index 804fdc5..741e1a8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml index 682cafd..b3ea426 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_uni2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml index 914315b..12c1dd2 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml index 20bdc60..5ecaeb0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml index a90e900..c1cb4cc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml index 1c346e5..af2c733 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml index 4468451..8e45443 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml index f5b1da7..bfddec2 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml index f0bdc1f..9687428 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml index 63b4785..c23e3c9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml index 277c183..5249943 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml index 3cb722b..687b880 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/1_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml index 13b5f32..6eb05f0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml index 68542ba..98233ed 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml index 8b4e80b..ff2900e 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml index a60e34f..ea151f2 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml index 38402d9..3bdb6c4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_high diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml index 7005a0b..6afdd26 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml index fa61145..76fae36 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml index 721b84e..1f1ff3c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml index 0c7797f..080d28c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml index 30952c8..dc7d16d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_high/2_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_high model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml index 0ae53ac..64c4391 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml index b421792..8e599d6 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml index dc4989c..40e110c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml index 70e573f..313b896 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml index 03107ff..53f3fa1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml index 0ebf71e..76379b7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml index c3cd9d7..2104a63 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml index 2908577..25d1173 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml index 2b1b0ba..ac00756 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml index 06c0291..eb5bdaa 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_prov-gigapath/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml index b0667f7..8802d60 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml index 16ea348..0731807 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml index 989a640..537016a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml index a72f3dd..996e32b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml index bfad198..9055ea2 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml index 38db568..62a0294 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml index d675521..1edbecf 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml index 7ef5181..cd1286c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml index 92f8f8c..2eebdf8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml index e29771c..c09e734 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_uni2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml index 98362b6..178cf8c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml index 487aaf5..9d24a79 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml index 774b2fe..4c6d591 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml index 4d42203..ed62dc9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml index 3c1f38d..e860bbc 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml index 582892c..addbf5a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml index 6d6921d..354f674 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml index b456e5b..68da847 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml index 22dbc4c..5437530 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml index ceb1fff..d1b6402 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/1_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml index 184b653..dd0bf5a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml index 7cbec3f..4c0bd9b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml index be08067..5cd4ee1 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml index 3717896..5ce6d7d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml index 0f1bfdf..0e4da89 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: nancy_low diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml index 0b3302d..32d54fa 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml index a8b407b..1961228 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml index 56b8a40..93194b0 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml index d07ed80..a3c725b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml index eab00b3..3a582b9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/nancy_low/2_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: nancy_low model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml index fe1d9c6..0cc4218 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml index 510234f..332842c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml index 64ab3ae..abd9c2d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml index dfb7392..39a794c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml index 22c29ec..b867574 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml index 47319e2..1d53ca3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml index fdc7c00..cf16049 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml index e71e33a..bb4a6b4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml index 8b8e06f..a5cedb8 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml index ae2db3a..58661ad 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_prov-gigapath/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_prov-gigapath@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_prov-gigapath + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: prov-gigapath diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml index 434d1be..3d1369b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml index aee8c0e..b87b8d7 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml index c5b8d8c..25896de 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml index c753a8d..09e1e79 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml index 7080e15..5153fed 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml index 3ebd1ea..2fd9c13 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml index 1d8b21c..8d627d9 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml index 6086623..942eb99 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml index 0023f19..ba22dba 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml index 52fb1e3..5829e15 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_uni2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_uni2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_uni2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: uni2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml index 3b1b11b..162a3d5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml index 05d3307..82cc534 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml index 5a89a79..66c9580 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml index 33c966d..a161473 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml index 8b84680..80f2ec5 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml index 64cf906..610be2d 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml index 5f54c1c..d292bdf 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml index 12ea5b8..a6661f4 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml index f43a98d..b4ad3ab 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml index 2da15ca..7ccdfb3 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/1_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/1_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/1_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml index 220f82f..b6fd710 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_1.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml index f7c800b..2e85273 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_2.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml index a72fb45..40fb19f 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_3.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml index a1ce0af..fb6b463 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_4.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml index 68fb366..ccbabac 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/test/fold_5.yaml @@ -6,5 +6,5 @@ defaults: data: test: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.test_preliminary} mode: neutrophils diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml index b1439c0..8d16f29 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_1.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 1 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml index b846471..c5d241b 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_2.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 2 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml index 4550d3c..5f80a3c 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_3.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 3 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml index c101ef7..0309748 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_4.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 4 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 diff --git a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml index 23b345c..10c548a 100644 --- a/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml +++ b/configs/experiment/ml/experiment_v_more_foundation_models/neutrophils/2_virchow2/train/fold_5.yaml @@ -1,14 +1,15 @@ defaults: - /experiment/ml/train/mil_bags + - /dataset/embeddings/ikem/2_virchow2@ikem - _self_ val_fold: 5 data: train: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils val: - uris: embeddings/ikem/2_virchow2 + uris: ${ikem.mlflow_uris.embeddings.train} mode: neutrophils model: foundation: virchow2 From 29633f785f30cfc674e27596f44bc2e6c66a3ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:29:25 +0200 Subject: [PATCH 36/45] feat: artifacts deleted --- configs/dataset/embeddings/ftn/1_prov-gigapath.yaml | 6 +++--- configs/dataset/embeddings/ftn/1_uni2.yaml | 6 +++--- configs/dataset/embeddings/ftn/1_virchow2.yaml | 6 +++--- configs/dataset/embeddings/ftn/2_virchow2.yaml | 6 +++--- configs/dataset/embeddings/ikem/1_prov-gigapath.yaml | 6 +++--- configs/dataset/embeddings/ikem/1_uni2.yaml | 6 +++--- configs/dataset/embeddings/ikem/1_virchow2.yaml | 6 +++--- configs/dataset/embeddings/ikem/2_virchow2.yaml | 6 +++--- .../dataset/embeddings/knl_patos/1_prov-gigapath.yaml | 4 ++-- configs/dataset/embeddings/knl_patos/1_uni2.yaml | 4 ++-- configs/dataset/embeddings/knl_patos/1_virchow2.yaml | 4 ++-- configs/dataset/embeddings/knl_patos/2_virchow2.yaml | 4 ++-- configs/dataset/neutrophils/ftn.yaml | 2 +- configs/dataset/neutrophils/ikem.yaml | 2 +- configs/dataset/neutrophils/knl_patos.yaml | 2 +- configs/dataset/processed/ftn.yaml | 2 +- configs/dataset/processed/ikem.yaml | 2 +- configs/dataset/processed/knl_patos.yaml | 2 +- configs/dataset/processed_w_masks/ftn.yaml | 10 +++++----- configs/dataset/processed_w_masks/ikem.yaml | 10 +++++----- configs/dataset/processed_w_masks/knl_patos.yaml | 8 ++++---- configs/dataset/tiled/ftn/0_320.yaml | 6 +++--- configs/dataset/tiled/ftn/0_512.yaml | 6 +++--- configs/dataset/tiled/ftn/1_224.yaml | 6 +++--- configs/dataset/tiled/ftn/2_224.yaml | 6 +++--- configs/dataset/tiled/ikem/0_320.yaml | 6 +++--- configs/dataset/tiled/ikem/0_512.yaml | 6 +++--- configs/dataset/tiled/ikem/1_224.yaml | 6 +++--- configs/dataset/tiled/ikem/2_224.yaml | 6 +++--- configs/dataset/tiled/knl_patos/0_320.yaml | 4 ++-- configs/dataset/tiled/knl_patos/0_512.yaml | 4 ++-- configs/dataset/tiled/knl_patos/1_224.yaml | 4 ++-- configs/dataset/tiled/knl_patos/2_224.yaml | 4 ++-- 33 files changed, 84 insertions(+), 84 deletions(-) diff --git a/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml index 08ba0e4..6d3950c 100644 --- a/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml +++ b/configs/dataset/embeddings/ftn/1_prov-gigapath.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_uni2.yaml b/configs/dataset/embeddings/ftn/1_uni2.yaml index 08ba0e4..6d3950c 100644 --- a/configs/dataset/embeddings/ftn/1_uni2.yaml +++ b/configs/dataset/embeddings/ftn/1_uni2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/1_virchow2.yaml b/configs/dataset/embeddings/ftn/1_virchow2.yaml index 08ba0e4..6d3950c 100644 --- a/configs/dataset/embeddings/ftn/1_virchow2.yaml +++ b/configs/dataset/embeddings/ftn/1_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ftn/2_virchow2.yaml b/configs/dataset/embeddings/ftn/2_virchow2.yaml index 5cb4f4e..63cf735 100644 --- a/configs/dataset/embeddings/ftn/2_virchow2.yaml +++ b/configs/dataset/embeddings/ftn/2_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml index a9353b5..b44ca18 100644 --- a/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml +++ b/configs/dataset/embeddings/ikem/1_prov-gigapath.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_uni2.yaml b/configs/dataset/embeddings/ikem/1_uni2.yaml index a9353b5..b44ca18 100644 --- a/configs/dataset/embeddings/ikem/1_uni2.yaml +++ b/configs/dataset/embeddings/ikem/1_uni2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/1_virchow2.yaml b/configs/dataset/embeddings/ikem/1_virchow2.yaml index a9353b5..b44ca18 100644 --- a/configs/dataset/embeddings/ikem/1_virchow2.yaml +++ b/configs/dataset/embeddings/ikem/1_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/ikem/2_virchow2.yaml b/configs/dataset/embeddings/ikem/2_virchow2.yaml index 6752183..37ca7c4 100644 --- a/configs/dataset/embeddings/ikem/2_virchow2.yaml +++ b/configs/dataset/embeddings/ikem/2_virchow2.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: embeddings: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml index 9952d82..7f8b790 100644 --- a/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml +++ b/configs/dataset/embeddings/knl_patos/1_prov-gigapath.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_uni2.yaml b/configs/dataset/embeddings/knl_patos/1_uni2.yaml index 9952d82..7f8b790 100644 --- a/configs/dataset/embeddings/knl_patos/1_uni2.yaml +++ b/configs/dataset/embeddings/knl_patos/1_uni2.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/1_virchow2.yaml b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml index 9952d82..7f8b790 100644 --- a/configs/dataset/embeddings/knl_patos/1_virchow2.yaml +++ b/configs/dataset/embeddings/knl_patos/1_virchow2.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/embeddings/knl_patos/2_virchow2.yaml b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml index 1acf5ee..dfa1578 100644 --- a/configs/dataset/embeddings/knl_patos/2_virchow2.yaml +++ b/configs/dataset/embeddings/knl_patos/2_virchow2.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: embeddings: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/neutrophils/ftn.yaml b/configs/dataset/neutrophils/ftn.yaml index 3446ced..d31d738 100644 --- a/configs/dataset/neutrophils/ftn.yaml +++ b/configs/dataset/neutrophils/ftn.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - neutrophils: mlflow-artifacts:/86/deee774e63644dd1a5e3d3e15a429224/artifacts/neutrophils + neutrophils: ??? diff --git a/configs/dataset/neutrophils/ikem.yaml b/configs/dataset/neutrophils/ikem.yaml index 81d33b2..819642e 100644 --- a/configs/dataset/neutrophils/ikem.yaml +++ b/configs/dataset/neutrophils/ikem.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - neutrophils: mlflow-artifacts:/86/c01579c246ad4f66a3b3cc0d8aa644fe/artifacts/neutrophils + neutrophils: ??? diff --git a/configs/dataset/neutrophils/knl_patos.yaml b/configs/dataset/neutrophils/knl_patos.yaml index 5303a9a..c98eb76 100644 --- a/configs/dataset/neutrophils/knl_patos.yaml +++ b/configs/dataset/neutrophils/knl_patos.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - neutrophils: mlflow-artifacts:/86/24d97109978e4c8ba13ac1972d22be96/artifacts/neutrophils + neutrophils: ??? diff --git a/configs/dataset/processed/ftn.yaml b/configs/dataset/processed/ftn.yaml index c79fe2a..a3d5297 100644 --- a/configs/dataset/processed/ftn.yaml +++ b/configs/dataset/processed/ftn.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - dataset: mlflow-artifacts:/86/d2b2f1835fc647e2ba3639ce606f4768/artifacts/dataset.csv + dataset: ??? diff --git a/configs/dataset/processed/ikem.yaml b/configs/dataset/processed/ikem.yaml index 79e84ad..4d42bc9 100644 --- a/configs/dataset/processed/ikem.yaml +++ b/configs/dataset/processed/ikem.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - dataset: mlflow-artifacts:/86/7c6e7cc142494d45b6513185318d4462/artifacts/dataset.csv + dataset: ??? diff --git a/configs/dataset/processed/knl_patos.yaml b/configs/dataset/processed/knl_patos.yaml index 7c2c3dd..3315f48 100644 --- a/configs/dataset/processed/knl_patos.yaml +++ b/configs/dataset/processed/knl_patos.yaml @@ -3,4 +3,4 @@ defaults: - _self_ mlflow_uris: - dataset: mlflow-artifacts:/86/f690f64ded624da9a7150a7a92385aec/artifacts/dataset.csv + dataset: ??? diff --git a/configs/dataset/processed_w_masks/ftn.yaml b/configs/dataset/processed_w_masks/ftn.yaml index bb163a7..0a6ce92 100644 --- a/configs/dataset/processed_w_masks/ftn.yaml +++ b/configs/dataset/processed_w_masks/ftn.yaml @@ -3,9 +3,9 @@ defaults: - _self_ mlflow_uris: - tissue_mask: mlflow-artifacts:/86/17149d1de7014112aba3a252a76d10bc/artifacts/tissue_masks - qc_mask: mlflow-artifacts:/86/d2301fc279c94682a639583731c2fded/artifacts + tissue_mask: ??? + qc_mask: ??? splits: - train: mlflow-artifacts:/86/a0fa337bf26146dab42062237285737f/artifacts/train.csv - test_preliminary: mlflow-artifacts:/86/a0fa337bf26146dab42062237285737f/artifacts/test_preliminary.csv - test_final: mlflow-artifacts:/86/a0fa337bf26146dab42062237285737f/artifacts/test_final.csv + train: ??? + test_preliminary: ??? + test_final: ??? diff --git a/configs/dataset/processed_w_masks/ikem.yaml b/configs/dataset/processed_w_masks/ikem.yaml index 1ca391b..a3f8ab8 100644 --- a/configs/dataset/processed_w_masks/ikem.yaml +++ b/configs/dataset/processed_w_masks/ikem.yaml @@ -3,9 +3,9 @@ defaults: - _self_ mlflow_uris: - tissue_mask: mlflow-artifacts:/86/94481ac59246471fb874bfb4dccb5e67/artifacts/tissue_masks - qc_mask: mlflow-artifacts:/86/65e794b652ab4369aad2e7dbe60eddca/artifacts + tissue_mask: ??? + qc_mask: ??? splits: - train: mlflow-artifacts:/86/9a2d8f975bc24dceb5271c5699560a8f/artifacts/train.csv - test_preliminary: mlflow-artifacts:/86/9a2d8f975bc24dceb5271c5699560a8f/artifacts/test_preliminary.csv - test_final: mlflow-artifacts:/86/9a2d8f975bc24dceb5271c5699560a8f/artifacts/test_final.csv + train: ??? + test_preliminary: ??? + test_final: ??? diff --git a/configs/dataset/processed_w_masks/knl_patos.yaml b/configs/dataset/processed_w_masks/knl_patos.yaml index 648fbec..fc29e2e 100644 --- a/configs/dataset/processed_w_masks/knl_patos.yaml +++ b/configs/dataset/processed_w_masks/knl_patos.yaml @@ -3,8 +3,8 @@ defaults: - _self_ mlflow_uris: - tissue_mask: mlflow-artifacts:/86/6cdfa5ce4f7242a9b2bb394bfd5ed705/artifacts/tissue_masks - qc_mask: mlflow-artifacts:/86/7cc5586efbca4ecd8f7ac2847b4ee199/artifacts + tissue_mask: ??? + qc_mask: ??? splits: - test_preliminary: mlflow-artifacts:/86/4d517fd564c741ec8e14679a340ebcb0/artifacts/test_preliminary.csv - test_final: mlflow-artifacts:/86/4d517fd564c741ec8e14679a340ebcb0/artifacts/test_final.csv + test_preliminary: ??? + test_final: ??? diff --git a/configs/dataset/tiled/ftn/0_320.yaml b/configs/dataset/tiled/ftn/0_320.yaml index 3f9db69..c6aba9b 100644 --- a/configs/dataset/tiled/ftn/0_320.yaml +++ b/configs/dataset/tiled/ftn/0_320.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/0_512.yaml b/configs/dataset/tiled/ftn/0_512.yaml index 3f9db69..c6aba9b 100644 --- a/configs/dataset/tiled/ftn/0_512.yaml +++ b/configs/dataset/tiled/ftn/0_512.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/1_224.yaml b/configs/dataset/tiled/ftn/1_224.yaml index 3f9db69..c6aba9b 100644 --- a/configs/dataset/tiled/ftn/1_224.yaml +++ b/configs/dataset/tiled/ftn/1_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ftn/2_224.yaml b/configs/dataset/tiled/ftn/2_224.yaml index 3f9db69..c6aba9b 100644 --- a/configs/dataset/tiled/ftn/2_224.yaml +++ b/configs/dataset/tiled/ftn/2_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/train - ftn - test_preliminary: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_preliminary - ftn - test_final: mlflow-artifacts:/86/b82e5dcc6bf840cf92bea0e0cfdc7603/artifacts/test_final - ftn \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/0_320.yaml b/configs/dataset/tiled/ikem/0_320.yaml index c8f212c..ce2ee77 100644 --- a/configs/dataset/tiled/ikem/0_320.yaml +++ b/configs/dataset/tiled/ikem/0_320.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/0_512.yaml b/configs/dataset/tiled/ikem/0_512.yaml index c8f212c..ce2ee77 100644 --- a/configs/dataset/tiled/ikem/0_512.yaml +++ b/configs/dataset/tiled/ikem/0_512.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/1_224.yaml b/configs/dataset/tiled/ikem/1_224.yaml index c8f212c..ce2ee77 100644 --- a/configs/dataset/tiled/ikem/1_224.yaml +++ b/configs/dataset/tiled/ikem/1_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/ikem/2_224.yaml b/configs/dataset/tiled/ikem/2_224.yaml index c8f212c..ce2ee77 100644 --- a/configs/dataset/tiled/ikem/2_224.yaml +++ b/configs/dataset/tiled/ikem/2_224.yaml @@ -4,6 +4,6 @@ defaults: mlflow_uris: tiling: - train: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/train - ikem - test_preliminary: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_preliminary - ikem - test_final: mlflow-artifacts:/86/854bd20a112f450cb31843e5c436854b/artifacts/test_final - ikem \ No newline at end of file + train: ??? + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/0_320.yaml b/configs/dataset/tiled/knl_patos/0_320.yaml index a8e4401..eceb927 100644 --- a/configs/dataset/tiled/knl_patos/0_320.yaml +++ b/configs/dataset/tiled/knl_patos/0_320.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/0_512.yaml b/configs/dataset/tiled/knl_patos/0_512.yaml index a8e4401..eceb927 100644 --- a/configs/dataset/tiled/knl_patos/0_512.yaml +++ b/configs/dataset/tiled/knl_patos/0_512.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/1_224.yaml b/configs/dataset/tiled/knl_patos/1_224.yaml index a8e4401..eceb927 100644 --- a/configs/dataset/tiled/knl_patos/1_224.yaml +++ b/configs/dataset/tiled/knl_patos/1_224.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file diff --git a/configs/dataset/tiled/knl_patos/2_224.yaml b/configs/dataset/tiled/knl_patos/2_224.yaml index a8e4401..eceb927 100644 --- a/configs/dataset/tiled/knl_patos/2_224.yaml +++ b/configs/dataset/tiled/knl_patos/2_224.yaml @@ -4,5 +4,5 @@ defaults: mlflow_uris: tiling: - test_preliminary: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_preliminary - knl_patos - test_final: mlflow-artifacts:/86/d57c09bc02914ff58ba659b91f34c469/artifacts/test_final - knl_patos \ No newline at end of file + test_preliminary: ??? + test_final: ??? \ No newline at end of file From bb71d720ec11e6cd8f1f4cac99451b608522b34e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 18:42:45 +0200 Subject: [PATCH 37/45] feature: scripts --- scripts/ml/neutrophils.py | 16 ++++++++++++++++ scripts/ml/test.py | 18 ++++++++++++++++++ scripts/ml/train.py | 18 ++++++++++++++++++ scripts/postprocessing/ensembling.py | 2 +- .../postprocessing/markov_chain_confidence.py | 2 +- 5 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 scripts/ml/neutrophils.py create mode 100644 scripts/ml/test.py create mode 100644 scripts/ml/train.py diff --git a/scripts/ml/neutrophils.py b/scripts/ml/neutrophils.py new file mode 100644 index 0000000..cd5727a --- /dev/null +++ b/scripts/ml/neutrophils.py @@ -0,0 +1,16 @@ +from kube_jobs import submit_job + + +submit_job( + job_name="ulcerative-colitis-ml-neutrophils-...", + username=..., + public=False, + cpu=4, + memory="8Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m ml.neutrophils +experiment=ml/experiment_vi_neutrophil_detection/run", + ], +) diff --git a/scripts/ml/test.py b/scripts/ml/test.py new file mode 100644 index 0000000..fbdbc09 --- /dev/null +++ b/scripts/ml/test.py @@ -0,0 +1,18 @@ +from kube_jobs import storage, submit_job + + +submit_job( + job_name="ulcerative-colitis-ml-test-...", + username=..., + public=False, + gpu="mig-1g.10gb", + cpu=10, + memory="64Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m ml +experiment=ml/.../...", + ], + storage=[storage.secure.DATA], +) diff --git a/scripts/ml/train.py b/scripts/ml/train.py new file mode 100644 index 0000000..12571e2 --- /dev/null +++ b/scripts/ml/train.py @@ -0,0 +1,18 @@ +from kube_jobs import storage, submit_job + + +submit_job( + job_name="ulcerative-colitis-ml-train-...", + username=..., + public=False, + gpu="mig-1g.10gb", + cpu=10, + memory="64Gi", + script=[ + "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", + "cd workdir", + "uv sync --frozen", + "uv run -m ml +experiment=ml/.../...", + ], + storage=[storage.secure.DATA], +) diff --git a/scripts/postprocessing/ensembling.py b/scripts/postprocessing/ensembling.py index 570b537..a474cf6 100644 --- a/scripts/postprocessing/ensembling.py +++ b/scripts/postprocessing/ensembling.py @@ -11,6 +11,6 @@ "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", "cd workdir", "uv sync --frozen", - "uv run -m postprocessing.ensembling +experiment/postprocessing/ensembling=...", + "uv run -m postprocessing.ensembling +experiment=postprocessing/..._ensembling/...", ], ) diff --git a/scripts/postprocessing/markov_chain_confidence.py b/scripts/postprocessing/markov_chain_confidence.py index 99a2eec..6c22177 100644 --- a/scripts/postprocessing/markov_chain_confidence.py +++ b/scripts/postprocessing/markov_chain_confidence.py @@ -11,6 +11,6 @@ "git clone https://github.com/RationAI/ulcerative-colitis.git workdir", "cd workdir", "uv sync --frozen", - "uv run -m postprocessing.markov_chain_confidence +experiment/postprocessing/markov_chain_confidence=...", + "uv run -m postprocessing.markov_chain_confidence +experiment=postprocessing/..._markov_chain_.../...", ], ) From cc369f200e52776aeec984d007bb4c601e223c60 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 19:06:01 +0200 Subject: [PATCH 38/45] fix: bugs --- ml/base.py | 11 +++++++---- ml/mil.py | 2 +- ml/modeling/__init__.py | 8 +++----- ml/modeling/classification_head.py | 4 +--- ml/modeling/linear_probe.py | 4 +--- ml/modeling/normalization.py | 6 ------ ml/ordered_regression.py | 3 ++- 7 files changed, 15 insertions(+), 23 deletions(-) diff --git a/ml/base.py b/ml/base.py index f947226..845c566 100644 --- a/ml/base.py +++ b/ml/base.py @@ -9,7 +9,7 @@ MeanAggregator, ) from torch import Tensor -from torch.nn import Module, ModuleDict +from torch.nn import Module, ModuleDict, Softmax from torch.optim.adam import Adam from torch.optim.optimizer import Optimizer from torchmetrics import MetricCollection @@ -32,6 +32,7 @@ def __init__(self, backbone: Module, lr: float) -> None: super().__init__() self.backbone = backbone self.lr = lr + self.activation = Softmax(dim=-1) N_CLASSES = 5 @@ -86,16 +87,18 @@ def validation_step(self, batch: TilesInput) -> None: loss = self.criterion(outputs, targets) self.log("validation/loss", loss, on_epoch=True, prog_bar=True) targets = targets.reshape(-1) - self.update_metrics(self.val_metrics, outputs, targets, metadata) + probabilities = self.activation(outputs) + self.update_metrics(self.val_metrics, probabilities, targets, metadata) self.log_metrics(self.val_metrics) def test_step(self, batch: TilesInput) -> Output: inputs, targets, metadata = batch outputs = self(inputs) targets = targets.reshape(-1) - self.update_metrics(self.test_metrics, outputs, targets, metadata) + probabilities = self.activation(outputs) + self.update_metrics(self.test_metrics, probabilities, targets, metadata) self.log_metrics(self.test_metrics) - return outputs + return probabilities def predict_step(self, batch: TilesPredictInput) -> Output: return self(batch[0]) diff --git a/ml/mil.py b/ml/mil.py index d93cc46..d34d463 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -104,7 +104,7 @@ def validation_step(self, batch: BagsInput) -> None: self.val_metrics, on_epoch=True, on_step=False, batch_size=len(bags) ) - def test_step(self, batch: BagsInput) -> None: + def test_step(self, batch: BagsInput) -> Tensor: bags, labels, _ = batch outputs = self(bags) diff --git a/ml/modeling/__init__.py b/ml/modeling/__init__.py index 744b0f6..a7425cc 100644 --- a/ml/modeling/__init__.py +++ b/ml/modeling/__init__.py @@ -1,16 +1,14 @@ from ml.modeling.classification_head import ClassificationHead -from ml.modeling.normalization import ( - power_normalization, - sigmoid_normalization, -) +from ml.modeling.linear_probe import LinearProbe +from ml.modeling.normalization import sigmoid_normalization from ml.modeling.ordinal_regression_head import LogisticCumulativeLink from ml.modeling.regression_head import RegressionHead __all__ = [ "ClassificationHead", + "LinearProbe", "LogisticCumulativeLink", "RegressionHead", - "power_normalization", "sigmoid_normalization", ] diff --git a/ml/modeling/classification_head.py b/ml/modeling/classification_head.py index 6597000..31dd635 100644 --- a/ml/modeling/classification_head.py +++ b/ml/modeling/classification_head.py @@ -10,6 +10,4 @@ def __init__(self) -> None: def forward(self, x: Tensor) -> Tensor: x = self.global_pool(x) # (B, C, 1, 1) x = x.flatten(start_dim=-3, end_dim=-1) # (B, C) - x = self.proj(x) - x = x.softmax(dim=-1) - return x + return self.proj(x) diff --git a/ml/modeling/linear_probe.py b/ml/modeling/linear_probe.py index f4907ca..51c4041 100644 --- a/ml/modeling/linear_probe.py +++ b/ml/modeling/linear_probe.py @@ -7,6 +7,4 @@ def __init__(self) -> None: self.proj = nn.Linear(1536, 5) def forward(self, x: Tensor) -> Tensor: - x = self.proj(x) - x = x.softmax(dim=-1) - return x + return self.proj(x) diff --git a/ml/modeling/normalization.py b/ml/modeling/normalization.py index 238ad11..424441d 100644 --- a/ml/modeling/normalization.py +++ b/ml/modeling/normalization.py @@ -4,9 +4,3 @@ def sigmoid_normalization(x: Tensor) -> Tensor: return torch.softmax(x.sigmoid(), dim=1) - - -def power_normalization(x: Tensor, power: float) -> Tensor: - x -= x.min() - x = torch.pow(x, power) - return x / (x.max() + 1e-6) diff --git a/ml/ordered_regression.py b/ml/ordered_regression.py index 6932590..eb54995 100644 --- a/ml/ordered_regression.py +++ b/ml/ordered_regression.py @@ -1,5 +1,5 @@ from torch import Tensor -from torch.nn import Module +from torch.nn import Identity, Module from ml.base import BaseModule from ml.loss import CumulativeLinkLoss @@ -14,6 +14,7 @@ def __init__(self, backbone: Module, lr: float) -> None: self.decode_head = RegressionHead() self.cumulative_link = LogisticCumulativeLink(num_classes=self.N_CLASSES) self.criterion = CumulativeLinkLoss() + self.activation = Identity() self._build_metrics() def forward(self, x: Tensor) -> Output: From e5bf6d150cc47ac7767f5852af91ba8b60ba58b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 17:09:51 +0000 Subject: [PATCH 39/45] fix: ruff --- ml/__main__.py | 1 + postprocessing/ensembling.py | 8 +++++--- postprocessing/markov_chain_confidence.py | 8 +++++--- preprocessing/neutrophils.py | 3 ++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/ml/__main__.py b/ml/__main__.py index ddf68ce..504ce91 100644 --- a/ml/__main__.py +++ b/ml/__main__.py @@ -6,6 +6,7 @@ from omegaconf import DictConfig, OmegaConf from rationai.mlkit import Trainer, autolog + OmegaConf.register_new_resolver( "random_seed", lambda: randint(0, 2**31), use_cache=True ) diff --git a/postprocessing/ensembling.py b/postprocessing/ensembling.py index b808f5a..e1bd9c5 100644 --- a/postprocessing/ensembling.py +++ b/postprocessing/ensembling.py @@ -2,7 +2,6 @@ from tempfile import TemporaryDirectory import hydra -import mlflow import numpy as np import pandas as pd from omegaconf import DictConfig @@ -16,7 +15,7 @@ recall_score, ) -from postprocessing.utils import load_predictions, load_label_map +from postprocessing.utils import load_label_map, load_predictions def macro_specificity(y_true: np.ndarray, y_pred: np.ndarray) -> float: @@ -91,7 +90,10 @@ def run_ensembling( @autolog def main(config: DictConfig, logger: MLFlowLogger) -> None: label_map = load_label_map(config.dataset.mlflow_uris.dataset) - uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + uris = { + task: config.predictions.mlflow_uris[task] + for task in ["neutrophils", "nancy_low", "nancy_high"] + } data = load_predictions(uris, label_map) ens_metrics, hier_metrics, results = run_ensembling(data) diff --git a/postprocessing/markov_chain_confidence.py b/postprocessing/markov_chain_confidence.py index aab3503..fc9cac5 100644 --- a/postprocessing/markov_chain_confidence.py +++ b/postprocessing/markov_chain_confidence.py @@ -1,14 +1,13 @@ from enum import Enum import hydra -import mlflow import numpy as np import pandas as pd from omegaconf import DictConfig from rationai.mlkit import autolog, with_cli_args from rationai.mlkit.lightning.loggers import MLFlowLogger -from postprocessing.utils import load_predictions, load_label_map +from postprocessing.utils import load_label_map, load_predictions class Confidence(Enum): @@ -65,7 +64,10 @@ def compute_confidence(pi: np.ndarray, mode: Confidence) -> np.ndarray: def main(config: DictConfig, logger: MLFlowLogger) -> None: confidence_mode = Confidence(config.confidence) label_map = load_label_map(config.dataset.mlflow_uris.dataset) - uris = {task: config.predictions.mlflow_uris[task] for task in ["neutrophils", "nancy_low", "nancy_high"]} + uris = { + task: config.predictions.mlflow_uris[task] + for task in ["neutrophils", "nancy_low", "nancy_high"] + } data = load_predictions(uris, label_map) pi = absorption_distribution( diff --git a/preprocessing/neutrophils.py b/preprocessing/neutrophils.py index 058d971..a33e0c3 100644 --- a/preprocessing/neutrophils.py +++ b/preprocessing/neutrophils.py @@ -5,13 +5,14 @@ import hydra import pandas as pd import torch -from ml.data.datasets import TilesPredict from omegaconf import DictConfig from rationai.mlkit import autolog, with_cli_args from rationai.mlkit.lightning.loggers import MLFlowLogger from torch.utils.data import DataLoader from tqdm import tqdm +from ml.data.datasets import TilesPredict + class NeutrophilDetector(torch.nn.Module): def __init__(self, confidence: float, weights_url: str) -> None: From 3548ffccc934fa324186bff58b9079adbc1da947 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 19:26:45 +0000 Subject: [PATCH 40/45] chore: ruff --- .ruff.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.ruff.toml b/.ruff.toml index fb5e992..56aac6e 100644 --- a/.ruff.toml +++ b/.ruff.toml @@ -36,7 +36,7 @@ extend-ignore = [ "D106", # missing docstring in public nested class "D107", # missing docstring in __init__ "N812", # lowercase imported as non lowercase - "TCH002", # move third-party into a type-checking block + "TC002", # move third-party into a type-checking block "F722", # jaxtyping ] From c993466d504de4b286d5c1ea963e36fabeea1b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 19:28:34 +0000 Subject: [PATCH 41/45] fix: ruff --- ml/data/datasets/embeddings.py | 4 +++- ml/data/datasets/tiles.py | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 4c47aa2..87a4260 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -74,7 +74,9 @@ def __init__( super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Embeddings[EmbeddingsSample]]: - self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) + self.slides = process_slides( + self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val + ) return ( _Embeddings( slide_metadata=dict(slide), diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 9e3b984..1153e20 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -95,7 +95,9 @@ def __init__( super().__init__(uris=(uris,) if isinstance(uris, str) else uris) def generate_datasets(self) -> Iterable[_Tiles[TilesSample]]: - self.slides = process_slides(self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val) + self.slides = process_slides( + self.slides, self.mode, val_fold=self.val_fold, is_val=self.is_val + ) return ( _Tiles( slide_metadata=dict(slide), From d395ca1fd57be175303f8140142e943b0f4128ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 20:42:07 +0000 Subject: [PATCH 42/45] chore: mypy --- ml/base.py | 13 ++++--- ml/callbacks/mlflow_prediction_callback.py | 17 +++++---- ml/data/data_module.py | 41 ++++++++++++++-------- ml/data/datasets/bags.py | 2 +- ml/data/datasets/embeddings.py | 2 +- ml/data/datasets/labels.py | 3 +- ml/data/datasets/tiles.py | 6 ++-- ml/mil.py | 10 +++--- ml/neutrophils.py | 18 +++++----- ml/typing.py | 9 +++++ preprocessing/neutrophils.py | 2 +- 11 files changed, 77 insertions(+), 46 deletions(-) diff --git a/ml/base.py b/ml/base.py index 845c566..044b97c 100644 --- a/ml/base.py +++ b/ml/base.py @@ -1,6 +1,6 @@ from abc import abstractmethod from collections.abc import Mapping -from typing import cast +from typing import Any, cast from lightning import LightningModule from rationai.mlkit.metrics import ( @@ -12,7 +12,7 @@ from torch.nn import Module, ModuleDict, Softmax from torch.optim.adam import Adam from torch.optim.optimizer import Optimizer -from torchmetrics import MetricCollection +from torchmetrics import Metric, MetricCollection from torchmetrics.classification import ( MulticlassAccuracy, MulticlassAUROC, @@ -32,7 +32,7 @@ def __init__(self, backbone: Module, lr: float) -> None: super().__init__() self.backbone = backbone self.lr = lr - self.activation = Softmax(dim=-1) + self.activation: Module = Softmax(dim=-1) N_CLASSES = 5 @@ -48,7 +48,10 @@ def _build_metrics(self) -> None: "kappa": MulticlassCohenKappa(num_classes=self.N_CLASSES), } val_metrics: dict[str, MetricCollection] = { - "tiles_all": MetricCollection(metrics, prefix="validation/tiles/"), + "tiles_all": MetricCollection( + cast("dict[str, Metric | MetricCollection]", metrics), + prefix="validation/tiles/", + ), "slide_max": AggregatedMetricCollection( metrics, aggregator=MaxAggregator(), @@ -106,7 +109,7 @@ def predict_step(self, batch: TilesPredictInput) -> Output: def configure_optimizers(self) -> Optimizer: return Adam(self.parameters(), lr=self.lr) - def log_dict(self, dictionary: MetricCollection, *args, **kwargs) -> None: + def log_dict(self, dictionary: MetricCollection, *args: Any, **kwargs: Any) -> None: # type: ignore[override] for name, metric in dictionary.items(): result = cast("Tensor", metric.compute()) if result.shape: diff --git a/ml/callbacks/mlflow_prediction_callback.py b/ml/callbacks/mlflow_prediction_callback.py index eaf80a6..a47e70c 100644 --- a/ml/callbacks/mlflow_prediction_callback.py +++ b/ml/callbacks/mlflow_prediction_callback.py @@ -1,10 +1,13 @@ +from typing import cast + from lightning import Callback, LightningModule, Trainer +from lightning.pytorch.utilities.types import STEP_OUTPUT from rationai.mlkit.lightning.loggers.mlflow import MLFlowLogger -from ml.typing import Output +from ml.typing import Input, MetadataBags, MetadataBatch, Output -def _slide_names(metadata) -> list[str]: +def _slide_names(metadata: list[MetadataBags] | MetadataBatch) -> list[str]: if isinstance(metadata, dict): return metadata["slide_name"] return [m["slide_name"] for m in metadata] @@ -15,7 +18,7 @@ def _on_batch_end( self, trainer: Trainer, outputs: Output, - batch: tuple, + batch: Input, ) -> None: assert isinstance(trainer.logger, MLFlowLogger) trainer.logger.log_table( @@ -31,7 +34,7 @@ def on_predict_batch_end( trainer: Trainer, pl_module: LightningModule, outputs: Output, - batch: tuple, + batch: Input, batch_idx: int, dataloader_idx: int = 0, ) -> None: @@ -42,9 +45,9 @@ def on_test_batch_end( self, trainer: Trainer, pl_module: LightningModule, - outputs: Output, - batch: tuple, + outputs: STEP_OUTPUT, + batch: Input, batch_idx: int, dataloader_idx: int = 0, ) -> None: - self._on_batch_end(trainer, outputs, batch) + self._on_batch_end(trainer, cast("Output", outputs), batch) diff --git a/ml/data/data_module.py b/ml/data/data_module.py index 481432a..4e47d1d 100644 --- a/ml/data/data_module.py +++ b/ml/data/data_module.py @@ -1,14 +1,25 @@ -from collections.abc import Callable, Iterable +from typing import Any import torch from hydra.utils import instantiate from lightning import LightningDataModule from omegaconf import DictConfig -from torch import Tensor from torch.utils.data import DataLoader +from torch.utils.data.dataloader import _collate_fn_t from ml.data.samplers import AutoWeightedRandomSampler -from ml.typing import Metadata +from ml.typing import ( + BagsInput, + BagsPredictInput, + EmbeddingsInput, + EmbeddingsPredictInput, + Input, + PredictInput, + PredictSample, + Sample, + TilesInput, + TilesPredictInput, +) class DataModule(LightningDataModule): @@ -17,8 +28,8 @@ def __init__( batch_size: int, num_workers: int = 0, weighted_sampling: bool = True, - collate_fn: Callable | None = None, - collate_fn_predict: Callable | None = None, + collate_fn: _collate_fn_t[Sample] | None = None, + collate_fn_predict: _collate_fn_t[PredictSample] | None = None, **datasets: DictConfig, ) -> None: super().__init__() @@ -41,7 +52,7 @@ def setup(self, stage: str) -> None: case "predict": self.predict = instantiate(self.datasets["predict"]) - def train_dataloader(self) -> Iterable: + def train_dataloader(self) -> DataLoader[TilesInput | EmbeddingsInput | BagsInput]: sampler = ( AutoWeightedRandomSampler(self.train) if self.weighted_sampling else None ) @@ -56,7 +67,7 @@ def train_dataloader(self) -> Iterable: persistent_workers=self.num_workers > 0, ) - def val_dataloader(self) -> Iterable: + def val_dataloader(self) -> DataLoader[TilesInput | EmbeddingsInput | BagsInput]: return DataLoader( self.val, batch_size=self.batch_size, @@ -65,7 +76,7 @@ def val_dataloader(self) -> Iterable: persistent_workers=self.num_workers > 0, ) - def test_dataloader(self) -> Iterable: + def test_dataloader(self) -> DataLoader[TilesInput | EmbeddingsInput | BagsInput]: return DataLoader( self.test, batch_size=self.batch_size, @@ -73,7 +84,9 @@ def test_dataloader(self) -> Iterable: collate_fn=self.collate_fn, ) - def predict_dataloader(self) -> Iterable: + def predict_dataloader( + self, + ) -> DataLoader[TilesPredictInput | EmbeddingsPredictInput | BagsPredictInput]: return DataLoader( self.predict, batch_size=self.batch_size, @@ -83,7 +96,7 @@ def predict_dataloader(self) -> Iterable: class BagsDataModule(DataModule): - def __init__(self, **kwargs) -> None: + def __init__(self, **kwargs: Any) -> None: super().__init__( collate_fn=collate_fn, collate_fn_predict=collate_fn_predict, @@ -92,14 +105,14 @@ def __init__(self, **kwargs) -> None: def collate_fn( - batch: list[tuple[Tensor, Tensor, Metadata]], -) -> tuple[Tensor, Tensor, list[Metadata]]: + batch: list[Sample], +) -> Input: inputs, labels, metadatas = zip(*batch, strict=True) return torch.stack(list(inputs)), torch.stack(list(labels)), list(metadatas) def collate_fn_predict( - batch: list[tuple[Tensor, Metadata]], -) -> tuple[Tensor, list[Metadata]]: + batch: list[PredictSample], +) -> PredictInput: inputs, metadatas = zip(*batch, strict=True) return torch.stack(list(inputs)), list(metadatas) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 6b19646..5e9ea75 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -48,7 +48,7 @@ def __init__( def __len__(self) -> int: return len(self.slides) - def __getitem__(self, idx: int) -> BagsSample | BagsPredictSample: + def __getitem__(self, idx: int) -> T: slide_metadata = self.slides[idx] tiles = self._meta.filter_tiles_by_slide(slide_metadata["id"]) slide_name = str(slide_metadata["name"]) diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 87a4260..4e8178a 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -33,7 +33,7 @@ def __init__( def __len__(self) -> int: return len(self.tiles) - def __getitem__(self, idx: int) -> EmbeddingsSample | EmbeddingsPredictSample: + def __getitem__(self, idx: int) -> T: tile = self.tiles[idx] metadata = MetadataEmbeddings( slide_name=self.slide_metadata["name"], diff --git a/ml/data/datasets/labels.py b/ml/data/datasets/labels.py index 82aa67f..faa7894 100644 --- a/ml/data/datasets/labels.py +++ b/ml/data/datasets/labels.py @@ -1,5 +1,6 @@ from enum import Enum from pathlib import Path +from typing import Any import torch from datasets import Dataset as HFDataset @@ -41,7 +42,7 @@ def process_slides( return slides -def get_label(slide_metadata: dict, mode: LabelMode) -> torch.Tensor: +def get_label(slide_metadata: dict[str, Any], mode: LabelMode) -> torch.Tensor: match mode: case LabelMode.NEUTROPHILS: return torch.tensor(slide_metadata["neutrophils"]).float() diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 1153e20..5463ae6 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -1,5 +1,5 @@ from collections.abc import Iterable -from typing import Generic, TypeVar +from typing import Any, Generic, TypeVar from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 @@ -18,7 +18,7 @@ class _Tiles(Dataset[T], Generic[T]): def __init__( self, - slide_metadata: dict, + slide_metadata: dict[str, Any], tiles: HFDataset, mode: LabelMode | str | None, include_labels: bool = True, @@ -45,7 +45,7 @@ def __init__( def __len__(self) -> int: return len(self.slide_tiles) - def __getitem__(self, idx: int) -> TilesSample | TilesPredictSample: + def __getitem__(self, idx: int) -> T: image = self.slide_tiles[idx] metadata = MetadataTiles( slide_name=self.slide_tiles.slide_path.stem, diff --git a/ml/mil.py b/ml/mil.py index d34d463..7cf92b8 100644 --- a/ml/mil.py +++ b/ml/mil.py @@ -1,5 +1,5 @@ from copy import deepcopy -from typing import cast +from typing import Any, Literal, cast import torch from lightning import LightningModule @@ -48,7 +48,9 @@ def __init__( self.activation = nn.Sigmoid() if num_classes == 1 else nn.Softmax(dim=-1) self.lr = lr - task = "binary" if num_classes == 1 else "multiclass" + task: Literal["binary", "multiclass"] = ( + "binary" if num_classes == 1 else "multiclass" + ) metrics: dict[str, Metric | MetricCollection] = { "AUC": AUROC(task=task, num_classes=num_classes, average="none"), "accuracy": Accuracy(task=task, num_classes=num_classes), @@ -125,8 +127,8 @@ def configure_optimizers(self) -> Optimizer: raise ValueError("Learning rate must be set for training.") return Adam(self.parameters(), lr=self.lr) - def log_dict(self, metrics: MetricCollection, *args, **kwargs) -> None: - for name, result in metrics.compute().items(): + def log_dict(self, dictionary: MetricCollection, *args: Any, **kwargs: Any) -> None: # type: ignore[override] + for name, result in dictionary.compute().items(): result = cast("Tensor", result) if result.shape: for i, value in enumerate(result): diff --git a/ml/neutrophils.py b/ml/neutrophils.py index d7589aa..5a3dbe6 100644 --- a/ml/neutrophils.py +++ b/ml/neutrophils.py @@ -1,5 +1,6 @@ from functools import partial from pathlib import Path +from typing import cast import hydra import mlflow.artifacts @@ -23,7 +24,8 @@ def add_path(path: str, folder: Path, suffix: str) -> Path: def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: - train_dfs, test_dfs = [], [] + train_dfs: list[pd.DataFrame] = [] + test_dfs: list[pd.DataFrame] = [] for dataset in datasets: uris = dataset.mlflow_uris neutrophils = Path(mlflow.artifacts.download_artifacts(uris.neutrophils)) @@ -43,11 +45,9 @@ def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: ) .set_index("id") .assign( - tissue_mask=lambda df, f=add_tissue_mask: df["path"].apply(f) # type: ignore[reportCallIssues] - ) - .assign( - neutrophils=lambda df, f=add_neutrophils: df["path"].apply(f) # type: ignore[reportCallIssues] + tissue_mask=lambda df, f=add_tissue_mask: df["path"].map(f), ) + .assign(neutrophils=lambda df, f=add_neutrophils: df["path"].map(f)) ) return pd.concat(train_dfs), pd.concat(test_dfs) @@ -55,10 +55,10 @@ def download_data(datasets: ListConfig) -> tuple[pd.DataFrame, pd.DataFrame]: def get_tissue_size(tissue_mask_path: Path) -> float: """Calculate tissue size in mm^2.""" - image = pyvips.Image.new_from_file(tissue_mask_path) - mpp_x = 1000 / image.get("Xres") # type: ignore[pyvips] - mpp_y = 1000 / image.get("Yres") # type: ignore[pyvips] - return image.avg() * image.width * image.height / 255 * mpp_x * mpp_y * 1e-6 # type: ignore[pyvips] + image = cast("pyvips.Image", pyvips.Image.new_from_file(tissue_mask_path)) + mpp_x = 1000 / image.get("Xres") # pyright: ignore[reportOperatorIssue] + mpp_y = 1000 / image.get("Yres") # pyright: ignore[reportOperatorIssue] + return image.avg() * image.width * image.height / 255 * mpp_x * mpp_y * 1e-6 # pyright: ignore[reportOperatorIssue, reportCallIssue, reportOptionalCall] def create_dataset(df: pd.DataFrame) -> tuple[np.ndarray, np.ndarray]: diff --git a/ml/typing.py b/ml/typing.py index edd3b02..10af566 100644 --- a/ml/typing.py +++ b/ml/typing.py @@ -9,6 +9,13 @@ class Metadata(TypedDict): slide_name: str +Sample: TypeAlias = tuple[Tensor, Tensor, Metadata] +PredictSample: TypeAlias = tuple[Tensor, Metadata] + +# Input: TypeAlias = tuple[Tensor, Tensor, list[Metadata]] +# PredictInput: TypeAlias = tuple[Tensor, list[Metadata]] + + class MetadataBatch(TypedDict): slide_name: list[str] @@ -55,4 +62,6 @@ class MetadataBags(Metadata): BagsInput: TypeAlias = tuple[Tensor, Tensor, list[MetadataBags]] BagsPredictInput: TypeAlias = tuple[Tensor, list[MetadataBags]] +Input: TypeAlias = BagsInput | TilesInput | EmbeddingsInput +PredictInput: TypeAlias = BagsPredictInput | TilesPredictInput | EmbeddingsPredictInput Output: TypeAlias = Tensor diff --git a/preprocessing/neutrophils.py b/preprocessing/neutrophils.py index a33e0c3..c7d07b0 100644 --- a/preprocessing/neutrophils.py +++ b/preprocessing/neutrophils.py @@ -23,7 +23,7 @@ def __init__(self, confidence: float, weights_url: str) -> None: "torch.nn.Module", torch.hub.load("ultralytics/yolov5", "custom", path=temp_file.name), ) - self.model.conf = confidence + self.model.conf = torch.tensor(confidence) def forward(self, x: torch.Tensor) -> torch.Tensor: return self.model(x) From fa0d5e78ea6f44cf633ef7978556ef746742b15e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 20:55:10 +0000 Subject: [PATCH 43/45] chore: mypy --- ml/data/datasets/bags.py | 6 +++--- ml/data/datasets/embeddings.py | 10 +++++----- ml/data/datasets/tiles.py | 8 ++++---- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/ml/data/datasets/bags.py b/ml/data/datasets/bags.py index 5e9ea75..6191696 100644 --- a/ml/data/datasets/bags.py +++ b/ml/data/datasets/bags.py @@ -1,7 +1,7 @@ from collections import Counter from collections.abc import Iterable from pathlib import Path -from typing import Generic, TypeVar +from typing import Generic, TypeVar, cast import torch import torch.nn.functional as F @@ -70,12 +70,12 @@ def __getitem__(self, idx: int) -> T: ) if not self.include_labels: - return embeddings, metadata + return cast("T", (embeddings, metadata)) assert self.mode is not None label = get_label(slide_metadata, self.mode) - return embeddings, label, metadata + return cast("T", (embeddings, label, metadata)) class Bags(_Bags[BagsSample]): diff --git a/ml/data/datasets/embeddings.py b/ml/data/datasets/embeddings.py index 4e8178a..517a0c3 100644 --- a/ml/data/datasets/embeddings.py +++ b/ml/data/datasets/embeddings.py @@ -1,5 +1,5 @@ from collections.abc import Iterable -from typing import Generic, TypeVar +from typing import Any, Generic, TypeVar, cast import torch from datasets import Dataset as HFDataset @@ -17,7 +17,7 @@ class _Embeddings(Generic[T], Dataset[T]): def __init__( self, - slide_metadata: dict, + slide_metadata: dict[str, Any], tiles: HFDataset, mode: LabelMode | str | None, include_labels: bool = True, @@ -43,11 +43,11 @@ def __getitem__(self, idx: int) -> T: embedding = torch.tensor(tile["embedding"]) if not self.include_labels: - return embedding, metadata + return cast("T", (embedding, metadata)) assert self.mode is not None, "Mode must be specified for labels." label = get_label(tile, self.mode) - return embedding, label, metadata + return cast("T", (embedding, label, metadata)) class Embeddings(MetaTiledSlides[EmbeddingsSample]): @@ -55,7 +55,7 @@ class Embeddings(MetaTiledSlides[EmbeddingsSample]): def labels(self) -> list[int]: return [ int(get_label(ds.slide_metadata, self.mode).item()) - for ds in self.datasets + for ds in cast("list[_Embeddings[EmbeddingsSample]]", self.datasets) for _ in range(len(ds)) ] diff --git a/ml/data/datasets/tiles.py b/ml/data/datasets/tiles.py index 5463ae6..26b67fd 100644 --- a/ml/data/datasets/tiles.py +++ b/ml/data/datasets/tiles.py @@ -1,5 +1,5 @@ from collections.abc import Iterable -from typing import Any, Generic, TypeVar +from typing import Any, Generic, TypeVar, cast from albumentations.core.composition import TransformType from albumentations.pytorch import ToTensorV2 @@ -60,11 +60,11 @@ def __getitem__(self, idx: int) -> T: image = self.to_tensor(image=image)["image"] if not self.include_labels: - return image, metadata + return cast("T", (image, metadata)) assert self.mode is not None, "Mode must be specified for labels." label = get_label(self.slide_metadata, self.mode) - return image, label, metadata + return cast("T", (image, label, metadata)) class Tiles(MetaTiledSlides[TilesSample]): @@ -72,7 +72,7 @@ class Tiles(MetaTiledSlides[TilesSample]): def labels(self) -> list[int]: return [ int(get_label(ds.slide_metadata, self.mode).item()) - for ds in self.datasets + for ds in cast("list[_Tiles[TilesSample]]", self.datasets) for _ in range(len(ds)) ] From a3165e5a85938136af1763570b80d8f525d128e8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 23:21:07 +0200 Subject: [PATCH 44/45] feat: readme --- README.md | 138 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 137 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5001a55..ecce0a4 100644 --- a/README.md +++ b/README.md @@ -1 +1,137 @@ -# Machine Learning Template +# Automated Grading of Ulcerative Colitis from H&E Whole Slide Images + +This repository contains the machine learning pipeline developed for automated histological grading of ulcerative colitis (UC) biopsies using the Nancy Histological Index (NHI). The approach frames NHI grading as a hierarchical classification problem: a binary neutrophil-detection task routes each whole-slide image through either a low-grade (NHI 0–2) or a high-grade (NHI 2–4) classifier. All models are based on pretrained pathology foundation models and use attention-based multiple instance learning (MIL) over tile embeddings, making them applicable to gigapixel slides without requiring tile-level annotations. Experiments evaluate multiple foundation models (prov-gigapath, UNI, UNI2, Virchow, Virchow2), MIL against tile-level approaches, ordered regression, and ensembling/confidence strategies over a multi-institution cohort (IKEM, FTN, KNL). + +> **Note: This code is not runnable as-is.** The underlying H&E whole-slide image data and derived embeddings are sensitive patient data from clinical institutions and are not included in this repository. The code is provided for reference and reproducibility of the methodology only. + +--- + +## Repository Structure + +``` +. +├── configs/ # Hydra configuration tree +│ ├── dataset/ # Dataset split URIs (embeddings, slides, tiles) +│ ├── checkpoints/ # Checkpoint paths for test/inference runs +│ ├── predictions/ # MLflow prediction artifact URIs (per institution/fold) +│ └── experiment/ +│ ├── ml/ # ML training & test experiment configs (Exp I–VI + final) +│ └── postprocessing/ # Postprocessing experiment configs (Exp VII–VIII + final) +├── ml/ # PyTorch Lightning modules & entry point +│ ├── __main__.py # Entry point: `python -m ml` +│ ├── base.py # BaseModule (tile-level training loop) +│ ├── classification.py # Tile-level softmax classification +│ ├── ordered_regression.py # Cumulative link ordered regression +│ ├── mil.py # Attention MIL (bag-level) +│ ├── neutrophils.py # Binary neutrophil detection (tile-level) +│ └── modeling/ # Building blocks (heads, normalization) +├── preprocessing/ # Data preparation pipeline +│ ├── tiling.py # Tile extraction from WSIs +│ ├── tissue_masks.py # Tissue segmentation +│ ├── quality_control.py # Tile quality filtering +│ ├── embeddings.py # Foundation model feature extraction +│ ├── neutrophils.py # Neutrophil pseudo-label extraction +│ ├── create_dataset.py # Assemble HuggingFace dataset +│ └── split_dataset.py # Train/val/test split assignment +├── postprocessing/ # Slide-level aggregation & confidence +│ ├── ensembling.py # Soft majority vote + hierarchical ensembling +│ └── markov_chain_confidence.py # Markov chain absorption confidence scores +├── scripts/ # Kubernetes job submission scripts +│ ├── ml/ # train.py, test.py, neutrophils.py +│ ├── preprocessing/ # Preprocessing job scripts +│ └── postprocessing/ # Postprocessing job scripts +├── pyproject.toml +└── thesis.pdf # Thesis manuscript +``` + +--- + +## Setup + +Requires Python 3.12 and [`uv`](https://github.com/astral-sh/uv). + +```bash +uv sync --frozen +``` + +--- + +## Pipeline Overview + +The full pipeline runs in four stages: + +### 1. Preprocessing + +Tiles are extracted from WSIs, tissue-masked, quality-filtered, and encoded by a foundation model into fixed-dimensional embeddings. Datasets are assembled as HuggingFace Datasets and registered in MLflow. + +```bash +# Tissue segmentation masks +uv run --active -m preprocessing.tissue_masks +dataset=processed/... + +# Tile extraction from WSIs +uv run --active -m preprocessing.tiling +dataset=processed_w_masks/... +experiment=preprocessing/tiling/... + +# Tile quality filtering +uv run -m preprocessing.quality_control +dataset=processed/... + +# Foundation model feature extraction +uv run --active -m preprocessing.embeddings +dataset=tiled/... + +# Assemble HuggingFace dataset +uv run -m preprocessing.create_dataset +dataset=raw/... + +# Train/val/test split assignment +uv run -m preprocessing.split_dataset +experiment=preprocessing/split_dataset/... +``` + +### 2. ML Training + +Models are trained via Hydra experiment configs. The entry point is `python -m ml` and an experiment config must be selected: + +```bash +# Example: train Experiment IV (MIL) fold 1 +uv run -m ml +experiment=ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/train/fold_1 + +# Example: train final model (all institutions combined) +uv run -m ml +experiment=ml/final/nancy_high/train +``` + +### 3. ML Testing / Inference + +```bash +# Example: test Experiment IV fold 1 +uv run -m ml +experiment=ml/experiment_iv_mil_and_hierarchical_modeling/nancy_high/test/fold_1 + +# Neutrophil detection (produces binary slide-level predictions) +uv run -m ml.neutrophils +experiment=ml/experiment_vi_neutrophil_detection/run +``` + +### 4. Postprocessing + +Slide-level predictions from the three hierarchical tasks are combined into final NHI grades and confidence scores: + +```bash +# Ensembling (soft majority vote + hierarchical routing) +uv run -m postprocessing.ensembling +postprocessing=ensembling + +# Markov chain absorption confidence +uv run -m postprocessing.markov_chain_confidence +postprocessing=markov_chain_confidence +``` + +--- + +## Experiments + +| # | Name | Config path | Description | +|---|------|-------------|-------------| +| I | Baseline Classification | `experiment/ml/experiment_i_baseline_classification` | VGG16 tile-level classifier trained on raw pixel tiles | +| II | Ordered Regression | `experiment/ml/experiment_ii_ordered_regression` | Cumulative link loss for NHI ordinal structure | +| III | Pathology Foundation Models | `experiment/ml/experiment_iii_pathology_foundation_model` | Linear probe on frozen prov-gigapath embeddings | +| IV | MIL & Hierarchical Modeling | `experiment/ml/experiment_iv_mil_and_hierarchical_modeling` | Attention MIL; three-task hierarchical decomposition | +| V | More Foundation Models | `experiment/ml/experiment_v_more_foundation_models` | MIL sweep over all foundation models | +| VI | Neutrophil Detection | `experiment/ml/experiment_vi_neutrophil_detection` | Binary tile-level neutrophil classifier | +| VII | Ensembling | `experiment/postprocessing/experiment_vii_ensembling` | Soft majority vote vs. hierarchical routing | +| VIII | Markov Chain Confidence | `experiment/postprocessing/experiment_viii_markov_chain_model_aggregation` | Absorption distribution confidence (entropy / herfindahl / std) | +| — | Final Model | `experiment/ml/final` | Attention MIL (virchow2) trained on all three institutions | + +All cross-validation experiments run 5 folds over the IKEM institution. Final evaluation uses the held-out test split across IKEM, FTN, and KNL. From 7aad84f9fbc3afec7499f0547178d9ef7a0e65d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Kuku=C4=8Dka?= Date: Fri, 8 May 2026 23:25:35 +0200 Subject: [PATCH 45/45] feat: qc thresholds --- configs/ml/data/bags.yaml | 9 +++++++++ configs/ml/data/embeddings.yaml | 9 +++++++++ configs/ml/data/tiles.yaml | 9 +++++++++ 3 files changed, 27 insertions(+) diff --git a/configs/ml/data/bags.yaml b/configs/ml/data/bags.yaml index c879820..6e53f42 100644 --- a/configs/ml/data/bags.yaml +++ b/configs/ml/data/bags.yaml @@ -8,13 +8,22 @@ train: mode: ??? val_fold: ${val_fold} is_val: false + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 val: _target_: ml.data.datasets.Bags uris: ??? mode: ??? val_fold: ${val_fold} is_val: true + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 test: _target_: ml.data.datasets.Bags uris: ??? mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 diff --git a/configs/ml/data/embeddings.yaml b/configs/ml/data/embeddings.yaml index 3f50fac..1f0551e 100644 --- a/configs/ml/data/embeddings.yaml +++ b/configs/ml/data/embeddings.yaml @@ -8,13 +8,22 @@ train: mode: ??? val_fold: ${val_fold} is_val: false + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 val: _target_: ml.data.datasets.Embeddings uris: ??? mode: ??? val_fold: ${val_fold} is_val: true + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 test: _target_: ml.data.datasets.Embeddings uris: ??? mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 diff --git a/configs/ml/data/tiles.yaml b/configs/ml/data/tiles.yaml index 16fa0be..1beea85 100644 --- a/configs/ml/data/tiles.yaml +++ b/configs/ml/data/tiles.yaml @@ -8,13 +8,22 @@ train: mode: ??? val_fold: ${val_fold} is_val: false + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 val: _target_: ml.data.datasets.Tiles uris: ??? mode: ??? val_fold: ${val_fold} is_val: true + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25 test: _target_: ml.data.datasets.Tiles uris: ??? mode: ??? + thresholds: + blur_mean: 0.25 + artifacts_mean: 0.25