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座標格式,幷包裝到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 中。
影像分類資料集
對於影像分類資料集,此包裝器是一個空操作(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的示例