Shortcuts

wrap_dataset_for_transforms_v2

torchvision.datasets.wrap_dataset_for_transforms_v2(dataset, target_keys=None)[source]

torchvision.dataset包装以用于torchvision.transforms.v2

示例

>>> dataset = torchvision.datasets.CocoDetection(...)
>>> dataset = wrap_dataset_for_transforms_v2(dataset)

注意

目前,仅支持最流行的数据集。此外,包装器仅支持完全由torchvision.transforms.v2支持的数据集配置。如果您遇到提示您为所需的数据集或配置向torchvision提交问题的错误,请这样做。

数据集样本根据以下描述进行包装。

特殊情况:

  • CocoDetection: 该包装器不是将目标作为字典列表返回,而是返回一个列表字典。此外,键值对 "boxes"(以 XYXY 坐标格式)、"masks""labels" 被添加,并将数据包装在相应的 torchvision.tv_tensors 中。原始键被保留。如果省略 target_keys,则仅返回 "image_id""boxes""labels" 的值。

  • VOCDetection: 键值对 "boxes""labels" 被添加到目标中,并将数据包装在相应的 torchvision.tv_tensors 中。原始键被保留。如果省略 target_keys,则仅返回 "boxes""labels" 的值。

  • CelebA: 目标为 target_type="bbox" 被转换为 XYXY 坐标格式,并包装成 BoundingBoxes tv_tensor。

  • Kitti: 包装器不是将目标作为字典列表返回,而是返回一个列表的字典。此外,添加了键值对 "boxes""labels",并将数据包装在相应的 torchvision.tv_tensors 中。原始键被保留。如果省略 target_keys,则仅返回 "boxes""labels" 的值。

  • OxfordIIITPet: 目标为 target_type="segmentation" 的内容被包装成一个 Mask tv_tensor。

  • Cityscapes: 对于 target_type="semantic" 的目标,它被包装成一个 Mask tv_tensor。对于 target_type="instance" 的目标,它被替换为 一个包含键值对 "masks"(作为 Mask tv_tensor)和 "labels" 的字典。

  • WIDERFace: 目标中键"bbox"的值被转换为XYXY坐标格式,并包装成一个BoundingBoxes tv_tensor。

图像分类数据集

这个包装器对于图像分类数据集来说是一个无操作,因为它们已经被torchvision.transforms完全支持,因此对于torchvision.transforms.v2不需要任何更改。

分割数据集

分割数据集,例如 VOCSegmentation,返回一个由两个 PIL.Image.Image 组成的元组。这个包装器保持图像不变(第一项),同时将分割掩码包装成一个 Mask(第二项)。

视频分类数据集

视频分类数据集,例如 Kinetics,返回一个包含视频和音频的 torch.Tensor 以及一个作为标签的 int 的三元组。此包装器将视频包装为 视频,而其他项目保持不变。

注意

仅支持使用output_format="TCHW"构建的数据集,因为torchvision.transforms.v2不支持替代的output_format="THWC"

Parameters:
  • dataset – 用于包装数据集实例以与transforms v2兼容。

  • target_keys – 如果目标是字典,则返回的目标键。如果为None(默认值),则选择的键是特定于数据集的。如果为"all",则返回完整目标。也可以是字符串集合,用于细粒度访问。目前仅支持CocoDetectionVOCDetectionKittiWIDERFace。详情请参见上文。

使用 wrap_dataset_for_transforms_v2 的示例:

开始使用 transforms v2

Getting started with transforms v2

Transforms v2: 端到端目标检测/分割示例

Transforms v2: End-to-end object detection/segmentation example