当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PyTorch TenCrop用法及代码示例


本文简要介绍python语言中 torchvision.transforms.TenCrop 的用法。

用法:

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

参数

  • size(序列或者int) -裁剪所需的输出大小。如果 size 是 int 而不是像 (h, w) 这样的序列,则会进行方形裁剪 (size, size)。如果提供长度为 1 的序列,它将被解释为 (size[0], size[0])。

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

将给定的图像裁剪成四个角,中央裁剪加上这些的翻转版本(默认使用水平翻转)。如果图像是 Torch Tensor,它应该具有 […, H, W] 形状,其中… 表示任意数量的前导维度

注意

此转换返回图像元组,并且您的数据集返回的输入和目标数量可能不匹配。有关如何处理此问题的示例,请参见下文。

示例

>>> transform = Compose([
>>>    TenCrop(size), # this is a list of PIL Images
>>>    Lambda(lambda crops: torch.stack([ToTensor()(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

相关用法


注:本文由纯净天空筛选整理自pytorch.org大神的英文原创作品 torchvision.transforms.TenCrop。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。