class torchvision.datasets.OxfordIIITPet(root: Union[str, Path], split: str = 'trainval', target_types: Union[Sequence[str], str] = 'category', transforms: Optional[Callable] = None, transform: Optional[Callable] = None, target_transform: Optional[Callable] = None, download: bool = False)[source]

Oxford-IIIT Pet Dataset.

  • root (str or pathlib.Path) – Root directory of the dataset.

  • split (string, optional) – The dataset split, supports "trainval" (default) or "test".

  • target_types (string, sequence of strings, optional) –

    Types of target to use. Can be category (default) or segmentation. Can also be a list to output a tuple with all specified target types. The types represent:

    • category (int): Label for one of the 37 pet categories.

    • binary-category (int): Binary label for cat or dog.

    • segmentation (PIL image): Segmentation trimap of the image.

    If empty, None will be returned as target.

  • transform (callable, optional) – A function/transform that takes in a PIL image and returns a transformed version. E.g, transforms.RandomCrop.

  • target_transform (callable, optional) – A function/transform that takes in the target and transforms it.

  • download (bool, optional) – If True, downloads the dataset from the internet and puts it into root/oxford-iiit-pet. If dataset is already downloaded, it is not downloaded again.


__getitem__(idx: int) Tuple[Any, Any][source]

index (int) – Index


Sample and meta data, optionally transformed by the respective transforms.

Return type:



Access comprehensive developer documentation for PyTorch

View Docs


Get in-depth tutorials for beginners and advanced developers

View Tutorials


Find development resources and get your questions answered

View Resources