快捷方式

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.TensorTVTensor (例如 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.NEARESTInterpolationMode.NEAREST_EXACTInterpolationMode.BILINEARInterpolationMode.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 的示例

变换的图示

变换的图示
transform(inpt: Any, params: Dict[str, Any]) Any[source]

用于覆盖自定义变换的方法。

请参阅 如何编写您自己的 v2 变换

文档

访问 PyTorch 的全面开发者文档

查看文档

教程

获取面向初学者和高级开发者的深度教程

查看教程

资源

查找开发资源并获得问题解答

查看资源