FiveCrop¶
- class torchvision.transforms.v2.FiveCrop(size: Union[int, Sequence[int]])[source]¶
将图像或视频裁剪为四个角和中心裁剪。
如果输入是
torch.Tensor或Image或视频,它可以有任意数量的前导批次维度。例如,图像可以有[..., C, H, W]形状。注意
此转换返回一组图像的元组,并且您的数据集返回的输入和目标数量可能不匹配。请参阅以下示例以了解如何处理这种情况。
- Parameters:
size (序列或整数) – 期望的裁剪输出大小。如果 size 是一个
整数而不是像 (h, w) 这样的序列,则会生成一个大小为 (size, size) 的正方形裁剪。 如果提供一个长度为 1 的序列,它将被解释为 (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的示例: