RandomResizedCrop¶
- class torchvision.transforms.v2.RandomResizedCrop(size: Union[int, Sequence[int]], scale: Tuple[float, float] = (0.08, 1.0), ratio: Tuple[float, float] = (0.75, 1.3333333333333333), interpolation: Union[InterpolationMode,int] = InterpolationMode.BILINEAR, antialias: Optional[bool] = True)[source]¶
随机裁剪输入的一部分并将其调整为给定大小。
如果输入是
torch.Tensor
或TVTensor
(例如Image
、Video
、BoundingBoxes
等),它可以包含任意数量的前导批次维度。例如,图像可以具有[..., C, H, W]
形状。边界框可以具有[..., 4]
形状。对原始输入进行裁剪:裁剪区域具有随机的面积 (H * W) 和随机的纵横比。最终将此裁剪区域调整为给定大小。这常用于训练 Inception 网络。
- 参数:
size (int 或 sequence) –
预期裁剪区域的输出大小,适用于每个边缘。如果 size 是一个 int 而不是像 (h, w) 这样的 sequence,则会得到一个正方形输出大小
(size, size)
。如果提供长度为 1 的 sequence,则将其解释为 (size[0], size[0])。注意
在 torchscript 模式下,不支持将 size 作为单个 int,请使用长度为 1 的 sequence:
[size, ]
。scale (tuple of python:float, optional) – 指定裁剪随机区域的下限和上限,在调整大小之前。比例是相对于原始图像面积定义的。
ratio (tuple of python:float, optional) – 裁剪随机纵横比的下限和上限,在调整大小之前。
interpolation (InterpolationMode, optional) – 期望的插值模式 enum,由
torchvision.transforms.InterpolationMode
定义。默认为InterpolationMode.BILINEAR
。如果输入是 Tensor,则仅支持InterpolationMode.NEAREST
、InterpolationMode.NEAREST_EXACT
、InterpolationMode.BILINEAR
和InterpolationMode.BICUBIC
。也接受相应的 Pillow 整数常量,例如PIL.Image.BILINEAR
。antialias (bool, optional) –
是否应用抗锯齿。它仅影响具有双线性或双三次模式的 tensor,否则会被忽略:对于 PIL 图像,在双线性或双三次模式下始终应用抗锯齿;对于其他模式(对于 PIL 图像和 tensor),抗锯齿没有意义,此参数被忽略。可能的值为
True
(默认):将对双线性或双三次模式应用抗锯齿。其他模式不受影响。这可能就是您想要使用的值。False
:不会对任何模式下的 tensor 应用抗锯齿。PIL 图像在双线性或双三次模式下仍然应用抗锯齿,因为 PIL 不支持不抗锯齿。None
:对于 tensor 等同于False
,对于 PIL 图像等同于True
。此值因历史原因存在,除非您非常清楚自己在做什么,否则可能不应该使用它。
在 v0.17 中,默认值从
None
更改为True
,以使 PIL 和 Tensor 后端保持一致。
使用
RandomResizedCrop
的示例- static get_params(img: Tensor, scale: List[float], ratio: List[float]) Tuple[int, int, int, int] [source]¶
获取随机大小裁剪的
crop
参数。