From 643c74fed7da0b9feb325cdcc0fe4b72a75a1a9f Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Sat, 11 Apr 2020 10:40:10 +0200
Subject: [PATCH] Major module renaming (for consistency); DRY when possible

---
 bob/ip/binseg/configs/datasets/chasedb1.py    |  13 +-
 .../binseg/configs/datasets/chasedb11024.py   |  13 +-
 .../binseg/configs/datasets/chasedb11168.py   |  13 +-
 bob/ip/binseg/configs/datasets/chasedb1544.py |  13 +-
 bob/ip/binseg/configs/datasets/chasedb1608.py |  13 +-
 .../{chasedb1test.py => chasedb1_test.py}     |  15 +--
 ...estareiostarhrf960.py => covd_chasedb1.py} |   0
 ...hrf960sslchase.py => covd_chasedb1_ssl.py} |   2 +-
 ...echasedb1iostarhrf544.py => covd_drive.py} |   0
 ...tarhrf544ssldrive.py => covd_drive_ssl.py} |   2 +-
 ...starechasedb1iostar1168.py => covd_hrf.py} |   0
 ...db1iostar1168sslhrf.py => covd_hrf_ssl.py} |   4 +-
 ...asedb1hrf1024.py => covd_iostar_vessel.py} |   0
 ...ssliostar.py => covd_iostar_vessel_ssl.py} |   4 +-
 ...echasedb1iostarhrf608.py => covd_stare.py} |   0
 ...tarhrf608sslstare.py => covd_stare_ssl.py} |   2 +-
 bob/ip/binseg/configs/datasets/csv.py         |  15 +--
 bob/ip/binseg/configs/datasets/drionsdb.py    |   9 +-
 .../{drionsdbtest.py => drionsdb_test.py}     |   4 +-
 .../{dristhigs1cup.py => dristhigs1_cup.py}   |   9 +-
 ...higs1cuptest.py => dristhigs1_cup_test.py} |   6 +-
 .../{dristhigs1od.py => dristhigs1_od.py}     |   9 +-
 ...sthigs1odtest.py => dristhigs1_od_test.py} |   6 +-
 bob/ip/binseg/configs/datasets/drive.py       |  13 +-
 bob/ip/binseg/configs/datasets/drive1024.py   |  13 +-
 bob/ip/binseg/configs/datasets/drive1168.py   |  13 +-
 bob/ip/binseg/configs/datasets/drive608.py    |  13 +-
 bob/ip/binseg/configs/datasets/drive960.py    |  13 +-
 .../datasets/{drivetest.py => drive_test.py}  |  10 +-
 bob/ip/binseg/configs/datasets/folder.py      |  13 +-
 bob/ip/binseg/configs/datasets/hrf.py         |  13 +-
 bob/ip/binseg/configs/datasets/hrf1024.py     |  15 +--
 bob/ip/binseg/configs/datasets/hrf544.py      |  13 +-
 bob/ip/binseg/configs/datasets/hrf544test.py  |  29 -----
 bob/ip/binseg/configs/datasets/hrf608.py      |  13 +-
 bob/ip/binseg/configs/datasets/hrf960.py      |  15 +--
 .../datasets/{hrf1168.py => hrf_1168.py}      |  15 +--
 .../{hrf1168test.py => hrf_1168_test.py}      |  10 +-
 .../datasets/{hrftest.py => hrf_test.py}      |  10 +-
 .../datasets/{iostarod.py => iostar_od.py}    |  13 +-
 .../{iostarodtest.py => iostar_od_test.py}    |   8 +-
 .../{iostarvessel.py => iostar_vessel.py}     |  13 +-
 ...tarvesseltest.py => iostar_vessel_test.py} |   8 +-
 .../configs/datasets/iostarvessel1168.py      |  13 +-
 .../configs/datasets/iostarvessel544.py       |  13 +-
 .../configs/datasets/iostarvessel608.py       |  13 +-
 .../configs/datasets/iostarvessel960.py       |  13 +-
 .../datasets/{refugecup.py => refuge_cup.py}  |  11 +-
 .../{refugecuptest.py => refuge_cup_test.py}  |  15 +--
 .../datasets/{refugeod.py => refuge_od.py}    |  18 +--
 .../{refugeodtest.py => refuge_od_test.py}    |  15 +--
 .../{rimoner3cup.py => rimoner3_cup.py}       |  18 +--
 ...imoner3cuptest.py => rimoner3_cup_test.py} |  14 +-
 .../{rimoner3od.py => rimoner3_od.py}         |  18 +--
 ...{rimoner3odtest.py => rimoner3_od_test.py} |  15 +--
 bob/ip/binseg/configs/datasets/stare.py       |  13 +-
 bob/ip/binseg/configs/datasets/stare1024.py   |  11 +-
 bob/ip/binseg/configs/datasets/stare1168.py   |  13 +-
 bob/ip/binseg/configs/datasets/stare544.py    |  13 +-
 bob/ip/binseg/configs/datasets/stare960.py    |  11 +-
 .../datasets/{staretest.py => stare_test.py}  |  10 +-
 .../configs/models/{driubn.py => driu_bn.py}  |   0
 .../models/{driubnssl.py => driu_bn_ssl.py}   |   0
 .../configs/models/{driuod.py => driu_od.py}  |   0
 .../models/{driussl.py => driu_ssl.py}        |   0
 .../models/{m2unetssl.py => m2unet_ssl.py}    |   0
 bob/ip/binseg/data/binsegdataset.py           |  19 ++-
 bob/ip/binseg/data/chasedb1/test.py           |  27 +---
 bob/ip/binseg/data/csvdataset.py              |  13 +-
 bob/ip/binseg/data/drive/test.py              |  30 +----
 bob/ip/binseg/data/folderdataset.py           |  13 +-
 bob/ip/binseg/data/hrf/test.py                |  30 +----
 bob/ip/binseg/data/iostar/test.py             |  39 +-----
 bob/ip/binseg/data/stare/test.py              |  27 +---
 bob/ip/binseg/data/utils.py                   |  41 ++----
 bob/ip/binseg/test/test_config.py             | 120 ++++++++++++++++++
 bob/ip/binseg/test/utils.py                   |  27 ++++
 doc/api.rst                                   | 112 ++++++++--------
 doc/benchmarkresults.rst                      |   4 +-
 doc/covdresults.rst                           |  26 ++--
 doc/models.rst                                |  24 ++--
 doc/training.rst                              |  32 ++---
 setup.py                                      |  82 ++++++------
 83 files changed, 566 insertions(+), 762 deletions(-)
 rename bob/ip/binseg/configs/datasets/{chasedb1test.py => chasedb1_test.py} (79%)
 rename bob/ip/binseg/configs/datasets/{drivestareiostarhrf960.py => covd_chasedb1.py} (100%)
 rename bob/ip/binseg/configs/datasets/{drivestareiostarhrf960sslchase.py => covd_chasedb1_ssl.py} (84%)
 rename bob/ip/binseg/configs/datasets/{starechasedb1iostarhrf544.py => covd_drive.py} (100%)
 rename bob/ip/binseg/configs/datasets/{starechasedb1iostarhrf544ssldrive.py => covd_drive_ssl.py} (83%)
 rename bob/ip/binseg/configs/datasets/{drivestarechasedb1iostar1168.py => covd_hrf.py} (100%)
 rename bob/ip/binseg/configs/datasets/{drivestarechasedb1iostar1168sslhrf.py => covd_hrf_ssl.py} (69%)
 rename bob/ip/binseg/configs/datasets/{drivestarechasedb1hrf1024.py => covd_iostar_vessel.py} (100%)
 rename bob/ip/binseg/configs/datasets/{drivestarechasedb1hrf1024ssliostar.py => covd_iostar_vessel_ssl.py} (68%)
 rename bob/ip/binseg/configs/datasets/{drivechasedb1iostarhrf608.py => covd_stare.py} (100%)
 rename bob/ip/binseg/configs/datasets/{drivechasedb1iostarhrf608sslstare.py => covd_stare_ssl.py} (83%)
 rename bob/ip/binseg/configs/datasets/{drionsdbtest.py => drionsdb_test.py} (89%)
 rename bob/ip/binseg/configs/datasets/{dristhigs1cup.py => dristhigs1_cup.py} (90%)
 rename bob/ip/binseg/configs/datasets/{dristhigs1cuptest.py => dristhigs1_cup_test.py} (85%)
 rename bob/ip/binseg/configs/datasets/{dristhigs1od.py => dristhigs1_od.py} (90%)
 rename bob/ip/binseg/configs/datasets/{dristhigs1odtest.py => dristhigs1_od_test.py} (85%)
 rename bob/ip/binseg/configs/datasets/{drivetest.py => drive_test.py} (63%)
 delete mode 100644 bob/ip/binseg/configs/datasets/hrf544test.py
 rename bob/ip/binseg/configs/datasets/{hrf1168.py => hrf_1168.py} (74%)
 rename bob/ip/binseg/configs/datasets/{hrf1168test.py => hrf_1168_test.py} (67%)
 rename bob/ip/binseg/configs/datasets/{hrftest.py => hrf_test.py} (68%)
 rename bob/ip/binseg/configs/datasets/{iostarod.py => iostar_od.py} (77%)
 rename bob/ip/binseg/configs/datasets/{iostarodtest.py => iostar_od_test.py} (71%)
 rename bob/ip/binseg/configs/datasets/{iostarvessel.py => iostar_vessel.py} (77%)
 rename bob/ip/binseg/configs/datasets/{iostarvesseltest.py => iostar_vessel_test.py} (71%)
 rename bob/ip/binseg/configs/datasets/{refugecup.py => refuge_cup.py} (88%)
 rename bob/ip/binseg/configs/datasets/{refugecuptest.py => refuge_cup_test.py} (83%)
 rename bob/ip/binseg/configs/datasets/{refugeod.py => refuge_od.py} (85%)
 rename bob/ip/binseg/configs/datasets/{refugeodtest.py => refuge_od_test.py} (83%)
 rename bob/ip/binseg/configs/datasets/{rimoner3cup.py => rimoner3_cup.py} (83%)
 rename bob/ip/binseg/configs/datasets/{rimoner3cuptest.py => rimoner3_cup_test.py} (77%)
 rename bob/ip/binseg/configs/datasets/{rimoner3od.py => rimoner3_od.py} (83%)
 rename bob/ip/binseg/configs/datasets/{rimoner3odtest.py => rimoner3_od_test.py} (77%)
 rename bob/ip/binseg/configs/datasets/{staretest.py => stare_test.py} (71%)
 rename bob/ip/binseg/configs/models/{driubn.py => driu_bn.py} (100%)
 rename bob/ip/binseg/configs/models/{driubnssl.py => driu_bn_ssl.py} (100%)
 rename bob/ip/binseg/configs/models/{driuod.py => driu_od.py} (100%)
 rename bob/ip/binseg/configs/models/{driussl.py => driu_ssl.py} (100%)
 rename bob/ip/binseg/configs/models/{m2unetssl.py => m2unet_ssl.py} (100%)
 create mode 100644 bob/ip/binseg/test/test_config.py
 create mode 100644 bob/ip/binseg/test/utils.py

