CityscapesDataModule#
- class torch_uncertainty.datamodules.segmentation.CityscapesDataModule(root, batch_size, eval_batch_size=None, crop_size=1024, eval_size=(1024, 2048), train_transform=None, test_transform=None, basic_augment=True, val_split=None, num_workers=1, pin_memory=True, persistent_workers=True)[source]#
DataModule for the Cityscapes dataset.
- Parameters:
root (
str|Path) – Root directory of the datasets.batch_size (
int) – Number of samples per batch during training.eval_batch_size (
int|None) – Number of samples per batch during evaluation (val and test). Set tobatch_sizeifNone. Defaults toNone.crop_size (
Union[int,tuple[int,int]]) – Desired input image and segmentation mask sizes during training. Ifcrop_sizeis an int instead of sequence like \((H, W)\), a square crop \((\text{size},\text{size})\) is made. If provided a sequence of length \(1\), it will be interpreted as \((\text{size[0]},\text{size[1]})\). Has to be provided iftrain_transformis not provided. Otherwise has no effect. Defaults to1024.eval_size (
Union[int,tuple[int,int]]) – Desired input image and segmentation mask sizes during evaluation. If size is an int, smaller edge of the images will be matched to this number, i.e., \(\text{height}>\text{width}\), then image will be rescaled to \((\text{size}\times\text{height}/\text{width},\text{size})\). Has to be provided iftest_transformis not provided. Otherwise has no effect. Defaults to(1024,2048).train_transform (
Module|None) – Custom training transform. Defaults toNone. If not provided, a default transform is used.test_transform (
Module|None) – Custom test transform. Defaults toNone. If not provided, a default transform is used.basic_augment (
bool) – Whether to apply base augmentations. Defaults toTrue. Only used iftrain_transformis not provided.val_split (
float|None) – Share of training samples to use for validation. Defaults toNone.num_workers (
int) – Number of dataloaders to use. Defaults to1.pin_memory (
bool) – Whether to pin memory. Defaults toTrue.persistent_workers (
bool) – Whether to use persistent workers. Defaults toTrue.
Note
By default this datamodule injects the following transforms into the training and validation/test datasets:
Training transforms:
from torchvision.transforms import v2 v2.Compose( [ v2.ToImage(), RandomRescale(min_scale=0.5, max_scale=2.0, antialias=True), v2.RandomCrop(size=crop_size, pad_if_needed=True), v2.ColorJitter(brightness=0.5, contrast=0.5, saturation=0.5), v2.RandomHorizontalFlip(), v2.ToDtype( { tv_tensors.Image: torch.float32, tv_tensors.Mask: torch.int64, "others": None, }, scale=True, ), v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ] )
Validation/Test transforms:
from torchvision.transforms import v2 v2.Compose( [ v2.ToImage(), v2.Resize(size=eval_size, antialias=True), v2.ToDtype( { tv_tensors.Image: torch.float32, tv_tensors.Mask: torch.int64, "others": None, }, scale=True, ), v2.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225]), ] )
This behavior can be modified by setting up
train_transformandtest_transformat initialization.