dataloader¶
Implementation of two dataloader, one for the training and the other one for inference.
Both are based on 3D patch samplers allowing a less greedy memory consumption.
-
class
segmentation_rt.dl.dataloader.dataloader.DatasetPatch(root, structures, ratio=0.9, patch_size=(384, 384, 6), batch_size=1, num_worker=2, samples_per_volume=20, max_length=300)¶ Bases:
objectInitialize a dataset suited for patch-based training. Patches are sampled with labeled voxels at their center.
- param str root
root folder.
- param list[str] structures
list of structures..
- param float ratio
splitting ratio.
- param (int, int, int) patch_size
Tuple of integers (width, height, depth).
- param int batch_size
batch size.
- param int num_worker
number of subprocesses to use for data loading..
- param int samples_per_volume
number of patches to extract from each volume.
- param int max_length
maximum number of patches that can be stored in the queue.
-
get_loaders()¶ Return training and validation
data.DataLoader.- Returns
training and validation DataLoader.
- Return type
(
data.DataLoader,data.DataLoader)
-
class
segmentation_rt.dl.dataloader.dataloader.DatasetSingle(root, structures, patch_size=(512, 512, 6))¶ Bases:
objectInitialize a dataset suited inference extracting patches across a whole volume.
- param str root
root folder containing CT dicom files or a path to a nii file.
- param list[str] structures
list of structures to label the output.
- param (int, int, int) patch_size
Tuple of integers (width, height, depth).
-
segmentation_rt.dl.dataloader.dataloader.queuing(training_subjects, validation_subjects, patch_size, n, samples_per_volume=10, max_length=200, num_workers=2)¶ Queue used for stochastic patch-based training.
See
tio.data.Queue.- Parameters
n (int) – # structures,
training_subjects (
tio.SubjectsDataset) – train dataset.validation_subjects (
tio.SubjectsDataset) – validation dataset.patch_size ((int, int, int)) – Tuple of integers (width, height, depth).
samples_per_volume (int) – number of patches to extract from each volume.
max_length (int) – maximum number of patches that can be stored in the queue.
num_workers (int) – number of subprocesses to use for data loading.
- Returns
training and validation queue.
- Return type
(
tio.data.Queue,tio.data.Queue)
-
segmentation_rt.dl.dataloader.dataloader.random_split(subjects, ratio=0.8)¶ Randomly split a dataset into non-overlapping new datasets according to the ratio.
- Parameters
subjects (
tio.SubjectsDataset) – dataset to be split.ratio (float) – splitting ratio.
- Returns
training and validation datasets.
- Return type
(
tio.SubjectsDataset,tio.SubjectsDataset)