wrap_dataset_for_transforms_v2¶
- torchvision.datasets.wrap_dataset_for_transforms_v2(dataset, target_keys=None)[源代码]¶
为配合
torchvision.transforms.v2的使用而封装torchvision.dataset。示例
>>> dataset = torchvision.datasets.CocoDetection(...) >>> dataset = wrap_dataset_for_transforms_v2(dataset)
注意
目前,仅支持最流行的数据集。此外,该封装器仅支持
torchvision.transforms.v2完全支持的数据集配置。如果您遇到要求您为所需的数据集或配置向torchvision提出 issue 的错误,请这样做。数据集样本根据以下描述进行封装。
特殊情况
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坐标格式,并封装到BoundingBoxestv_tensor 中。Kitti: 该封装器返回一个列表字典,而不是返回目标作为字典列表。此外,添加了键值对"boxes"和"labels",并封装相应torchvision.tv_tensors中的数据。原始键保留。如果省略target_keys,则仅返回"boxes"和"labels"的值。OxfordIIITPet:target_type="segmentation"的目标被封装到Masktv_tensor 中。Cityscapes:target_type="semantic"的目标被封装到Masktv_tensor 中。target_type="instance"的目标被 **替换** 为一个字典,其中包含键值对"masks"(作为Masktv_tensor)和"labels"。WIDERFace: 目标中键"bbox"的值被转换为XYXY坐标格式,并封装到BoundingBoxestv_tensor 中。
图像分类数据集
对于图像分类数据集,该封装器不起任何作用,因为它们已经得到了
torchvision.transforms的完全支持,因此对于torchvision.transforms.v2也不需要任何更改。分割数据集
分割数据集,例如
VOCSegmentation,返回一个由PIL.Image.Image组成的二元组。该封装器保持图像不变(第一个元素),同时将分割掩码封装到Mask(第二个元素)中。视频分类数据集
视频分类数据集,例如
Kinetics,返回一个三元组,其中包含视频和音频的torch.Tensor和标签(int)。该封装器将视频封装到Video中,而保持其他元素不变。注意
仅支持使用
output_format="TCHW"构建的数据集,因为output_format="THWC"的替代格式不受torchvision.transforms.v2支持。- 参数:
dataset – 要封装以兼容 transforms v2 的数据集实例。
target_keys – 当目标是字典时要返回的目标键。如果为
None(默认),则选定的键特定于数据集。如果为"all",则返回整个目标。也可以是字符串集合,用于精细访问。目前仅支持CocoDetection、VOCDetection、Kitti和WIDERFace。请参阅上文了解详情。
使用
wrap_dataset_for_transforms_v2的示例