Resize¶
- 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)[source]¶
将输入调整为给定大小。
如果输入是
torch.Tensor
或TVTensor
(例如Image
,Video
,BoundingBoxes
等),则它可以具有任意数量的前导批次维度。 例如,图像可以具有[..., C, H, W]
形状。 边界框可以具有[..., 4]
形状。- 参数:
size (sequence, int, 或 None) –
期望的输出大小。
如果 size 是像 (h, w) 这样的序列,则输出大小将与之匹配。
如果 size 是一个整数,则图像的较小边缘将与此数字匹配。即,如果高度 > 宽度,则图像将被重新缩放到 (size * height / width, size)。
如果 size 为 None,则输出形状由
max_size
参数确定。
注意
在 torchscript 模式下,不支持将 size 作为单个整数,请使用长度为 1 的序列:
[size, ]
。interpolation (InterpolationMode, 可选) – 期望的插值枚举,由
torchvision.transforms.InterpolationMode
定义。 默认值为InterpolationMode.BILINEAR
。 如果输入是 Tensor,则仅支持InterpolationMode.NEAREST
、InterpolationMode.NEAREST_EXACT
、InterpolationMode.BILINEAR
和InterpolationMode.BICUBIC
。 相应的 Pillow 整数常量,例如PIL.Image.BILINEAR
也被接受。max_size (int, 可选) –
调整大小后的图像的较长边缘允许的最大值。
如果
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, 可选) –
是否应用抗锯齿。 它仅影响具有双线性或双三次模式的张量,否则将被忽略:在 PIL 图像上,始终对双线性或双三次模式应用抗锯齿;在其他模式下(对于 PIL 图像和张量),抗锯齿没有意义,并且此参数将被忽略。 可能的值为
True
(默认值):将对双线性或双三次模式应用抗锯齿。 其他模式不受影响。 这可能是您想要使用的。False
:将不会对任何模式下的张量应用抗锯齿。 PIL 图像在双线性或双三次模式下仍然进行抗锯齿处理,因为 PIL 不支持无抗锯齿。None
:对于张量等效于False
,对于 PIL 图像等效于True
。 此值因遗留原因而存在,除非您真的知道自己在做什么,否则您可能不想使用它。
为了使 PIL 和 Tensor 后端保持一致,默认值已从 v0.17 中的
None
更改为True
。
使用
Resize
的示例