Shortcuts

TenCrop

class torchvision.transforms.TenCrop(size, vertical_flip=False)[source]

将给定的图像裁剪为四个角落和中央裁剪部分,以及这些部分的翻转版本(默认使用水平翻转)。 如果图像是torch张量,则期望其具有[…, H, W]形状,其中…表示任意数量的前导维度。

注意

此转换返回一组图像的元组,并且您的数据集返回的输入和目标数量可能不匹配。请参阅以下示例以了解如何处理这种情况。

Parameters:
  • size (序列整数) – 期望的裁剪输出大小。如果 size 是一个整数而不是像 (h, w) 这样的序列,则会生成一个正方形裁剪 (size, size)。如果提供一个长度为 1 的序列,它将被解释为 (size[0], size[0])。

  • vertical_flip (bool) – 使用垂直翻转而不是水平翻转

示例

>>> transform = Compose([
>>>    TenCrop(size), # this is a tuple of PIL Images
>>>    Lambda(lambda crops: torch.stack([PILToTensor()(crop) for crop in crops])) # returns a 4D tensor
>>> ])
>>> #In your test loop you can do the following:
>>> input, target = batch # input is a 5d tensor, target is 2d
>>> bs, ncrops, c, h, w = input.size()
>>> result = model(input.view(-1, c, h, w)) # fuse batch size and ncrops
>>> result_avg = result.view(bs, ncrops, -1).mean(1) # avg over crops
forward(img)[source]
Parameters:

img (PIL ImageTensor) – 需要裁剪的图像。

Returns:

包含10张图像的元组。图像可以是PIL图像或张量