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
提交 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
坐标格式,并封装到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
。该包装器将视频封装为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
的示例