wrap_dataset_for_transforms_v2¶
- torchvision.datasets.wrap_dataset_for_transforms_v2(dataset, target_keys=None)[原始碼]¶
包裝
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"
會被加入到 target 中,並將資料包裝在對應的torchvision.tv_tensors
中。 原始的鍵會被保留。 如果省略target_keys
,則僅傳回"boxes"
和"labels"
的值。CelebA
:target_type="bbox"
的 target 會被轉換為XYXY
座標格式,並包裝到BoundingBoxes
tv_tensor 中。Kitti
: wrapper 不會將 target 作為字典列表傳回,而是傳回一個列表的字典。 此外,鍵值對"boxes"
和"labels"
會被加入,並將資料包裝在對應的torchvision.tv_tensors
中。 原始的鍵會被保留。 如果省略target_keys
,則僅傳回"boxes"
和"labels"
的值。OxfordIIITPet
:target_type="segmentation"
的 target 會被包裝到Mask
tv_tensor 中。Cityscapes
:target_type="semantic"
的 target 會被包裝到Mask
tv_tensor 中。target_type="instance"
的 target 會被替換為一個字典,其中包含鍵值對"masks"
(作為Mask
tv_tensor) 和"labels"
。WIDERFace
: target 中鍵"bbox"
的值會被轉換為XYXY
座標格式,並包裝到BoundingBoxes
tv_tensor 中。
圖片分類資料集
此 wrapper 對於圖片分類資料集來說是個空操作 (no-op),因為它們已經完全被
torchvision.transforms
支援,因此torchvision.transforms.v2
不需要任何變更。語意分割資料集
語意分割資料集,例如
VOCSegmentation
,傳回一個由兩個PIL.Image.Image
組成的元組。 此 wrapper 會保持影像原樣 (第一個項目),同時將分割遮罩包裝到Mask
(第二個項目) 中。影片分類資料集
影片分類資料集,例如
Kinetics
,傳回一個包含影片和音訊的torch.Tensor
和一個作為標籤的int
的三元組。 此 wrapper 將影片包裝到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
的範例