快捷方式

FiveCrop

torchvision.transforms.v2.FiveCrop(size: Union[int, Sequence[int]])[源]

将图像或视频裁剪为四个角和中心部分。

如果输入是 torch.TensorImageVideo,它可以包含任意数量的前导批次维度。例如,图像可以具有 [..., C, H, W] 的形状。

注意

此变换返回一个图像元组,这可能与您的 Dataset 返回的输入和目标数量不匹配。请参阅下面的示例了解如何处理此问题。

参数:

size (sequenceint) – 期望的裁剪输出尺寸。如果 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 的示例

变换示意图

变换示意图
transform(inpt: Any, params: Dict[str, Any]) Any[源]

用于覆盖以实现自定义变换的方法。

请参阅 How to write your own v2 transforms

文档

查阅 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深入教程

查看教程

资源

查找开发资源并获得问题解答

查看资源