diff --git a/pyproject.toml b/pyproject.toml index a4c23c482ea8fdaf5fe1a1f2089fc6050221b58d..0b98f4094255c3f97a539a0f7abc71a5fea8b535 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -145,29 +145,29 @@ tbx11k_simplified_v2_f9 = "ptbench.data.tbx11k_simplified_v2.fold_9" # montgomery-shenzhen aggregated dataset montgomery-shenzhen = "ptbench.data.montgomery_shenzhen.default" -montgomery-shenzhen_f0 = "ptbench.data.montgomery_shenzhen.fold_0" -montgomery-shenzhen_f1 = "ptbench.data.montgomery_shenzhen.fold_1" -montgomery-shenzhen_f2 = "ptbench.data.montgomery_shenzhen.fold_2" -montgomery-shenzhen_f3 = "ptbench.data.montgomery_shenzhen.fold_3" -montgomery-shenzhen_f4 = "ptbench.data.montgomery_shenzhen.fold_4" -montgomery-shenzhen_f5 = "ptbench.data.montgomery_shenzhen.fold_5" -montgomery-shenzhen_f6 = "ptbench.data.montgomery_shenzhen.fold_6" -montgomery-shenzhen_f7 = "ptbench.data.montgomery_shenzhen.fold_7" -montgomery-shenzhen_f8 = "ptbench.data.montgomery_shenzhen.fold_8" -montgomery-shenzhen_f9 = "ptbench.data.montgomery_shenzhen.fold_9" +montgomery-shenzhen-f0 = "ptbench.data.montgomery_shenzhen.fold_0" +montgomery-shenzhen-f1 = "ptbench.data.montgomery_shenzhen.fold_1" +montgomery-shenzhen-f2 = "ptbench.data.montgomery_shenzhen.fold_2" +montgomery-shenzhen-f3 = "ptbench.data.montgomery_shenzhen.fold_3" +montgomery-shenzhen-f4 = "ptbench.data.montgomery_shenzhen.fold_4" +montgomery-shenzhen-f5 = "ptbench.data.montgomery_shenzhen.fold_5" +montgomery-shenzhen-f6 = "ptbench.data.montgomery_shenzhen.fold_6" +montgomery-shenzhen-f7 = "ptbench.data.montgomery_shenzhen.fold_7" +montgomery-shenzhen-f8 = "ptbench.data.montgomery_shenzhen.fold_8" +montgomery-shenzhen-f9 = "ptbench.data.montgomery_shenzhen.fold_9" # montgomery-shenzhen-indian aggregated dataset -mc_ch_in = "ptbench.data.mc_ch_in.default" -mc_ch_in_f0 = "ptbench.data.mc_ch_in.fold_0" -mc_ch_in_f1 = "ptbench.data.mc_ch_in.fold_1" -mc_ch_in_f2 = "ptbench.data.mc_ch_in.fold_2" -mc_ch_in_f3 = "ptbench.data.mc_ch_in.fold_3" -mc_ch_in_f4 = "ptbench.data.mc_ch_in.fold_4" -mc_ch_in_f5 = "ptbench.data.mc_ch_in.fold_5" -mc_ch_in_f6 = "ptbench.data.mc_ch_in.fold_6" -mc_ch_in_f7 = "ptbench.data.mc_ch_in.fold_7" -mc_ch_in_f8 = "ptbench.data.mc_ch_in.fold_8" -mc_ch_in_f9 = "ptbench.data.mc_ch_in.fold_9" +montgomery-shenzhen-indian = "ptbench.data.montgomery_shenzhen_indian.default" +montgomery-shenzhen-indian-f0 = "ptbench.data.montgomery_shenzhen_indian.fold_0" +montgomery-shenzhen-indian-f1 = "ptbench.data.montgomery_shenzhen_indian.fold_1" +montgomery-shenzhen-indian-f2 = "ptbench.data.montgomery_shenzhen_indian.fold_2" +montgomery-shenzhen-indian-f3 = "ptbench.data.montgomery_shenzhen_indian.fold_3" +montgomery-shenzhen-indian-f4 = "ptbench.data.montgomery_shenzhen_indian.fold_4" +montgomery-shenzhen-indian-f5 = "ptbench.data.montgomery_shenzhen_indian.fold_5" +montgomery-shenzhen-indian-f6 = "ptbench.data.montgomery_shenzhen_indian.fold_6" +montgomery-shenzhen-indian-f7 = "ptbench.data.montgomery_shenzhen_indian.fold_7" +montgomery-shenzhen-indian-f8 = "ptbench.data.montgomery_shenzhen_indian.fold_8" +montgomery-shenzhen-indian-f9 = "ptbench.data.montgomery_shenzhen_indian.fold_9" # montgomery-shenzhen-indian-tbx11k aggregated dataset mc_ch_in_11k = "ptbench.data.mc_ch_in_11k.default" diff --git a/src/ptbench/data/mc_ch_in/__init__.py b/src/ptbench/data/mc_ch_in/__init__.py deleted file mode 100644 index 662d5c1326651b4d9f48d47bc4b503df23d17216..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later diff --git a/src/ptbench/data/mc_ch_in/default.py b/src/ptbench/data/mc_ch_in/default.py deleted file mode 100644 index 485173aa82e4a0b5ecf9eae0a62a4de50b1b9663..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/default.py +++ /dev/null @@ -1,81 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets.""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.default import datamodule as indian_datamodule -from ..montgomery.default import datamodule as mc_datamodule -from ..shenzhen.default import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_0.py b/src/ptbench/data/mc_ch_in/fold_0.py deleted file mode 100644 index db749a38fca70233ecb361aab82907238476ba6e..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_0.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 0)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_0 import datamodule as indian_datamodule -from ..montgomery.fold_0 import datamodule as mc_datamodule -from ..shenzhen.fold_0 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_1.py b/src/ptbench/data/mc_ch_in/fold_1.py deleted file mode 100644 index 033f5bc5e386661b9917ea73872a7a7411730874..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_1.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 1)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_1 import datamodule as indian_datamodule -from ..montgomery.fold_1 import datamodule as mc_datamodule -from ..shenzhen.fold_1 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_2.py b/src/ptbench/data/mc_ch_in/fold_2.py deleted file mode 100644 index bcd7654c5a4f6ed6e515105f77fda6608f289db0..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_2.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 2)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_2 import datamodule as indian_datamodule -from ..montgomery.fold_2 import datamodule as mc_datamodule -from ..shenzhen.fold_2 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_3.py b/src/ptbench/data/mc_ch_in/fold_3.py deleted file mode 100644 index e09e6080393f37f8709ef15f260a1dc8402e5867..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_3.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 3)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_3 import datamodule as indian_datamodule -from ..montgomery.fold_3 import datamodule as mc_datamodule -from ..shenzhen.fold_3 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_4.py b/src/ptbench/data/mc_ch_in/fold_4.py deleted file mode 100644 index cd472c6b7964802eb03a184449e6915451855800..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_4.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 4)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_4 import datamodule as indian_datamodule -from ..montgomery.fold_4 import datamodule as mc_datamodule -from ..shenzhen.fold_4 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_5.py b/src/ptbench/data/mc_ch_in/fold_5.py deleted file mode 100644 index 9afdb1f98a93d35a577e5df2ce8800bb6a5fcbe1..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_5.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 5)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_5 import datamodule as indian_datamodule -from ..montgomery.fold_5 import datamodule as mc_datamodule -from ..shenzhen.fold_5 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_6.py b/src/ptbench/data/mc_ch_in/fold_6.py deleted file mode 100644 index 9246629ec4725088174e75162aa68ed8c9b1cd12..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_6.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 6)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_6 import datamodule as indian_datamodule -from ..montgomery.fold_6 import datamodule as mc_datamodule -from ..shenzhen.fold_6 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_7.py b/src/ptbench/data/mc_ch_in/fold_7.py deleted file mode 100644 index 7f628c9b04e92da8bda3dffb3c5e021c583c489b..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_7.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 7)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_7 import datamodule as indian_datamodule -from ..montgomery.fold_7 import datamodule as mc_datamodule -from ..shenzhen.fold_7 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_8.py b/src/ptbench/data/mc_ch_in/fold_8.py deleted file mode 100644 index 5bc985cb741178abc2c454133521d8b219d5ccbd..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_8.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 8)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_8 import datamodule as indian_datamodule -from ..montgomery.fold_8 import datamodule as mc_datamodule -from ..shenzhen.fold_8 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/mc_ch_in/fold_9.py b/src/ptbench/data/mc_ch_in/fold_9.py deleted file mode 100644 index 641fdc6746cc5392430d2b3bec435c6886bfff33..0000000000000000000000000000000000000000 --- a/src/ptbench/data/mc_ch_in/fold_9.py +++ /dev/null @@ -1,82 +0,0 @@ -# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> -# -# SPDX-License-Identifier: GPL-3.0-or-later - -"""Aggregated dataset composed of Montgomery, Shenzhen and Indian datasets -(cross validation fold 9)""" - -from clapper.logging import setup -from torch.utils.data.dataset import ConcatDataset - -from .. import return_subsets -from ..base_datamodule import BaseDataModule, get_dataset_from_module -from ..indian.fold_9 import datamodule as indian_datamodule -from ..montgomery.fold_9 import datamodule as mc_datamodule -from ..shenzhen.fold_9 import datamodule as ch_datamodule - -logger = setup(__name__.split(".")[0], format="%(levelname)s: %(message)s") - - -class DefaultModule(BaseDataModule): - def __init__( - self, - train_batch_size=1, - predict_batch_size=1, - drop_incomplete_batch=False, - multiproc_kwargs=None, - ): - self.train_batch_size = train_batch_size - self.predict_batch_size = predict_batch_size - self.drop_incomplete_batch = drop_incomplete_batch - self.multiproc_kwargs = multiproc_kwargs - - super().__init__( - train_batch_size=train_batch_size, - predict_batch_size=predict_batch_size, - drop_incomplete_batch=drop_incomplete_batch, - multiproc_kwargs=multiproc_kwargs, - ) - - def setup(self, stage: str): - # Instantiate other datamodules and get their datasets - - module_args = { - "train_batch_size": self.train_batch_size, - "predict_batch_size": self.predict_batch_size, - "drop_incomplete_batch": self.drop_incomplete_batch, - "multiproc_kwargs": self.multiproc_kwargs, - } - - mc = get_dataset_from_module(mc_datamodule, stage, **module_args) - ch = get_dataset_from_module(ch_datamodule, stage, **module_args) - indian = get_dataset_from_module( - indian_datamodule, stage, **module_args - ) - - # Combine datasets - self.dataset = {} - self.dataset["__train__"] = ConcatDataset( - [mc["__train__"], ch["__train__"], indian["__train__"]] - ) - self.dataset["train"] = ConcatDataset( - [mc["train"], ch["train"], indian["train"]] - ) - self.dataset["__valid__"] = ConcatDataset( - [mc["__valid__"], ch["__valid__"], indian["__valid__"]] - ) - self.dataset["validation"] = ConcatDataset( - [mc["validation"], ch["validation"], indian["validation"]] - ) - self.dataset["test"] = ConcatDataset( - [mc["test"], ch["test"], indian["test"]] - ) - - ( - self.train_dataset, - self.validation_dataset, - self.extra_validation_datasets, - self.predict_dataset, - ) = return_subsets(self.dataset) - - -datamodule = DefaultModule diff --git a/src/ptbench/data/montgomery_shenzhen_indian/__init__.py b/src/ptbench/data/montgomery_shenzhen_indian/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/src/ptbench/data/montgomery_shenzhen_indian/datamodule.py b/src/ptbench/data/montgomery_shenzhen_indian/datamodule.py new file mode 100644 index 0000000000000000000000000000000000000000..ea2d2a4f417767cb42641c9e596a24c40a3ab386 --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/datamodule.py @@ -0,0 +1,43 @@ +# Copyright © 2022 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from ..datamodule import ConcatDataModule +from ..indian.datamodule import RawDataLoader as IndianLoader +from ..indian.datamodule import make_split as make_indian_split +from ..montgomery.datamodule import RawDataLoader as MontgomeryLoader +from ..montgomery.datamodule import make_split as make_montgomery_split +from ..shenzhen.datamodule import RawDataLoader as ShenzhenLoader +from ..shenzhen.datamodule import make_split as make_shenzhen_split + + +class DataModule(ConcatDataModule): + """Aggregated datamodule composed of Montgomery and Shenzhen datasets.""" + + def __init__(self, split_filename: str): + montgomery_loader = MontgomeryLoader() + montgomery_split = make_montgomery_split(split_filename) + shenzhen_loader = ShenzhenLoader() + shenzhen_split = make_shenzhen_split(split_filename) + indian_loader = IndianLoader() + indian_split = make_indian_split(split_filename) + + super().__init__( + splits={ + "train": [ + (montgomery_split["train"], montgomery_loader), + (shenzhen_split["train"], shenzhen_loader), + (indian_split["train"], indian_loader), + ], + "validation": [ + (montgomery_split["validation"], montgomery_loader), + (shenzhen_split["validation"], shenzhen_loader), + (indian_split["validation"], indian_loader), + ], + "test": [ + (montgomery_split["test"], montgomery_loader), + (shenzhen_split["test"], shenzhen_loader), + (indian_split["test"], indian_loader), + ], + } + ) diff --git a/src/ptbench/data/montgomery_shenzhen_indian/default.py b/src/ptbench/data/montgomery_shenzhen_indian/default.py new file mode 100644 index 0000000000000000000000000000000000000000..2b8a8fb25e09b85f372e854a2f2ce29bcdf56ddc --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/default.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("default.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_0.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_0.py new file mode 100644 index 0000000000000000000000000000000000000000..3d114d07d1c53f869ba710074b254944865cc4bc --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_0.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_0.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_1.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_1.py new file mode 100644 index 0000000000000000000000000000000000000000..cd3a8cb6d0be1c01e5dbb96d5cc02f724e15e7c4 --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_1.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_1.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_2.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_2.py new file mode 100644 index 0000000000000000000000000000000000000000..44eeda801884db9fcaa58be04de3068ff82325eb --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_2.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_2.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_3.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_3.py new file mode 100644 index 0000000000000000000000000000000000000000..f24fb314e30df9ab111ac69fd74a7f9a16cdad68 --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_3.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_3.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_4.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_4.py new file mode 100644 index 0000000000000000000000000000000000000000..58456d38e4804c2b68e8759f78e3bf9ea8d547f8 --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_4.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_4.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_5.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_5.py new file mode 100644 index 0000000000000000000000000000000000000000..927967469ff479647670fe0d0978e4b72b965c33 --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_5.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_5.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_6.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_6.py new file mode 100644 index 0000000000000000000000000000000000000000..9566b7cfe5723c1da18d081a2442fb5d13a11d3e --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_6.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_6.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_7.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_7.py new file mode 100644 index 0000000000000000000000000000000000000000..25cbfe1b2eb0290098e6b54c3ca5a26076482e0c --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_7.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_7.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_8.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_8.py new file mode 100644 index 0000000000000000000000000000000000000000..fb5332ce050631a6fdf4b590fb4dd5a191fd90bc --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_8.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_8.json") diff --git a/src/ptbench/data/montgomery_shenzhen_indian/fold_9.py b/src/ptbench/data/montgomery_shenzhen_indian/fold_9.py new file mode 100644 index 0000000000000000000000000000000000000000..d1626586ff8b263c097ee9b929eea40c42b4ae1e --- /dev/null +++ b/src/ptbench/data/montgomery_shenzhen_indian/fold_9.py @@ -0,0 +1,7 @@ +# SPDX-FileCopyrightText: Copyright © 2023 Idiap Research Institute <contact@idiap.ch> +# +# SPDX-License-Identifier: GPL-3.0-or-later + +from .datamodule import DataModule + +datamodule = DataModule("fold_9.json")