调整大小¶
- class torchvision.transforms.v2.Resize(size: Optional[Union[int, Sequence[int]], interpolation: Union[InterpolationMode, int] = InterpolationMode.BILINEAR, max_size: Optional[int] = None, antialias: Optional[bool] = True)[源代码]¶
将输入调整为指定的大小。
如果输入是
torch.Tensor
或TVTensor
(例如Image
、Video
、BoundingBoxes
等),它可以具有任意数量的前导批次维度。例如,图像的形状可以是[..., C, H, W]
。边界框的形状可以是[..., 4]
。- 参数:
size (sequence, int, or None) –
所需的输出大小。
如果 size 是 (h, w) 这样的序列,则输出大小将与其匹配。
如果 size 是一个整数,图像的较短边将匹配此数字。也就是说,如果高 > 宽,则图像将按比例缩放到 (size * height / width, size)。
如果 size 为 None,则输出形状由
max_size
参数确定。
注意
在 torchscript 模式下,不支持将 size 作为单个整数,请使用长度为 1 的序列:
[size, ]
。interpolation (InterpolationMode, optional) – 由
torchvision.transforms.InterpolationMode
定义的所需插值枚举。默认为InterpolationMode.BILINEAR
。如果输入是 Tensor,则仅支持InterpolationMode.NEAREST
、InterpolationMode.NEAREST_EXACT
、InterpolationMode.BILINEAR
和InterpolationMode.BICUBIC
。相应的 Pillow 整数常量,例如PIL.Image.BILINEAR
也可以接受。max_size (int, optional) –
调整大小后的图像较长边的最大允许值。
如果
size
是一个整数:如果图像较长边在根据size
调整大小时大于max_size
,则size
将被覆盖,以便较长边等于max_size
。结果是,较短边可能短于size
。这仅在size
是整数(或在 torchscript 模式下为长度为 1 的序列)时才支持。如果
size
为 None:图像的较长边将匹配 max_size。也就是说,如果高 > 宽,则图像将按比例缩放到 (max_size, max_size * width / height)。
当
size
是序列时,应将其保留为None
(默认)。antialias (bool, 可选) –
是否应用抗锯齿。它仅影响 bilinear 或 bicubic 模式下的**张量**,否则将被忽略:在 PIL 图像上, bilinear 或 bicubic 模式始终应用抗锯齿;在其他模式(对于 PIL 图像和张量)下,抗锯齿没有意义,此参数将被忽略。可能的值为
True
(默认):将对双线性或双三次模式应用抗锯齿。其他模式不受影响。这可能是您想要使用的。False
:将不对任何模式下的张量应用抗锯齿。PIL 图像在双线性或双三次模式下仍然进行抗锯齿处理,因为 PIL 不支持无抗锯齿。None
:对于张量等同于False
,对于 PIL 图像等同于True
。此值存在于遗留原因,除非您真的知道自己在做什么,否则可能不希望使用它。
默认值在 v0.17 中从
None
更改为True
,以使 PIL 和 Tensor 后端保持一致。
Resize
的使用示例