dataset module
Armory Dataset Classes
- class dataset.ArmoryDataset(dataset, adapter: Callable[[...], Mapping[str, Any]])
Bases:
DatasetWrapper around a PyTorch dataset to apply an adapter to all samples obtained from the dataset.
Example:
from armory.dataset import ArmoryDataset def rename_fields(sample): # Rename the 'data' field in the sample to 'image' sample["image"] = sample.pop("data") return sample # assuming `dataset` has been defined elsewhere renamed_dataset = ArmoryDataset(dataset, rename_fields)
- dataset.DatasetOutputAdapter
An adapter for dataset samples. The output must be a dictionary of column names to values.
alias of
Callable[[…],Mapping[str,Any]]
- class dataset.ImageClassificationDataLoader(*args, dim: ImageDimensions, image_key: str, label_key: str, scale: Scale, **kwargs)
Bases:
ShuffleableDataLoaderData loader for image classification datasets.
Example:
import armory.data from armory.dataset import ImageClassificationDataLoader # assuming `dataset` has been defined elsewhere dataloader = ImageClassificationDataLoader( dataset, dim=armory.data.ImageDimensions.CHW, image_key="image", label_key="label", scale=armory.data.Scale(dtype=armory.data.DataType.FLOAT, max=1.0), )
- batch_size: int | None
- dataset: Dataset[T_co]
- drop_last: bool
- num_workers: int
- pin_memory: bool
- pin_memory_device: str
- prefetch_factor: int | None
- sampler: Sampler | Iterable
- timeout: float
- class dataset.ObjectDetectionDataLoader(*args, boxes_key: str, dim: ImageDimensions, format: BBoxFormat, image_key: str, labels_key: str, objects_key: str, scale: Scale, **kwargs)
Bases:
ShuffleableDataLoaderData loader for object detection datasets.
Example:
import armory.data from armory.dataset import ObjectDetectionDataLoader # assuming `dataset` has been defined elsewhere dataloader = ObjectDetectionDataLoader( dataset, boxes_key="boxes", dim=armory.data.ImageDimensions.HWC, format=armory.data.BBoxFormat.XYWH, image_key="image", labels_key="category", objects_key="objects", scale=armory.data.Scale(dtype=armory.data.DataType.FLOAT, max=1.0), )
- batch_size: int | None
- dataset: Dataset[T_co]
- drop_last: bool
- num_workers: int
- pin_memory: bool
- pin_memory_device: str
- prefetch_factor: int | None
- sampler: Sampler | Iterable
- timeout: float
- class dataset.ShuffleableDataLoader(*args, seed: int | None = None, shuffle: bool = False, **kwargs)
Bases:
DataLoaderExtension to the PyTorch data loader that enables determinstic shuffling when the data loader is used multiple times.
Example:
from armory.dataset import ShuffleableDataLoader # assuming `dataset` has been defined elsewhere dataloader = ShuffleableDataLoader( dataset, shuffle=True, seed=8675309, ) batch1 = next(iter(dataloader)) batch2 = next(iter(dataloader)) assert batch1 == batch2
- batch_size: int | None
- dataset: Dataset[T_co]
- drop_last: bool
- num_workers: int
- pin_memory: bool
- pin_memory_device: str
- prefetch_factor: int | None
- sampler: Sampler | Iterable
- timeout: float
- class dataset.TupleDataset(dataset, keys: Iterable[str])
Bases:
ArmoryDatasetDataset wrapper with a pre-applied adapter to adapt tuples to map-like samples.
Example:
from armory.dataset import TupleDataset # assuming `dataset` has been defined elsewhere print(dataset[0]) # output: [[0, 0, 0], [0, 0, 0]], [5] tuple_ds = TupleDataset(dataset, ("image", "label")) print(tuple_ds[0]) # output: {'image': [[0, 0, 0], [0, 0, 0]], 'label': [5]}