diff --git a/bob/ip/binseg/configs/datasets/chasedb1.py b/bob/ip/binseg/configs/datasets/chasedb1.py
index 2b09a757..cdf8915e 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1.py
@@ -24,18 +24,15 @@ bright strip running down the centre known as the central vessel reflex.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Crop(0, 18, 960, 960),  #(upper, left, height, width)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb11024.py b/bob/ip/binseg/configs/datasets/chasedb11024.py
index be005fd3..cc762df6 100644
--- a/bob/ip/binseg/configs/datasets/chasedb11024.py
+++ b/bob/ip/binseg/configs/datasets/chasedb11024.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(0, 18, 960, 960),
         Resize(1024),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb11168.py b/bob/ip/binseg/configs/datasets/chasedb11168.py
index 92ffccfa..e756d6ef 100644
--- a/bob/ip/binseg/configs/datasets/chasedb11168.py
+++ b/bob/ip/binseg/configs/datasets/chasedb11168.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(140, 18, 680, 960),
         Resize(1168),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb1544.py b/bob/ip/binseg/configs/datasets/chasedb1544.py
index 16639aef..d6c389e2 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1544.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1544.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize(544),
         Crop(0, 12, 544, 544),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb1608.py b/bob/ip/binseg/configs/datasets/chasedb1608.py
index adfd9777..e01d939d 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1608.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1608.py
@@ -1,17 +1,14 @@
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((829, 960)),
         Resize(608),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/chasedb1test.py b/bob/ip/binseg/configs/datasets/chasedb1_test.py
similarity index 79%
rename from bob/ip/binseg/configs/datasets/chasedb1test.py
rename to bob/ip/binseg/configs/datasets/chasedb1_test.py
index 0504acb3..945096cf 100644
--- a/bob/ip/binseg/configs/datasets/chasedb1test.py
+++ b/bob/ip/binseg/configs/datasets/chasedb1_test.py
@@ -23,15 +23,10 @@ bright strip running down the centre known as the central vessel reflex.
 * Split reference: [CHASEDB1-2012]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
