FiveCrop¶
- 類 torchvision.transforms.v2.FiveCrop(size: Union[int, Sequence[int]])[源]¶
將影像或影片裁剪為四個角和中心部分。
如果輸入是
torch.Tensor、Image或Video,它可以包含任意數量的前導批次維度。例如,影像可以具有[..., C, H, W]的形狀。注意
此變換返回一個影像元組,這可能與您的 Dataset 返回的輸入和目標數量不匹配。請參閱下面的示例瞭解如何處理此問題。
- 引數:
size (sequence 或 int) – 期望的裁剪輸出尺寸。如果 size 是
int而不是像 (h, w) 這樣的 sequence,則會進行 size 為 (size, size) 的方形裁剪。如果提供長度為 1 的 sequence,則將被解釋為 (size[0], size[0])。
示例
>>> class BatchMultiCrop(transforms.Transform): ... def forward(self, sample: Tuple[Tuple[Union[tv_tensors.Image, tv_tensors.Video], ...], int]): ... images_or_videos, labels = sample ... batch_size = len(images_or_videos) ... image_or_video = images_or_videos[0] ... images_or_videos = tv_tensors.wrap(torch.stack(images_or_videos), like=image_or_video) ... labels = torch.full((batch_size,), label, device=images_or_videos.device) ... return images_or_videos, labels ... >>> image = tv_tensors.Image(torch.rand(3, 256, 256)) >>> label = 3 >>> transform = transforms.Compose([transforms.FiveCrop(224), BatchMultiCrop()]) >>> images, labels = transform(image, label) >>> images.shape torch.Size([5, 3, 224, 224]) >>> labels tensor([3, 3, 3, 3, 3])
使用
FiveCrop的示例