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 中。
图像分类数据集
对于图像分类数据集,此包装器是一个空操作(no-op),因为它们已经完全受
torchvision.transforms
支持,因此torchvision.transforms.v2
无需进行任何更改。分割数据集
分割数据集,例如
VOCSegmentation
,返回一个包含两个PIL.Image.Image
的二元组。此包装器将图像(第一个元素)保持不变,同时将分割掩码(第二个元素)包装到Mask
中。视频分类数据集
视频分类数据集,例如
Kinetics
,返回一个三元组,其中包含用于视频和音频的torch.Tensor
以及作为标签的int
。此包装器将视频包装到Video
中,同时保持其他元素不变。注意
仅支持使用
output_format="TCHW"
构造的数据集,因为torchvision.transforms.v2
不支持替代的output_format="THWC"
。- 参数:
dataset – 需要包装的数据集实例,以便与 transforms v2 兼容。
target_keys – 如果目标是一个字典,则指定要返回的目标键。如果为
None
(默认),则选择的键是数据集特定的。如果为"all"
,则返回完整的目标。也可以是字符串集合,用于精细访问。目前仅支持CocoDetection
、VOCDetection
、Kitti
和WIDERFace
。详情请参见上文。
使用
wrap_dataset_for_transforms_v2
的示例