Dataset¶
SubjectsDataset
¶
-
class
torchio.data.
SubjectsDataset
(subjects: Sequence[torchio.data.subject.Subject], transform: Optional[Callable] = None, load_getitem: bool = True)[source]¶ Bases:
Generic
[torch.utils.data.dataset.T_co
]Base TorchIO dataset.
Reader of 3D medical images that directly inherits from the PyTorch
Dataset
. It can be used with a PyTorchDataLoader
for efficient loading and augmentation. It receives a list of instances ofSubject
and an optional transform applied to the volumes after loading.- Parameters
Example
>>> import torchio as tio >>> subject_a = tio.Subject( ... t1=tio.ScalarImage('t1.nrrd',), ... t2=tio.ScalarImage('t2.mha',), ... label=tio.LabelMap('t1_seg.nii.gz'), ... age=31, ... name='Fernando Perez', ... ) >>> subject_b = tio.Subject( ... t1=tio.ScalarImage('colin27_t1_tal_lin.minc',), ... t2=tio.ScalarImage('colin27_t2_tal_lin_dicom',), ... label=tio.LabelMap('colin27_seg1.nii.gz'), ... age=56, ... name='Colin Holmes', ... ) >>> subjects_list = [subject_a, subject_b] >>> transforms = [ ... tio.RescaleIntensity((0, 1)), ... tio.RandomAffine(), ... ] >>> transform = tio.Compose(transforms) >>> subjects_dataset = tio.SubjectsDataset(subjects_list, transform=transform) >>> subject = subjects_dataset[0]
Tip
To quickly iterate over the subjects without loading the images, use
dry_iter()
.-
dry_iter
()[source]¶ Return the internal list of subjects.
This can be used to iterate over the subjects without loading the data and applying any transforms:
>>> names = [subject.name for subject in dataset.dry_iter()]
-
set_transform
(transform: Optional[Callable]) → None[source]¶ Set the
transform
attribute.- Parameters
transform – Callable object, typically an subclass of
torchio.transforms.Transform
.