RandomResizedCrop¶
- class torchvision.transforms.RandomResizedCrop(size, scale=(0.08, 1.0), ratio=(0.75, 1.3333333333333333), interpolation=InterpolationMode.BILINEAR, antialias: Optional[bool] = True)[source]¶
裁剪图像的随机部分并将其缩放到给定尺寸。
如果图像是 torch Tensor,则其形状应为 […, H, W],其中 … 表示任意数量的前导维度
对原始图像进行裁剪:裁剪区域具有随机面积 (H * W) 和随机纵横比。最终将此裁剪区域缩放到给定尺寸。这通常用于训练 Inception 网络。
- 参数:
size (int 或 sequence) –
裁剪后期望的输出尺寸,适用于每个边缘。如果 size 是 int 而不是 sequence(如 (h, w)),则会生成一个方形输出尺寸
(size, size)
。如果提供长度为 1 的 sequence,则将其解释为 (size[0], size[0])。注意
在 torchscript 模式下,不支持将 size 作为单个 int,请使用长度为 1 的 sequence:
[size, ]
。scale (python:float 元组) – 指定裁剪前随机区域的下限和上限。缩放比例是相对于原始图像的面积定义的。
ratio (python:float 元组) – 指定裁剪前随机纵横比的下限和上限。
interpolation (InterpolationMode) – 由
torchvision.transforms.InterpolationMode
定义的期望插值模式枚举。默认为InterpolationMode.BILINEAR
。如果输入是 Tensor,只支持InterpolationMode.NEAREST
、InterpolationMode.NEAREST_EXACT
、InterpolationMode.BILINEAR
和InterpolationMode.BICUBIC
。也接受相应的 Pillow 整数常量,例如PIL.Image.BILINEAR
。antialias (bool, 可选) –
是否应用抗锯齿。它只影响双线性或双三次模式的 tensors,否则将被忽略:对于 PIL 图像,抗锯齿始终应用于双线性或双三次模式;对于其他模式(PIL 图像和 tensors),抗锯齿没有意义,此参数将被忽略。可能的值有
True
(默认): 将对抗锯齿应用于双线性或双三次模式。其他模式不受影响。这可能是您想要使用的。False
: 将不对任何模式下的 tensors 应用抗锯齿。PIL 图像在双线性或双三次模式下仍然会应用抗锯齿,因为 PIL 不支持无抗锯齿。None
: 对于 tensors 等同于False
,对于 PIL 图像等同于True
。此值是出于历史原因而存在,除非您非常清楚自己在做什么,否则可能不应使用它。
为了使 PIL 和 Tensor 后端保持一致,在 v0.17 中,默认值从
None
更改为True
。
使用
RandomResizedCrop
的示例