-        Crop(0, 18, 960, 960),  #(upper, left, height, width)
-        ToTensor(),
-    ]
-)
+from bob.ip.binseg.data.transforms import Crop
+_transforms = [Crop(0, 18, 960, 960)]  #(upper, left, height, width)
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.chasedb1 import dataset as chasedb1
-dataset = DelayedSample2TorchDataset(chasedb1.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(chasedb1.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drivestareiostarhrf960.py b/bob/ip/binseg/configs/datasets/covd_chasedb1.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivestareiostarhrf960.py
rename to bob/ip/binseg/configs/datasets/covd_chasedb1.py
diff --git a/bob/ip/binseg/configs/datasets/drivestareiostarhrf960sslchase.py b/bob/ip/binseg/configs/datasets/covd_chasedb1_ssl.py
similarity index 84%
rename from bob/ip/binseg/configs/datasets/drivestareiostarhrf960sslchase.py
rename to bob/ip/binseg/configs/datasets/covd_chasedb1_ssl.py
index 2e96cecf..4d73e6a8 100644
--- a/bob/ip/binseg/configs/datasets/drivestareiostarhrf960sslchase.py
+++ b/bob/ip/binseg/configs/datasets/covd_chasedb1_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of STARE, CHASE-DB1, IOSTAR
 vessel and HRF (with annotated samples) and CHASE-DB1 without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivestareiostarhrf960 import dataset as _labelled
+from bob.ip.binseg.configs.datasets.covd_chasedb1 import dataset as _labelled
 from bob.ip.binseg.configs.datasets.chasedb1 import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544.py b/bob/ip/binseg/configs/datasets/covd_drive.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544.py
rename to bob/ip/binseg/configs/datasets/covd_drive.py
diff --git a/bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544ssldrive.py b/bob/ip/binseg/configs/datasets/covd_drive_ssl.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544ssldrive.py
rename to bob/ip/binseg/configs/datasets/covd_drive_ssl.py
index c4ce12ca..a26a81e7 100644
--- a/bob/ip/binseg/configs/datasets/starechasedb1iostarhrf544ssldrive.py
+++ b/bob/ip/binseg/configs/datasets/covd_drive_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of STARE, CHASE-DB1, IOSTAR
 vessel and HRF (with annotated samples) and DRIVE without labels.
 """
 
-from bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544 import dataset as _labelled
+from bob.ip.binseg.configs.datasets.covd_drive import dataset as _labelled
 from bob.ip.binseg.configs.datasets.drive import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168.py b/bob/ip/binseg/configs/datasets/covd_hrf.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168.py
rename to bob/ip/binseg/configs/datasets/covd_hrf.py
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168sslhrf.py b/bob/ip/binseg/configs/datasets/covd_hrf_ssl.py
similarity index 69%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168sslhrf.py
rename to bob/ip/binseg/configs/datasets/covd_hrf_ssl.py
index 24365196..71658d04 100644
--- a/bob/ip/binseg/configs/datasets/drivestarechasedb1iostar1168sslhrf.py
+++ b/bob/ip/binseg/configs/datasets/covd_hrf_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of STARE, CHASE-DB1, IOSTAR
 vessel and CHASE-DB1 (with annotated samples) and HRF without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168 import dataset as _labelled
-from bob.ip.binseg.configs.datasets.hrf1168 import dataset as _unlabelled
+from bob.ip.binseg.configs.datasets.covd_hrf import dataset as _labelled
+from bob.ip.binseg.configs.datasets.hrf_1168 import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024.py b/bob/ip/binseg/configs/datasets/covd_iostar_vessel.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024.py
rename to bob/ip/binseg/configs/datasets/covd_iostar_vessel.py
diff --git a/bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024ssliostar.py b/bob/ip/binseg/configs/datasets/covd_iostar_vessel_ssl.py
similarity index 68%
rename from bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024ssliostar.py
rename to bob/ip/binseg/configs/datasets/covd_iostar_vessel_ssl.py
index 5dbd5b21..6357d710 100644
--- a/bob/ip/binseg/configs/datasets/drivestarechasedb1hrf1024ssliostar.py
+++ b/bob/ip/binseg/configs/datasets/covd_iostar_vessel_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of DRIVE, STARE, CHASE-DB1, and
 HRF (with annotated samples) and IOSTAR without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024 import dataset as _labelled
-from bob.ip.binseg.configs.datasets.iostarvessel import dataset as _unlabelled
+from bob.ip.binseg.configs.datasets.covd_iostar_vessel import dataset as _labelled
+from bob.ip.binseg.configs.datasets.iostar_vessel import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608.py b/bob/ip/binseg/configs/datasets/covd_stare.py
similarity index 100%
rename from bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608.py
rename to bob/ip/binseg/configs/datasets/covd_stare.py
diff --git a/bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608sslstare.py b/bob/ip/binseg/configs/datasets/covd_stare_ssl.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608sslstare.py
rename to bob/ip/binseg/configs/datasets/covd_stare_ssl.py
index 767c0e18..ff0fce68 100644
--- a/bob/ip/binseg/configs/datasets/drivechasedb1iostarhrf608sslstare.py
+++ b/bob/ip/binseg/configs/datasets/covd_stare_ssl.py
@@ -9,7 +9,7 @@ The dataset available in this file is composed of DRIVE, CHASE-DB1, IOSTAR
 vessel and HRF (with annotated samples) and STARE without labels.
 """
 
-from bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608 import dataset as _labelled
+from bob.ip.binseg.configs.datasets.covd_stare import dataset as _labelled
 from bob.ip.binseg.configs.datasets.stare import dataset as _unlabelled
 from bob.ip.binseg.data.utils import SSLDataset
 dataset = SSLDataset(_labelled, _unlabelled)
diff --git a/bob/ip/binseg/configs/datasets/csv.py b/bob/ip/binseg/configs/datasets/csv.py
index 410008f8..f6aec548 100644
--- a/bob/ip/binseg/configs/datasets/csv.py
+++ b/bob/ip/binseg/configs/datasets/csv.py
@@ -66,20 +66,15 @@ See:
 
 """
 
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.csvdataset import CSVDataset
-
 # add your transforms below - these are just examples
-# keep the ``ToTensor()`` transform at the end
-transforms = Compose(
-    [
+from bob.ip.binseg.data.transforms import *
+_transforms = [
         #CenterCrop((544, 544)),
         #RandomHFlip(),
         #RandomVFlip(),
         #RandomRotation(),
         #ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-#dataset = CSVDataset("<path.csv>", check_available=False, transform=transforms)
+from bob.ip.binseg.data.csvdataset import CSVDataset
+#dataset = CSVDataset("<path.csv>", check_available=False, transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drionsdb.py b/bob/ip/binseg/configs/datasets/drionsdb.py
index 7b1730db..fdbbac77 100644
--- a/bob/ip/binseg/configs/datasets/drionsdb.py
+++ b/bob/ip/binseg/configs/datasets/drionsdb.py
@@ -25,19 +25,16 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
+_transforms = [
         Pad((4, 8, 4, 8)),  #(left, top, right, bottom)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = DRIONS(protocol="default")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drionsdbtest.py b/bob/ip/binseg/configs/datasets/drionsdb_test.py
similarity index 89%
rename from bob/ip/binseg/configs/datasets/drionsdbtest.py
rename to bob/ip/binseg/configs/datasets/drionsdb_test.py
index 8b1a0c87..01cfccd7 100644
--- a/bob/ip/binseg/configs/datasets/drionsdbtest.py
+++ b/bob/ip/binseg/configs/datasets/drionsdb_test.py
@@ -24,10 +24,10 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose([Pad((4, 8, 4, 8)), ToTensor()])
+_transforms = [Pad((4, 8, 4, 8))]
 
 # bob.db.dataset init
 bobdb = DRIONS(protocol="default")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1cup.py b/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
similarity index 90%
rename from bob/ip/binseg/configs/datasets/dristhigs1cup.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_cup.py
index 485a5e68..4780d6f0 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1cup.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_cup.py
@@ -27,19 +27,16 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
+_transforms = [
         CenterCrop((1760, 2048)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_cup")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1cuptest.py b/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
similarity index 85%
rename from bob/ip/binseg/configs/datasets/dristhigs1cuptest.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
index 511b5273..e88c988a 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1cuptest.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_cup_test.py
@@ -22,15 +22,15 @@ and notching information.
 """
 
 from bob.db.drishtigs1 import Database as DRISHTI
-from bob.ip.binseg.data.transforms import *
+from bob.ip.binseg.data.transforms import CenterCrop
 from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose([CenterCrop((1760, 2048)), ToTensor()])
+_transforms = [CenterCrop((1760, 2048))]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_cup")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1od.py b/bob/ip/binseg/configs/datasets/dristhigs1_od.py
similarity index 90%
rename from bob/ip/binseg/configs/datasets/dristhigs1od.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_od.py
index 5c46540a..02545418 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1od.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_od.py
@@ -27,19 +27,16 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
+_transforms = [
         CenterCrop((1760, 2048)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_od")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/dristhigs1odtest.py b/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
similarity index 85%
rename from bob/ip/binseg/configs/datasets/dristhigs1odtest.py
rename to bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
index e5e5c36a..0e05f2fb 100644
--- a/bob/ip/binseg/configs/datasets/dristhigs1odtest.py
+++ b/bob/ip/binseg/configs/datasets/dristhigs1_od_test.py
@@ -22,15 +22,15 @@ and notching information.
 """
 
 from bob.db.drishtigs1 import Database as DRISHTI
-from bob.ip.binseg.data.transforms import *
+from bob.ip.binseg.data.transforms import CenterCrop
 from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose([CenterCrop((1760, 2048)), ToTensor()])
+_transforms = [CenterCrop((1760, 2048))]
 
 # bob.db.dataset init
 bobdb = DRISHTI(protocol="default_od")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive.py b/bob/ip/binseg/configs/datasets/drive.py
index 5e5b4986..2690b671 100644
--- a/bob/ip/binseg/configs/datasets/drive.py
+++ b/bob/ip/binseg/configs/datasets/drive.py
@@ -14,18 +14,15 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         CenterCrop((544, 544)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive1024.py b/bob/ip/binseg/configs/datasets/drive1024.py
index f27ac3b7..f296c5ea 100644
--- a/bob/ip/binseg/configs/datasets/drive1024.py
+++ b/bob/ip/binseg/configs/datasets/drive1024.py
@@ -14,19 +14,16 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((540, 540)),
         Resize(1024),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive1168.py b/bob/ip/binseg/configs/datasets/drive1168.py
index ce84af98..29328381 100644
--- a/bob/ip/binseg/configs/datasets/drive1168.py
+++ b/bob/ip/binseg/configs/datasets/drive1168.py
@@ -14,8 +14,7 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(75, 10, 416, 544),
         Pad((21, 0, 22, 0)),
@@ -23,11 +22,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive608.py b/bob/ip/binseg/configs/datasets/drive608.py
index d5794205..efc0ae26 100644
--- a/bob/ip/binseg/configs/datasets/drive608.py
+++ b/bob/ip/binseg/configs/datasets/drive608.py
@@ -14,8 +14,7 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((470, 544)),
         Pad((10, 9, 10, 8)),
@@ -23,11 +22,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drive960.py b/bob/ip/binseg/configs/datasets/drive960.py
index a37f54b0..4a2bbe02 100644
--- a/bob/ip/binseg/configs/datasets/drive960.py
+++ b/bob/ip/binseg/configs/datasets/drive960.py
@@ -14,19 +14,16 @@ segmentation of blood vessels in retinal images.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         CenterCrop((544, 544)),
         Resize(960),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/drivetest.py b/bob/ip/binseg/configs/datasets/drive_test.py
similarity index 63%
rename from bob/ip/binseg/configs/datasets/drivetest.py
rename to bob/ip/binseg/configs/datasets/drive_test.py
index 9315e59a..d7f49c4b 100644
--- a/bob/ip/binseg/configs/datasets/drivetest.py
+++ b/bob/ip/binseg/configs/datasets/drive_test.py
@@ -13,10 +13,10 @@ segmentation of blood vessels in retinal images.
 * Split reference: [DRIVE-2004]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([CenterCrop((544, 544)), ToTensor()])
+from bob.ip.binseg.data.transforms import CenterCrop
+_transforms = [CenterCrop((544, 544))]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.drive import dataset as drive
-dataset = DelayedSample2TorchDataset(drive.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(drive.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/folder.py b/bob/ip/binseg/configs/datasets/folder.py
index d34c2797..06e1e65a 100644
--- a/bob/ip/binseg/configs/datasets/folder.py
+++ b/bob/ip/binseg/configs/datasets/folder.py
@@ -36,16 +36,11 @@ configuration that was used to train models and try to match it as well as
 possible.
 """
 
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.folderdataset import FolderDataset
-
 # add your transforms below - these are just examples
-# keep the ``ToTensor()`` transform at the end
-transforms = Compose(
-    [
+from bob.ip.binseg.data.transforms import *
+_transforms = [
         #CenterCrop((544, 544)),
-        ToTensor(),
     ]
-)
 
-#dataset = FolderDataset("<path.csv>", glob="*.*", transform=transforms)
+from bob.ip.binseg.data.folderdataset import FolderDataset
+#dataset = FolderDataset("<path.csv>", glob="*.*", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf.py b/bob/ip/binseg/configs/datasets/hrf.py
index 95df5b00..fb731612 100644
--- a/bob/ip/binseg/configs/datasets/hrf.py
+++ b/bob/ip/binseg/configs/datasets/hrf.py
@@ -15,18 +15,15 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Crop(0, 108, 2336, 3296),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf1024.py b/bob/ip/binseg/configs/datasets/hrf1024.py
index a1d7cb36..00f79b29 100644
--- a/bob/ip/binseg/configs/datasets/hrf1024.py
+++ b/bob/ip/binseg/configs/datasets/hrf1024.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((0, 584, 0, 584)),
-        Resize((1024)),
+        Resize(1024),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf544.py b/bob/ip/binseg/configs/datasets/hrf544.py
index d45b4247..a1adf81b 100644
--- a/bob/ip/binseg/configs/datasets/hrf544.py
+++ b/bob/ip/binseg/configs/datasets/hrf544.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize((363)),
         Pad((0, 90, 0, 91)),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf544test.py b/bob/ip/binseg/configs/datasets/hrf544test.py
deleted file mode 100644
index 16102bf8..00000000
--- a/bob/ip/binseg/configs/datasets/hrf544test.py
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/usr/bin/env python
-# -*- coding: utf-8 -*-
-
-"""HRF (test set) for Vessel Segmentation
-
-The database includes 15 images of each healthy, diabetic retinopathy (DR), and
-glaucomatous eyes.  It contains 45 eye fundus images with a resolution of 3304
-x 2336. One set of ground-truth vessel annotations is available.
-
-* Reference: [HRF-2013]_
-* Original resolution (height x width): 2336 x 3504
-* Configuration resolution: 544 x 544 (after specific padding and rescaling)
-* Test samples: 30
-* Split reference: [ORLANDO-2017]_
-"""
-
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
-        Resize((363)),
-        Pad((0, 90, 0, 91)),
-        ToTensor(),
-    ]
-)
-
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
-from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["test"],
-        transform=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf608.py b/bob/ip/binseg/configs/datasets/hrf608.py
index a1d4fbf9..5404a514 100644
--- a/bob/ip/binseg/configs/datasets/hrf608.py
+++ b/bob/ip/binseg/configs/datasets/hrf608.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((0, 345, 0, 345)),
         Resize(608),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf960.py b/bob/ip/binseg/configs/datasets/hrf960.py
index 2dd12ef6..d7c92456 100644
--- a/bob/ip/binseg/configs/datasets/hrf960.py
+++ b/bob/ip/binseg/configs/datasets/hrf960.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((0, 584, 0, 584)),
-        Resize((960)),
+        Resize(960),
         RandomRotation(),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf1168.py b/bob/ip/binseg/configs/datasets/hrf_1168.py
similarity index 74%
rename from bob/ip/binseg/configs/datasets/hrf1168.py
rename to bob/ip/binseg/configs/datasets/hrf_1168.py
index 67ece23f..0d17fa20 100644
--- a/bob/ip/binseg/configs/datasets/hrf1168.py
+++ b/bob/ip/binseg/configs/datasets/hrf_1168.py
@@ -15,19 +15,16 @@ x 2336. One set of ground-truth vessel annotations is available.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Crop(0, 108, 2336, 3296),  #(upper, left, height, width)
-        Resize((1168)),  # applies to the smaller edge
+        Resize(1168),  # applies to the smaller edge
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrf1168test.py b/bob/ip/binseg/configs/datasets/hrf_1168_test.py
similarity index 67%
rename from bob/ip/binseg/configs/datasets/hrf1168test.py
rename to bob/ip/binseg/configs/datasets/hrf_1168_test.py
index d73da151..89b5df45 100644
--- a/bob/ip/binseg/configs/datasets/hrf1168test.py
+++ b/bob/ip/binseg/configs/datasets/hrf_1168_test.py
@@ -14,10 +14,10 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([Crop(0, 108, 2336, 3296), Resize((1168)), ToTensor()])
+from bob.ip.binseg.data.transforms import Crop, Resize
+_transforms = [Crop(0, 108, 2336, 3296), Resize(1168)]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/hrftest.py b/bob/ip/binseg/configs/datasets/hrf_test.py
similarity index 68%
rename from bob/ip/binseg/configs/datasets/hrftest.py
rename to bob/ip/binseg/configs/datasets/hrf_test.py
index 0ae5d763..2c926af4 100644
--- a/bob/ip/binseg/configs/datasets/hrftest.py
+++ b/bob/ip/binseg/configs/datasets/hrf_test.py
@@ -14,10 +14,10 @@ x 2336. One set of ground-truth vessel annotations is available.
 * Split reference: [ORLANDO-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([Crop(0, 108, 2336, 3296), ToTensor()])
+from bob.ip.binseg.data.transforms import Crop
+_transforms = [Crop(0, 108, 2336, 3296)]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.hrf import dataset as hrf
-dataset = DelayedSample2TorchDataset(hrf.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(hrf.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarod.py b/bob/ip/binseg/configs/datasets/iostar_od.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/iostarod.py
rename to bob/ip/binseg/configs/datasets/iostar_od.py
index 78a5e91c..dc4ad5d9 100644
--- a/bob/ip/binseg/configs/datasets/iostarod.py
+++ b/bob/ip/binseg/configs/datasets/iostar_od.py
@@ -16,17 +16,14 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("optic-disc")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("optic-disc")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarodtest.py b/bob/ip/binseg/configs/datasets/iostar_od_test.py
similarity index 71%
rename from bob/ip/binseg/configs/datasets/iostarodtest.py
rename to bob/ip/binseg/configs/datasets/iostar_od_test.py
index 87260044..d9503af9 100644
--- a/bob/ip/binseg/configs/datasets/iostarodtest.py
+++ b/bob/ip/binseg/configs/datasets/iostar_od_test.py
@@ -15,10 +15,6 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([ToTensor()])
-
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("optic-disc")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("optic-disc")["test"])
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel.py b/bob/ip/binseg/configs/datasets/iostar_vessel.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/iostarvessel.py
rename to bob/ip/binseg/configs/datasets/iostar_vessel.py
index c7b44fef..e6cd47b3 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel.py
+++ b/bob/ip/binseg/configs/datasets/iostar_vessel.py
@@ -16,17 +16,14 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvesseltest.py b/bob/ip/binseg/configs/datasets/iostar_vessel_test.py
similarity index 71%
rename from bob/ip/binseg/configs/datasets/iostarvesseltest.py
rename to bob/ip/binseg/configs/datasets/iostar_vessel_test.py
index 77051798..c05b8455 100644
--- a/bob/ip/binseg/configs/datasets/iostarvesseltest.py
+++ b/bob/ip/binseg/configs/datasets/iostar_vessel_test.py
@@ -15,10 +15,6 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 * Split reference: [MEYER-2017]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([ToTensor()])
-
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["test"])
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel1168.py b/bob/ip/binseg/configs/datasets/iostarvessel1168.py
index 6fe05ee2..13457f60 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel1168.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel1168.py
@@ -16,8 +16,7 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(144, 0, 768, 1024),
         Pad((30, 0, 30, 0)),
@@ -25,11 +24,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel544.py b/bob/ip/binseg/configs/datasets/iostarvessel544.py
index 2e48cfd9..d2e588e8 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel544.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel544.py
@@ -16,18 +16,15 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize(544),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel608.py b/bob/ip/binseg/configs/datasets/iostarvessel608.py
index e5454a9f..6b3ae8fa 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel608.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel608.py
@@ -16,19 +16,16 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((81, 0, 81, 0)),
         Resize(608),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/iostarvessel960.py b/bob/ip/binseg/configs/datasets/iostarvessel960.py
index e2206848..95ca8905 100644
--- a/bob/ip/binseg/configs/datasets/iostarvessel960.py
+++ b/bob/ip/binseg/configs/datasets/iostarvessel960.py
@@ -16,18 +16,15 @@ dataset includes annotations for the optic disc and the artery/vein ratio.
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Resize(960),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.iostar import dataset as iostar
-dataset = DelayedSample2TorchDataset(iostar.subsets("vessel")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(iostar.subsets("vessel")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugecup.py b/bob/ip/binseg/configs/datasets/refuge_cup.py
similarity index 88%
rename from bob/ip/binseg/configs/datasets/refugecup.py
rename to bob/ip/binseg/configs/datasets/refuge_cup.py
index b90400a7..2d26cc6d 100644
--- a/bob/ip/binseg/configs/datasets/refugecup.py
+++ b/bob/ip/binseg/configs/datasets/refuge_cup.py
@@ -27,20 +27,17 @@ from bob.ip.binseg.data.binsegdataset import BinSegDataset
 
 #### Config ####
 
-transforms = Compose(
-    [
-        Resize((1539)),
+_transforms = [
+        Resize(1539),
         Pad((21, 46, 22, 47)),  #(left, top, right, bottom)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
 # bob.db.dataset init
 bobdb = REFUGE(protocol="default_cup")
 
 # PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugecuptest.py b/bob/ip/binseg/configs/datasets/refuge_cup_test.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/refugecuptest.py
rename to bob/ip/binseg/configs/datasets/refuge_cup_test.py
index a24ec43c..b1d839fb 100644
--- a/bob/ip/binseg/configs/datasets/refugecuptest.py
+++ b/bob/ip/binseg/configs/datasets/refuge_cup_test.py
@@ -26,16 +26,11 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import CenterCrop
+_transforms = [CenterCrop(1632)]
 
-transforms = Compose([CenterCrop(1632), ToTensor()])
-
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_cup")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugeod.py b/bob/ip/binseg/configs/datasets/refuge_od.py
similarity index 85%
rename from bob/ip/binseg/configs/datasets/refugeod.py
rename to bob/ip/binseg/configs/datasets/refuge_od.py
index da226c8b..d61add28 100644
--- a/bob/ip/binseg/configs/datasets/refugeod.py
+++ b/bob/ip/binseg/configs/datasets/refuge_od.py
@@ -21,26 +21,18 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
 from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-transforms = Compose(
-    [
+_transforms = [
         Resize((1539)),
         Pad((21, 46, 22, 47)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/refugeodtest.py b/bob/ip/binseg/configs/datasets/refuge_od_test.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/refugeodtest.py
rename to bob/ip/binseg/configs/datasets/refuge_od_test.py
index a14ff84b..8fb2ea54 100644
--- a/bob/ip/binseg/configs/datasets/refugeodtest.py
+++ b/bob/ip/binseg/configs/datasets/refuge_od_test.py
@@ -26,16 +26,11 @@ dataset of retinal fundus images.
 
 """
 
-from bob.db.refuge import Database as REFUGE
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import CenterCrop
+_transforms = [CenterCrop(1632)]
 
-transforms = Compose([CenterCrop(1632), ToTensor()])
-
-# bob.db.dataset init
+from bob.db.refuge import Database as REFUGE
 bobdb = REFUGE(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3cup.py b/bob/ip/binseg/configs/datasets/rimoner3_cup.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/rimoner3cup.py
rename to bob/ip/binseg/configs/datasets/rimoner3_cup.py
index 361e35f4..080a32f9 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3cup.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_cup.py
@@ -16,25 +16,17 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
 from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-transforms = Compose(
-    [
+_transforms = [
         Pad((8, 8, 8, 8)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_cup")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3cuptest.py b/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/rimoner3cuptest.py
rename to bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
index c897048f..6ae6c809 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3cuptest.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_cup_test.py
@@ -16,16 +16,12 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
 
-transforms = Compose([Pad((8, 8, 8, 8)), ToTensor()])
+from bob.ip.binseg.data.transforms import Pad
+_transforms = [Pad((8, 8, 8, 8))]
 
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_cup")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3od.py b/bob/ip/binseg/configs/datasets/rimoner3_od.py
similarity index 83%
rename from bob/ip/binseg/configs/datasets/rimoner3od.py
rename to bob/ip/binseg/configs/datasets/rimoner3_od.py
index 60e0a571..e1dd0a94 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3od.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_od.py
@@ -16,25 +16,17 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
 from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
-
-transforms = Compose(
-    [
+_transforms = [
         Pad((8, 8, 8, 8)),
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="train", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="train", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/rimoner3odtest.py b/bob/ip/binseg/configs/datasets/rimoner3_od_test.py
similarity index 77%
rename from bob/ip/binseg/configs/datasets/rimoner3odtest.py
rename to bob/ip/binseg/configs/datasets/rimoner3_od_test.py
index 0a633fd6..9fdb9a1b 100644
--- a/bob/ip/binseg/configs/datasets/rimoner3odtest.py
+++ b/bob/ip/binseg/configs/datasets/rimoner3_od_test.py
@@ -16,16 +16,11 @@ baseline.
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.db.rimoner3 import Database as RIMONER3
-from bob.ip.binseg.data.transforms import *
-from bob.ip.binseg.data.binsegdataset import BinSegDataset
-
-#### Config ####
+from bob.ip.binseg.data.transforms import Pad
+_transforms = [Pad((8, 8, 8, 8))]
 
-transforms = Compose([Pad((8, 8, 8, 8)), ToTensor()])
-
-# bob.db.dataset init
+from bob.db.rimoner3 import Database as RIMONER3
 bobdb = RIMONER3(protocol="default_od")
 
-# PyTorch dataset
-dataset = BinSegDataset(bobdb, split="test", transform=transforms)
+from bob.ip.binseg.data.binsegdataset import BinSegDataset
+dataset = BinSegDataset(bobdb, split="test", transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare.py b/bob/ip/binseg/configs/datasets/stare.py
index 74adacbc..d173f846 100644
--- a/bob/ip/binseg/configs/datasets/stare.py
+++ b/bob/ip/binseg/configs/datasets/stare.py
@@ -17,18 +17,15 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         Pad((2, 1, 2, 2)),  #(left, top, right, bottom)
         RandomHFlip(),
         RandomVFlip(),
         RandomRotation(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare1024.py b/bob/ip/binseg/configs/datasets/stare1024.py
index ca3b3957..e68941a6 100644
--- a/bob/ip/binseg/configs/datasets/stare1024.py
+++ b/bob/ip/binseg/configs/datasets/stare1024.py
@@ -17,8 +17,7 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Pad((0, 32, 0, 32)),
         Resize(1024),
@@ -26,11 +25,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
     ]
-)
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare1168.py b/bob/ip/binseg/configs/datasets/stare1168.py
index 425ac1e5..6578f86b 100644
--- a/bob/ip/binseg/configs/datasets/stare1168.py
+++ b/bob/ip/binseg/configs/datasets/stare1168.py
@@ -14,8 +14,7 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Crop(50, 0, 500, 705),
         Resize(1168),
@@ -23,11 +22,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare544.py b/bob/ip/binseg/configs/datasets/stare544.py
index da1b8230..9301343a 100644
--- a/bob/ip/binseg/configs/datasets/stare544.py
+++ b/bob/ip/binseg/configs/datasets/stare544.py
@@ -17,19 +17,16 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Resize(471),
         Pad((0, 37, 0, 36)),
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
-    ]
-)
+        ]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/stare960.py b/bob/ip/binseg/configs/datasets/stare960.py
index db8b88b5..f9af017f 100644
--- a/bob/ip/binseg/configs/datasets/stare960.py
+++ b/bob/ip/binseg/configs/datasets/stare960.py
@@ -17,8 +17,7 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 """
 
 from bob.ip.binseg.data.transforms import *
-_transforms = Compose(
-    [
+_transforms = [
         RandomRotation(),
         Pad((0, 32, 0, 32)),
         Resize(960),
@@ -26,11 +25,9 @@ _transforms = Compose(
         RandomHFlip(),
         RandomVFlip(),
         ColorJitter(),
-        ToTensor(),
     ]
-)
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["train"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["train"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/datasets/staretest.py b/bob/ip/binseg/configs/datasets/stare_test.py
similarity index 71%
rename from bob/ip/binseg/configs/datasets/staretest.py
rename to bob/ip/binseg/configs/datasets/stare_test.py
index c7a69801..e8d78bcb 100644
--- a/bob/ip/binseg/configs/datasets/staretest.py
+++ b/bob/ip/binseg/configs/datasets/stare_test.py
@@ -16,10 +16,10 @@ for training and testing. The second set by Valentina Kouznetsova acts as a
 * Split reference: [MANINIS-2016]_
 """
 
-from bob.ip.binseg.data.transforms import *
-_transforms = Compose([Pad((2, 1, 2, 2)), ToTensor()])
+from bob.ip.binseg.data.transforms import Pad
+_transforms = [Pad((2, 1, 2, 2))]
 
-from bob.ip.binseg.data.utils import DelayedSample2TorchDataset
+from bob.ip.binseg.data.utils import SampleList2TorchDataset
 from bob.ip.binseg.data.stare import dataset as stare
-dataset = DelayedSample2TorchDataset(stare.subsets("default")["test"],
-        transform=_transforms)
+dataset = SampleList2TorchDataset(stare.subsets("default")["test"],
+        transforms=_transforms)
diff --git a/bob/ip/binseg/configs/models/driubn.py b/bob/ip/binseg/configs/models/driu_bn.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driubn.py
rename to bob/ip/binseg/configs/models/driu_bn.py
diff --git a/bob/ip/binseg/configs/models/driubnssl.py b/bob/ip/binseg/configs/models/driu_bn_ssl.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driubnssl.py
rename to bob/ip/binseg/configs/models/driu_bn_ssl.py
diff --git a/bob/ip/binseg/configs/models/driuod.py b/bob/ip/binseg/configs/models/driu_od.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driuod.py
rename to bob/ip/binseg/configs/models/driu_od.py
diff --git a/bob/ip/binseg/configs/models/driussl.py b/bob/ip/binseg/configs/models/driu_ssl.py
similarity index 100%
rename from bob/ip/binseg/configs/models/driussl.py
rename to bob/ip/binseg/configs/models/driu_ssl.py
diff --git a/bob/ip/binseg/configs/models/m2unetssl.py b/bob/ip/binseg/configs/models/m2unet_ssl.py
similarity index 100%
rename from bob/ip/binseg/configs/models/m2unetssl.py
rename to bob/ip/binseg/configs/models/m2unet_ssl.py
diff --git a/bob/ip/binseg/data/binsegdataset.py b/bob/ip/binseg/data/binsegdataset.py
index 9c487da3..1a94c0be 100644
--- a/bob/ip/binseg/data/binsegdataset.py
+++ b/bob/ip/binseg/data/binsegdataset.py
@@ -1,8 +1,11 @@
 #!/usr/bin/env python
 # -*- coding: utf-8 -*-
+
 from torch.utils.data import Dataset
 import random
 
+from .transforms import Compose, ToTensor
+
 
 class BinSegDataset(Dataset):
     """PyTorch dataset wrapper around bob.db binary segmentation datasets.
@@ -13,20 +16,28 @@ class BinSegDataset(Dataset):
     ----------
     bobdb : :py:mod:`bob.db.base`
         Binary segmentation bob database (e.g. bob.db.drive)
+
     split : str
         ``'train'`` or ``'test'``. Defaults to ``'train'``
-    transform : :py:mod:`bob.ip.binseg.data.transforms`, optional
-        A transform or composition of transfroms. Defaults to ``None``.
+
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
+        ground-truth data.  Notice that image changing transformations such as
+        :py:class:`.transforms.ColorJitter` are only applied to the image and
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
+
     mask : bool
         whether dataset contains masks or not
+
     """
 
-    def __init__(self, bobdb, split="train", transform=None, index_to=None):
+    def __init__(self, bobdb, split="train", transforms=[], index_to=None):
         if index_to:
             self.database = bobdb.samples(split)[:index_to]
         else:
             self.database = bobdb.samples(split)
-        self.transform = transform
+        self.transform = Compose(transforms + [ToTensor()])
         self.split = split
 
     @property
diff --git a/bob/ip/binseg/data/chasedb1/test.py b/bob/ip/binseg/data/chasedb1/test.py
index 9fcccddf..90f196dd 100644
--- a/bob/ip/binseg/data/chasedb1/test.py
+++ b/bob/ip/binseg/data/chasedb1/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Crop
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -66,27 +65,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.chasedb1.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.chasedb1.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 3)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (960, 960))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (960, 960))
-        nose.tools.eq_(s[2].mode, "1")
-
-    transforms = Compose([Crop(0, 18, 960, 960)])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 8)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/csvdataset.py b/bob/ip/binseg/data/csvdataset.py
index 9e65e363..43699faf 100644
--- a/bob/ip/binseg/data/csvdataset.py
+++ b/bob/ip/binseg/data/csvdataset.py
@@ -12,6 +12,8 @@ import torchvision.transforms.functional as VF
 
 import bob.io.base
 
+from .transforms import Compose, ToTensor
+
 import logging
 
 logger = logging.getLogger(__name__)
@@ -80,20 +82,21 @@ class CSVDataset(Dataset):
         If set to ``True``, then checks if files in the file list are
         available.  Otherwise does not.
 
-    transform : :py:class:`.transforms.Compose`, Optional
-        a composition of transformations to be applied to **both** image and
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
         ground-truth data.  Notice that image changing transformations such as
         :py:class:`.transforms.ColorJitter` are only applied to the image and
-        **not** to ground-truth.
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
 
     """
 
     def __init__(
-        self, path, root_path=None, check_available=True, transform=None
+        self, path, root_path=None, check_available=True, transforms=[]
     ):
 
         self.root_path = root_path or os.path.dirname(path)
-        self.transform = transform
+        self.transform = Compose(transforms + [ToTensor()])
 
         def _make_abs_path(root, s):
             retval = []
diff --git a/bob/ip/binseg/data/drive/test.py b/bob/ip/binseg/data/drive/test.py
index 2834ca41..b7b291ff 100644
--- a/bob/ip/binseg/data/drive/test.py
+++ b/bob/ip/binseg/data/drive/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, CenterCrop
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -64,30 +63,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.drive.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.drive.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 4)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (544, 544))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (544, 544))
-        nose.tools.eq_(s[2].mode, "1")
-        nose.tools.eq_(s[3].size, (544, 544))
-        nose.tools.eq_(s[3].mode, "1")
-
-
-    transforms = Compose([CenterCrop((544, 544))])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/folderdataset.py b/bob/ip/binseg/data/folderdataset.py
index 19366884..2566fd77 100644
--- a/bob/ip/binseg/data/folderdataset.py
+++ b/bob/ip/binseg/data/folderdataset.py
@@ -7,6 +7,8 @@ from PIL import Image
 
 from torch.utils.data import Dataset
 
+from .transforms import Compose, ToTensor
+
 
 def _find_files(data_path, glob):
     """
@@ -42,16 +44,17 @@ class FolderDataset(Dataset):
         glob that can be used to filter-down files to be loaded on the provided
         path
 
-    transform : :py:class:`.transforms.Compose`, Optional
-        a composition of transformations to be applied to **both** image and
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
         ground-truth data.  Notice that image changing transformations such as
         :py:class:`.transforms.ColorJitter` are only applied to the image and
-        **not** to ground-truth.
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
 
     """
 
-    def __init__(self, path, glob="*", transform=None):
-        self.transform = transform
+    def __init__(self, path, glob="*", transforms=[]):
+        self.transform = Compose(transforms + [ToTensor()])
         self.path = path
         self.data = _find_files(path, glob)
 
diff --git a/bob/ip/binseg/data/hrf/test.py b/bob/ip/binseg/data/hrf/test.py
index 50828041..9a463776 100644
--- a/bob/ip/binseg/data/hrf/test.py
+++ b/bob/ip/binseg/data/hrf/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Crop, Resize
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -53,30 +52,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.hrf.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.hrf.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 4)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (1648, 1168))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (1648, 1168))
-        nose.tools.eq_(s[2].mode, "1")
-        nose.tools.eq_(s[3].size, (1648, 1168))
-        nose.tools.eq_(s[3].mode, "1")
-
-
-    transforms = Compose([Crop(0, 108, 2336, 3296), Resize((1168))])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 15)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 30)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/iostar/test.py b/bob/ip/binseg/data/iostar/test.py
index b0b026db..ecedb60c 100644
--- a/bob/ip/binseg/data/iostar/test.py
+++ b/bob/ip/binseg/data/iostar/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Crop, Resize
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -70,39 +69,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.iostar.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.stare.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 4)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (1024, 1024))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (1024, 1024))
-        nose.tools.eq_(s[2].mode, "1")
-        nose.tools.eq_(s[3].size, (1024, 1024))
-        nose.tools.eq_(s[3].mode, "1")
-
-    transforms = None
-
-    subset = dataset.subsets("vessel")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
-
-    subset = dataset.subsets("optic-disc")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 20)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/stare/test.py b/bob/ip/binseg/data/stare/test.py
index b47fd4d9..0a60cd60 100644
--- a/bob/ip/binseg/data/stare/test.py
+++ b/bob/ip/binseg/data/stare/test.py
@@ -7,9 +7,8 @@
 import os
 import nose.tools
 
-from ..utils import rc_variable_set, DelayedSample2TorchDataset
-from ..transforms import Compose, Pad
 from . import dataset
+from ...test.utils import rc_variable_set
 
 
 def test_protocol_consitency():
@@ -66,27 +65,3 @@ def test_loading():
 @rc_variable_set('bob.ip.binseg.stare.datadir')
 def test_check():
     nose.tools.eq_(dataset.check(), 0)
-
-
-@rc_variable_set('bob.ip.binseg.stare.datadir')
-def test_torch_dataset():
-
-    def _check_sample(s):
-        nose.tools.eq_(len(s), 3)
-        assert isinstance(s[0], str)
-        nose.tools.eq_(s[1].size, (704, 608))
-        nose.tools.eq_(s[1].mode, "RGB")
-        nose.tools.eq_(s[2].size, (704, 608))
-        nose.tools.eq_(s[2].mode, "1")
-
-    transforms = Compose([Pad((2, 1, 2, 2))])
-
-    subset = dataset.subsets("default")
-
-    torch_dataset = DelayedSample2TorchDataset(subset["train"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
-
-    torch_dataset = DelayedSample2TorchDataset(subset["test"], transforms)
-    nose.tools.eq_(len(torch_dataset), 10)
-    for s in torch_dataset: _check_sample(s)
diff --git a/bob/ip/binseg/data/utils.py b/bob/ip/binseg/data/utils.py
index 6eca077a..0e1c8842 100644
--- a/bob/ip/binseg/data/utils.py
+++ b/bob/ip/binseg/data/utils.py
@@ -5,35 +5,14 @@
 """Common utilities"""
 
 
-import functools
-
-import nose.plugins.skip
-
 import torch
 import torch.utils.data
 
-import bob.extension
-
-
-def rc_variable_set(name):
-    """
-    Decorator that checks if a given bobrc variable is set before running
-    """
-
-    def wrapped_function(test):
-        @functools.wraps(test)
-        def wrapper(*args, **kwargs):
-            if name not in bob.extension.rc:
-                raise nose.plugins.skip.SkipTest("Bob's RC variable '%s' is not set" % name)
-            return test(*args, **kwargs)
-
-        return wrapper
-
-    return wrapped_function
+from .transforms import Compose, ToTensor
 
 
-class DelayedSample2TorchDataset(torch.utils.data.Dataset):
-    """PyTorch dataset wrapper around DelayedSample lists
+class SampleList2TorchDataset(torch.utils.data.Dataset):
+    """PyTorch dataset wrapper around Sample lists
 
     A transform object can be passed that will be applied to the image, ground
     truth and mask (if present).
@@ -43,17 +22,21 @@ class DelayedSample2TorchDataset(torch.utils.data.Dataset):
     Parameters
     ----------
     samples : list
-        A list of :py:class:`bob.ip.binseg.data.sample.DelayedSample` objects
+        A list of :py:class:`bob.ip.binseg.data.sample.Sample` objects
 
-    transform : :py:mod:`bob.ip.binseg.data.transforms`, optional
-        A transform or composition of transfroms. Defaults to ``None``.
+    transforms : :py:class:`list`, Optional
+        a list of transformations to be applied to **both** image and
+        ground-truth data.  Notice that image changing transformations such as
+        :py:class:`.transforms.ColorJitter` are only applied to the image and
+        **not** to ground-truth.  Also notice a last transform
+        (:py:class:`bob.ip.binseg.data.transforms.ToTensor`) is always applied.
 
     """
 
-    def __init__(self, samples, transform=None):
+    def __init__(self, samples, transforms=[]):
 
         self._samples = samples
-        self._transform = transform
+        self._transform = Compose(transforms + [ToTensor()])
 
     def __len__(self):
         """
diff --git a/bob/ip/binseg/test/test_config.py b/bob/ip/binseg/test/test_config.py
new file mode 100644
index 00000000..c60bafb5
--- /dev/null
+++ b/bob/ip/binseg/test/test_config.py
@@ -0,0 +1,120 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+import nose.tools
+
+import torch
+
+from .utils import rc_variable_set
+
+
+@rc_variable_set("bob.ip.binseg.drive.datadir")
+def test_drive_default_train():
+
+    from ..configs.datasets.drive import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.drive.datadir")
+def test_drive_default_test():
+
+    from ..configs.datasets.drive_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 544, 544)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.stare.datadir")
+def test_stare_default_train():
+
+    from ..configs.datasets.stare import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.stare.datadir")
+def test_stare_default_test():
+
+    from ..configs.datasets.stare_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 608, 704)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.chasedb1.datadir")
+def test_chasedb1_default_train():
+
+    from ..configs.datasets.chasedb1 import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.chasedb1.datadir")
+def test_chasedb1_default_test():
+
+    from ..configs.datasets.chasedb1_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 3)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 960, 960)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.hrf.datadir")
+def test_hrf_default_train():
+
+    from ..configs.datasets.hrf_1168 import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
+
+
+@rc_variable_set("bob.ip.binseg.hrf.datadir")
+def test_hrf_default_test():
+
+    from ..configs.datasets.hrf_1168_test import dataset
+    for sample in dataset:
+        nose.tools.eq_(len(sample), 4)
+        assert isinstance(sample[0], str)
+        nose.tools.eq_(sample[1].shape, (3, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[1].dtype, torch.float32)
+        nose.tools.eq_(sample[2].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[2].dtype, torch.float32)
+        nose.tools.eq_(sample[3].shape, (1, 1168, 1648)) #planes, height, width
+        nose.tools.eq_(sample[3].dtype, torch.float32)
diff --git a/bob/ip/binseg/test/utils.py b/bob/ip/binseg/test/utils.py
new file mode 100644
index 00000000..b5739240
--- /dev/null
+++ b/bob/ip/binseg/test/utils.py
@@ -0,0 +1,27 @@
+#!/usr/bin/env python
+# coding=utf-8
+
+
+"""Test utilities"""
+
+
+import functools
+import nose.plugins.skip
+import bob.extension
+
+
+def rc_variable_set(name):
+    """
+    Decorator that checks if a given bobrc variable is set before running
+    """
+
+    def wrapped_function(test):
+        @functools.wraps(test)
+        def wrapper(*args, **kwargs):
+            if name not in bob.extension.rc:
+                raise nose.plugins.skip.SkipTest("Bob's RC variable '%s' is not set" % name)
+            return test(*args, **kwargs)
+
+        return wrapper
+
+    return wrapped_function
diff --git a/doc/api.rst b/doc/api.rst
index 7541a4ed..020371c8 100644
--- a/doc/api.rst
+++ b/doc/api.rst
@@ -109,13 +109,13 @@ Models
    :template: config.rst
 
    bob.ip.binseg.configs.models.driu
-   bob.ip.binseg.configs.models.driubn
-   bob.ip.binseg.configs.models.driubnssl
-   bob.ip.binseg.configs.models.driuod
-   bob.ip.binseg.configs.models.driussl
+   bob.ip.binseg.configs.models.driu_bn
+   bob.ip.binseg.configs.models.driu_bn_ssl
+   bob.ip.binseg.configs.models.driu_od
+   bob.ip.binseg.configs.models.driu_ssl
    bob.ip.binseg.configs.models.hed
    bob.ip.binseg.configs.models.m2unet
-   bob.ip.binseg.configs.models.m2unetssl
+   bob.ip.binseg.configs.models.m2unet_ssl
    bob.ip.binseg.configs.models.resunet
    bob.ip.binseg.configs.models.unet
 
@@ -129,64 +129,52 @@ Datasets
    :toctree: api/configs/datasets
    :template: config.rst
 
-   bob.ip.binseg.configs.datasets.chasedb1
-   bob.ip.binseg.configs.datasets.chasedb11024
-   bob.ip.binseg.configs.datasets.chasedb11168
-   bob.ip.binseg.configs.datasets.chasedb1544
-   bob.ip.binseg.configs.datasets.chasedb1608
-   bob.ip.binseg.configs.datasets.chasedb1test
    bob.ip.binseg.configs.datasets.csv
-   bob.ip.binseg.configs.datasets.drionsdb
-   bob.ip.binseg.configs.datasets.drionsdbtest
-   bob.ip.binseg.configs.datasets.dristhigs1cup
-   bob.ip.binseg.configs.datasets.dristhigs1cuptest
-   bob.ip.binseg.configs.datasets.dristhigs1od
-   bob.ip.binseg.configs.datasets.dristhigs1odtest
-   bob.ip.binseg.configs.datasets.drive
-   bob.ip.binseg.configs.datasets.drive1024
-   bob.ip.binseg.configs.datasets.drive1168
-   bob.ip.binseg.configs.datasets.drive608
-   bob.ip.binseg.configs.datasets.drive960
-   bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608
-   bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare
-   bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024
-   bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar
-   bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168
-   bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf
-   bob.ip.binseg.configs.datasets.drivestareiostarhrf960
-   bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase
-   bob.ip.binseg.configs.datasets.drivetest
    bob.ip.binseg.configs.datasets.folder
+
+   bob.ip.binseg.configs.datasets.chasedb1
+   bob.ip.binseg.configs.datasets.chasedb1_test
+   bob.ip.binseg.configs.datasets.covd_chasedb1
+   bob.ip.binseg.configs.datasets.covd_chasedb1_ssl
+
+   bob.ip.binseg.configs.datasets.drive
+   bob.ip.binseg.configs.datasets.drive_test
+   bob.ip.binseg.configs.datasets.covd_drive
+   bob.ip.binseg.configs.datasets.covd_drive_ssl
+
    bob.ip.binseg.configs.datasets.hrf
-   bob.ip.binseg.configs.datasets.hrf1024
-   bob.ip.binseg.configs.datasets.hrf1168
-   bob.ip.binseg.configs.datasets.hrf1168test
-   bob.ip.binseg.configs.datasets.hrf544
-   bob.ip.binseg.configs.datasets.hrf544test
-   bob.ip.binseg.configs.datasets.hrf608
-   bob.ip.binseg.configs.datasets.hrf960
-   bob.ip.binseg.configs.datasets.hrftest
-   bob.ip.binseg.configs.datasets.iostarod
-   bob.ip.binseg.configs.datasets.iostarodtest
-   bob.ip.binseg.configs.datasets.iostarvessel
-   bob.ip.binseg.configs.datasets.iostarvessel1168
-   bob.ip.binseg.configs.datasets.iostarvessel544
-   bob.ip.binseg.configs.datasets.iostarvessel608
-   bob.ip.binseg.configs.datasets.iostarvessel960
-   bob.ip.binseg.configs.datasets.iostarvesseltest
-   bob.ip.binseg.configs.datasets.refugecup
-   bob.ip.binseg.configs.datasets.refugecuptest
-   bob.ip.binseg.configs.datasets.refugeod
-   bob.ip.binseg.configs.datasets.refugeodtest
-   bob.ip.binseg.configs.datasets.rimoner3cup
-   bob.ip.binseg.configs.datasets.rimoner3cuptest
-   bob.ip.binseg.configs.datasets.rimoner3od
-   bob.ip.binseg.configs.datasets.rimoner3odtest
+   bob.ip.binseg.configs.datasets.hrf_1168
+   bob.ip.binseg.configs.datasets.hrf_1168_test
+   bob.ip.binseg.configs.datasets.hrf_test
+   bob.ip.binseg.configs.datasets.covd_hrf
+   bob.ip.binseg.configs.datasets.covd_hrf_ssl
+
+   bob.ip.binseg.configs.datasets.iostar_vessel
+   bob.ip.binseg.configs.datasets.iostar_vessel_test
+   bob.ip.binseg.configs.datasets.covd_iostar_vessel
+   bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl
+   bob.ip.binseg.configs.datasets.iostar_od
+   bob.ip.binseg.configs.datasets.iostar_od_test
+
    bob.ip.binseg.configs.datasets.stare
-   bob.ip.binseg.configs.datasets.stare1024
-   bob.ip.binseg.configs.datasets.stare1168
-   bob.ip.binseg.configs.datasets.stare544
-   bob.ip.binseg.configs.datasets.stare960
-   bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544
-   bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive
-   bob.ip.binseg.configs.datasets.staretest
+   bob.ip.binseg.configs.datasets.stare_test
+   bob.ip.binseg.configs.datasets.covd_stare
+   bob.ip.binseg.configs.datasets.covd_stare_ssl
+
+   bob.ip.binseg.configs.datasets.drionsdb
+   bob.ip.binseg.configs.datasets.drionsdb_test
+
+   bob.ip.binseg.configs.datasets.dristhigs1_cup
+   bob.ip.binseg.configs.datasets.dristhigs1_cup_test
+   bob.ip.binseg.configs.datasets.dristhigs1_od
+   bob.ip.binseg.configs.datasets.dristhigs1_od_test
+
+   bob.ip.binseg.configs.datasets.refuge_cup
+   bob.ip.binseg.configs.datasets.refuge_cup_test
+   bob.ip.binseg.configs.datasets.refuge_od
+   bob.ip.binseg.configs.datasets.refuge_od_test
+
+   bob.ip.binseg.configs.datasets.rimoner3_cup
+   bob.ip.binseg.configs.datasets.rimoner3_cup_test
+   bob.ip.binseg.configs.datasets.rimoner3_od
+   bob.ip.binseg.configs.datasets.rimoner3_od_test
diff --git a/doc/benchmarkresults.rst b/doc/benchmarkresults.rst
index becbf3b3..5023a3ce 100644
--- a/doc/benchmarkresults.rst
+++ b/doc/benchmarkresults.rst
@@ -39,12 +39,12 @@ F1 Scores (micro-level)
      - 0.817 (0.013)
      - `0.803 (0.014) <m2unet_drive.pth_>`_
      - 0.822 (0.015)
-   * - :py:mod:`HRF <bob.ip.binseg.configs.datasets.hrf1168>`
+   * - :py:mod:`HRF <bob.ip.binseg.configs.datasets.hrf_1168>`
      - `0.783 (0.055) <driu_hrf.pth_>`_
      - 0.783 (0.058)
      - `0.780 (0.057) <m2unet_hrf.pth_>`_
      - 0.788 (0.051)
-   * - :py:mod:`IOSTAR (vessel) <bob.ip.binseg.configs.datasets.iostarvessel>`
+   * - :py:mod:`IOSTAR (vessel) <bob.ip.binseg.configs.datasets.iostar_vessel>`
      - `0.825 (0.020) <driu_iostar.pth_>`_
      - 0.825 (0.020)
      - `0.817 (0.020) <m2unet_iostar.pth_>`_
diff --git a/doc/covdresults.rst b/doc/covdresults.rst
index 73aa7270..3abe8445 100644
--- a/doc/covdresults.rst
+++ b/doc/covdresults.rst
@@ -27,46 +27,46 @@ brackets.
    :header-rows: 1
 
    * - F1 score
-     - :py:mod:`DRIU <bob.ip.binseg.configs.models.driu>`/:py:mod:`DRIU@SSL <bob.ip.binseg.configs.models.driussl>`
-     - :py:mod:`DRIU+BN <bob.ip.binseg.configs.models.driubn>`/:py:mod:`DRIU+BN@SSL <bob.ip.binseg.configs.models.driubnssl>`
-     - :py:mod:`M2U-Net <bob.ip.binseg.configs.models.m2unet>`/:py:mod:`M2U-Net@SSL <bob.ip.binseg.configs.models.m2unetssl>`
-   * - :py:mod:`DRIVE (COVD-) <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544>`
+     - :py:mod:`DRIU <bob.ip.binseg.configs.models.driu>`/:py:mod:`DRIU@SSL <bob.ip.binseg.configs.models.driu_ssl>`
+     - :py:mod:`DRIU+BN <bob.ip.binseg.configs.models.driu_bn>`/:py:mod:`DRIU+BN@SSL <bob.ip.binseg.configs.models.driu_bn_ssl>`
+     - :py:mod:`M2U-Net <bob.ip.binseg.configs.models.m2unet>`/:py:mod:`M2U-Net@SSL <bob.ip.binseg.configs.models.m2unet_ssl>`
+   * - :py:mod:`COVD-DRIVE <bob.ip.binseg.configs.datasets.covd_drive>`
      - 0.788 (0.018)
      - 0.797 (0.019)
      - `0.789 (0.018) <m2unet_covd-drive.pth>`_
-   * - :py:mod:`DRIVE (SSL, COVD-) <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive>`
+   * - :py:mod:`COVD-DRIVE+SSL <bob.ip.binseg.configs.datasets.covd_drive_ssl>`
      - 0.785 (0.018)
      - 0.783 (0.019)
      - `0.791 (0.014) <m2unet_covd-drive_ssl.pth>`_
-   * - :py:mod:`STARE (COVD-) <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608>`
+   * - :py:mod:`COVD-STARE <bob.ip.binseg.configs.datasets.covd_stare>`
      - 0.778 (0.117)
      - 0.778 (0.122)
      - `0.812 (0.046) <m2unet_covd-stare.pth>`_
-   * - :py:mod:`STARE (SSL, COVD-) <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare>`
+   * - :py:mod:`COVD-STARE+SSL <bob.ip.binseg.configs.datasets.covd_stare_ssl>`
      - 0.788 (0.102)
      - 0.811 (0.074)
      - `0.820 (0.044) <m2unet_covd-stare_ssl.pth>`_
-   * - :py:mod:`CHASE-DB1 (COVD-) <bob.ip.binseg.configs.datasets.drivestareiostarhrf960>`
+   * - :py:mod:`COVD-CHASEDB1 <bob.ip.binseg.configs.datasets.covd_chasedb1>`
      - 0.796 (0.027)
      - 0.791 (0.025)
      - `0.788 (0.024) <m2unet_covd-chasedb1.pth>`_
-   * - :py:mod:`CHASE-DB1 (SSL, COVD-) <bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase>`
+   * - :py:mod:`COVD-CHASEDB1+SSL <bob.ip.binseg.configs.datasets.covd_chasedb1_ssl>`
      - 0.796 (0.024)
      - 0.798 (0.025)
      - `0.799 (0.026) <m2unet_covd-chasedb1_ssl.pth>`_
-   * - :py:mod:`HRF (COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168>`
+   * - :py:mod:`COVD-HRF <bob.ip.binseg.configs.datasets.covd_hrf>`
      - 0.799 (0.044)
      - 0.800 (0.045)
      - `0.802 (0.045) <m2unet_covd-hrf.pth>`_
-   * - :py:mod:`HRF (SSL, COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf>`
+   * - :py:mod:`COVD-HRF+SSL <bob.ip.binseg.configs.datasets.covd_hrf_ssl>`
      - 0.799 (0.044)
      - 0.784 (0.048)
      - `0.797 (0.044) <m2unet_covd-hrf_ssl.pth>`_
-   * - :py:mod:`IOSTAR (vessel, COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024>`
+   * - :py:mod:`COVD-IOSTAR-VESSEL <bob.ip.binseg.configs.datasets.covd_iostar_vessel>`
      - 0.791 (0.021)
      - 0.777 (0.032)
      - `0.793 (0.015) <m2unet_covd-iostar.pth>`_
-   * - :py:mod:`IOSTAR (vessel, SSL, COVD-) <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar>`
+   * - :py:mod:`COVD-IOSTAR-VESSEL+SSL <bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl>`
      - 0.797 (0.017)
      - 0.811 (0.074)
      - `0.785 (0.018) <m2unet_covd-iostar_ssl.pth>`_
diff --git a/doc/models.rst b/doc/models.rst
index 25e347f8..5f940645 100644
--- a/doc/models.rst
+++ b/doc/models.rst
@@ -19,46 +19,46 @@ weights of a subset of all evaluated models.
    * - :py:mod:`drive <bob.ip.binseg.configs.datasets.drive>`
      - driu_drive.pth_
      - m2unet_drive.pth_
-   * - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544>`
+   * - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.covd_drive>`
      -
      - m2unet_covd-drive.pth_
-   * - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive>`
+   * - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.covd_drive_ssl>`
      -
      - m2unet_covd-drive_ssl.pth_
    * - :py:mod:`stare <bob.ip.binseg.configs.datasets.stare>`
      - driu_stare.pth_
      - m2unet_stare.pth_
-   * - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608>`
+   * - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.covd_stare>`
      -
      - m2unet_covd-stare.pth_
-   * - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare>`
+   * - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.covd_stare_ssl>`
      -
      - m2unet_covd-stare_ssl.pth_
    * - :py:mod:`chasedb1 <bob.ip.binseg.configs.datasets.chasedb1>`
      - driu_chasedb1.pth_
      - m2unet_chasedb1.pth_
-   * - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.drivestareiostarhrf960>`
+   * - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.covd_chasedb1>`
      -
      - m2unet_covd-chasedb1.pth_
-   * - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase>`
+   * - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.covd_chasedb1_ssl>`
      -
      - m2unet_covd-chasedb1_ssl.pth_
-   * - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostarvessel>`
+   * - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostar_vessel>`
      - driu_iostar.pth_
      - m2unet_iostar.pth_
-   * - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024>`
+   * - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.covd_iostar_vessel>`
      -
      - m2unet_covd-iostar.pth_
-   * - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar>`
+   * - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl>`
      -
      - m2unet_covd-iostar_ssl.pth_
-   * - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf1168>`
+   * - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf_1168>`
      - driu_hrf.pth_
      - m2unet_hrf.pth_
-   * - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168>`
+   * - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.covd_hrf>`
      -
      - m2unet_covd-hrf.pth_
-   * - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf>`
+   * - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.covd_hrf_ssl>`
      -
      - m2unet_covd-hrf_ssl.pth_
 
diff --git a/doc/training.rst b/doc/training.rst
index fe265f1e..35bf7b1d 100644
--- a/doc/training.rst
+++ b/doc/training.rst
@@ -41,8 +41,8 @@ card, for supervised training of baselines.  Use it like this:
     - :py:mod:`drive <bob.ip.binseg.configs.datasets.drive>`
     - :py:mod:`stare <bob.ip.binseg.configs.datasets.stare>`
     - :py:mod:`chasedb1 <bob.ip.binseg.configs.datasets.chasedb1>`
-    - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostarvessel>`
-    - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf1168>`
+    - :py:mod:`iostar-vessel <bob.ip.binseg.configs.datasets.iostar_vessel>`
+    - :py:mod:`hrf <bob.ip.binseg.configs.datasets.hrf_1168>`
   * - :py:mod:`unet <bob.ip.binseg.configs.models.unet>`
     - 4
     - 2
@@ -55,7 +55,7 @@ card, for supervised training of baselines.  Use it like this:
     - 4
     - 4
     - 1
-  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driubn>`
+  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driu_bn>`
     - 8
     - 5
     - 4
@@ -111,12 +111,12 @@ card, for supervised training of COVD- systems.  Use it like this:
 .. list-table::
 
   * - **Models / Datasets**
-    - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544>`
-    - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608>`
-    - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.drivestareiostarhrf960>`
-    - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024>`
-    - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168>`
-  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driubn>`
+    - :py:mod:`covd-drive <bob.ip.binseg.configs.datasets.covd_drive>`
+    - :py:mod:`covd-stare <bob.ip.binseg.configs.datasets.covd_stare>`
+    - :py:mod:`covd-chasedb1 <bob.ip.binseg.configs.datasets.covd_chasedb1>`
+    - :py:mod:`covd-iostar-vessel <bob.ip.binseg.configs.datasets.covd_iostar_vessel>`
+    - :py:mod:`covd-hrf <bob.ip.binseg.configs.datasets.covd_hrf>`
+  * - :py:mod:`driu <bob.ip.binseg.configs.models.driu>` / :py:mod:`driu-bn <bob.ip.binseg.configs.models.driu_bn>`
     - 4
     - 4
     - 2
@@ -144,18 +144,18 @@ card, for semi-supervised learning of COVD- systems.  Use it like this:
 .. list-table::
 
   * - **Models / Datasets**
-    - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive>`
-    - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare>`
-    - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase>`
-    - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar>`
-    - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf>`
-  * - :py:mod:`driu-ssl <bob.ip.binseg.configs.models.driussl>` / :py:mod:`driu-bn-ssl <bob.ip.binseg.configs.models.driubnssl>`
+    - :py:mod:`covd-drive-ssl <bob.ip.binseg.configs.datasets.covd_drive_ssl>`
+    - :py:mod:`covd-stare-ssl <bob.ip.binseg.configs.datasets.covd_stare_ssl>`
+    - :py:mod:`covd-chasedb1-ssl <bob.ip.binseg.configs.datasets.covd_chasedb1_ssl>`
+    - :py:mod:`covd-iostar-vessel-ssl <bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl>`
+    - :py:mod:`covd-hrf-ssl <bob.ip.binseg.configs.datasets.covd_hrf_ssl>`
+  * - :py:mod:`driu-ssl <bob.ip.binseg.configs.models.driu_ssl>` / :py:mod:`driu-bn-ssl <bob.ip.binseg.configs.models.driu_bn_ssl>`
     - 4
     - 4
     - 2
     - 1
     - 1
-  * - :py:mod:`m2unet-ssl <bob.ip.binseg.configs.models.m2unetssl>`
+  * - :py:mod:`m2unet-ssl <bob.ip.binseg.configs.models.m2unet_ssl>`
     - 4
     - 4
     - 2
diff --git a/setup.py b/setup.py
index 8eb42600..b8af9724 100644
--- a/setup.py
+++ b/setup.py
@@ -43,13 +43,13 @@ setup(
 
             # models
             "driu = bob.ip.binseg.configs.models.driu",
-            "driu-bn = bob.ip.binseg.configs.models.driubn",
-            "driu-ssl = bob.ip.binseg.configs.models.driussl",
-            "driu-bn-ssl = bob.ip.binseg.configs.models.driubnssl",
-            "driu-od = bob.ip.binseg.configs.models.driuod",
+            "driu-bn = bob.ip.binseg.configs.models.driu_bn",
+            "driu-ssl = bob.ip.binseg.configs.models.driu_ssl",
+            "driu-bn-ssl = bob.ip.binseg.configs.models.driu_bn_ssl",
+            "driu-od = bob.ip.binseg.configs.models.driu_od",
             "hed = bob.ip.binseg.configs.models.hed",
             "m2unet = bob.ip.binseg.configs.models.m2unet",
-            "m2unet-ssl = bob.ip.binseg.configs.models.m2unetssl",
+            "m2unet-ssl = bob.ip.binseg.configs.models.m2unet_ssl",
             "unet = bob.ip.binseg.configs.models.unet",
             "resunet = bob.ip.binseg.configs.models.resunet",
 
@@ -57,60 +57,60 @@ setup(
             "csv-dataset-example = bob.ip.binseg.configs.datasets.csv",
             "folder-dataset-example = bob.ip.binseg.configs.datasets.folder",
 
-            # drive dataset (numbers represent target resolution)
+            # drive dataset
             "drive = bob.ip.binseg.configs.datasets.drive",
-            "covd-drive = bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544",
-            "covd-drive-ssl = bob.ip.binseg.configs.datasets.starechasedb1iostarhrf544ssldrive",
-            "drive-test = bob.ip.binseg.configs.datasets.drivetest",
+            "covd-drive = bob.ip.binseg.configs.datasets.covd_drive",
+            "covd-drive-ssl = bob.ip.binseg.configs.datasets.covd_drive_ssl",
+            "drive-test = bob.ip.binseg.configs.datasets.drive_test",
 
-            # stare dataset (numbers represent target resolution)
+            # stare dataset
             "stare = bob.ip.binseg.configs.datasets.stare",
-            "covd-stare = bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608",
-            "covd-stare-ssl = bob.ip.binseg.configs.datasets.drivechasedb1iostarhrf608sslstare",
-            "stare-test = bob.ip.binseg.configs.datasets.staretest",
+            "covd-stare = bob.ip.binseg.configs.datasets.covd_stare",
+            "covd-stare-ssl = bob.ip.binseg.configs.datasets.covd_stare_ssl",
+            "stare-test = bob.ip.binseg.configs.datasets.stare_test",
 
-            # iostar vessel (numbers represent target resolution)
-            "iostar-vessel = bob.ip.binseg.configs.datasets.iostarvessel",
-            "covd-iostar-vessel = bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024",
-            "covd-iostar-vessel-ssl = bob.ip.binseg.configs.datasets.drivestarechasedb1hrf1024ssliostar",
-            "iostar-vessel-test = bob.ip.binseg.configs.datasets.iostarvesseltest",
+            # iostar vessel
+            "iostar-vessel = bob.ip.binseg.configs.datasets.iostar_vessel",
+            "covd-iostar-vessel = bob.ip.binseg.configs.datasets.covd_iostar_vessel",
+            "covd-iostar-vessel-ssl = bob.ip.binseg.configs.datasets.covd_iostar_vessel_ssl",
+            "iostar-vessel-test = bob.ip.binseg.configs.datasets.iostar_vessel_test",
 
             # iostar optic disc
-            "iostarod = bob.ip.binseg.configs.datasets.iostarod",
-            "iostarodtest = bob.ip.binseg.configs.datasets.iostarodtest",
+            "iostar-optic-disc = bob.ip.binseg.configs.datasets.iostar_od",
+            "iostar-optic-disc-test = bob.ip.binseg.configs.datasets.iostar_od_test",
 
             # hrf (numbers represent target resolution)
-            "hrf = bob.ip.binseg.configs.datasets.hrf1168",
-            "covd-hrf = bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168",
-            "covd-hrf-ssl = bob.ip.binseg.configs.datasets.drivestarechasedb1iostar1168sslhrf",
-            "hrftest-test = bob.ip.binseg.configs.datasets.hrftest",
+            "hrf = bob.ip.binseg.configs.datasets.hrf_1168",
+            "covd-hrf = bob.ip.binseg.configs.datasets.covd_hrf",
+            "covd-hrf-ssl = bob.ip.binseg.configs.datasets.covd_hrf_ssl",
+            "hrftest-test = bob.ip.binseg.configs.datasets.hrf_1168_test",
 
-            # chase-db1 (numbers represent target resolution)
+            # chase-db1
             "chasedb1 = bob.ip.binseg.configs.datasets.chasedb1",
-            "covd-chasedb1 = bob.ip.binseg.configs.datasets.drivestareiostarhrf960",
-            "covd-chasedb1-ssl = bob.ip.binseg.configs.datasets.drivestareiostarhrf960sslchase",
-            "chasedb1-test = bob.ip.binseg.configs.datasets.chasedb1test",
+            "covd-chasedb1 = bob.ip.binseg.configs.datasets.covd_chasedb1",
+            "covd-chasedb1-ssl = bob.ip.binseg.configs.datasets.covd_chasedb1_ssl",
+            "chasedb1-test = bob.ip.binseg.configs.datasets.chasedb1_test",
 
             # drionsdb
             "drionsdb = bob.ip.binseg.configs.datasets.drionsdb",
-            "drionsdb-test = bob.ip.binseg.configs.datasets.drionsdbtest",
+            "drionsdb-test = bob.ip.binseg.configs.datasets.drionsdb_test",
 
             # drishtigs
-            "drishtigs1-od = bob.ip.binseg.configs.datasets.dristhigs1od",
-            "drishtigs1-od-test = bob.ip.binseg.configs.datasets.dristhigs1odtest",
-            "drishtigs1-cup = bob.ip.binseg.configs.datasets.dristhigs1cup",
-            "drishtigs1-cup-test = bob.ip.binseg.configs.datasets.dristhigs1cuptest",
+            "drishtigs1-od = bob.ip.binseg.configs.datasets.dristhigs1_od",
+            "drishtigs1-od-test = bob.ip.binseg.configs.datasets.dristhigs1_od_test",
+            "drishtigs1-cup = bob.ip.binseg.configs.datasets.dristhigs1_cup",
+            "drishtigs1-cup-test = bob.ip.binseg.configs.datasets.dristhigs1_cup_test",
             # refuge
-            "refuge-cup = bob.ip.binseg.configs.datasets.refugecup",
-            "refuge-cup-test = bob.ip.binseg.configs.datasets.refugecuptest",
-            "refuge-od = bob.ip.binseg.configs.datasets.refugeod",
-            "refuge-od-test = bob.ip.binseg.configs.datasets.refugeodtest",
+            "refuge-cup = bob.ip.binseg.configs.datasets.refuge_cup",
+            "refuge-cup-test = bob.ip.binseg.configs.datasets.refuge_cup_test",
+            "refuge-od = bob.ip.binseg.configs.datasets.refuge_od",
+            "refuge-od-test = bob.ip.binseg.configs.datasets.refuge_od_test",
 
             # rim one r3
-            "rimoner3-cup = bob.ip.binseg.configs.datasets.rimoner3cup",
-            "rimoner3-cup-test = bob.ip.binseg.configs.datasets.rimoner3cuptest",
-            "rimoner3-od = bob.ip.binseg.configs.datasets.rimoner3od",
-            "rimoner3-od-test = bob.ip.binseg.configs.datasets.rimoner3odtest",
+            "rimoner3-cup = bob.ip.binseg.configs.datasets.rimoner3_cup",
+            "rimoner3-cup-test = bob.ip.binseg.configs.datasets.rimoner3_cup_test",
+            "rimoner3-od = bob.ip.binseg.configs.datasets.rimoner3_od",
+            "rimoner3-od-test = bob.ip.binseg.configs.datasets.rimoner3_od_test",
         ],
     },
     # check classifiers, add and remove as you see fit
-- 
GitLab