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: object

Initialize 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: object

Initialize 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)