快捷方式

RandomRotation

class torchvision.transforms.v2.RandomRotation(degrees: Union[Number, Sequence], interpolation: Union[InterpolationMode, int] = InterpolationMode.NEAREST, expand: bool = False, center: Optional[list[float]] = None, fill: Union[int, float, Sequence[int], Sequence[float], None, dict[Union[type, str], Union[int, float, collections.abc.Sequence[int], collections.abc.Sequence[float], NoneType]] = 0)[源代码]

旋转输入角度。

如果输入是 torch.TensorTVTensor(例如 ImageVideoBoundingBoxes 等),它可以有任意数量的前导批次维度。例如,图像可以具有 [..., C, H, W] 形状。边界框可以具有 [..., 4] 形状。

参数:
  • degrees (sequencenumber) – 选择角度的范围。如果 degrees 是一个数字而不是序列(如 (min, max)),则角度范围将是 [-degrees, +degrees]。

  • interpolation (InterpolationMode, optional) – 由 torchvision.transforms.InterpolationMode 定义的所需插值枚举。默认为 InterpolationMode.NEAREST。如果输入是 Tensor,则仅支持 InterpolationMode.NEARESTInterpolationMode.BILINEAR。也接受相应的 Pillow 整数常量,例如 PIL.Image.BILINEAR

  • expand (bool, optional) – 可选的扩展标志。如果为 True,则扩展输出以使其足够大以容纳整个旋转后的图像。如果为 False 或省略,则输出图像的大小与输入图像相同。请注意,扩展标志假定围绕中心进行旋转(参见下面的注释)且没有平移。

  • center (sequence, optional) –

    可选的旋转中心,(x, y)。原点是左上角。默认为图像中心。

    注意

    理论上,设置 centerexpand=True 没有影响,因为图像中心将成为旋转中心。但实际上,由于数值精度,这可能导致与首次使用图像中心相比,输出图像尺寸出现一个像素的差异。因此,在设置 expand=True 时,最好将 center=None(默认值)。

  • fill (numbertupledict, optional) – 当 padding_mode 为 constant 时使用的像素填充值。默认为 0。如果为长度为 3 的元组,则分别用于填充 R、G、B 通道。填充值也可以是映射数据类型到填充值的字典,例如 fill={tv_tensors.Image: 127, tv_tensors.Mask: 0},其中 Image 将被填充为 127,Mask 将被填充为 0。

使用 RandomRotation 的示例

旋转边界框上的变换

旋转边界框上的变换

转换图示

转换图示
static get_params(degrees: list[float]) float[源代码]

获取随机旋转的 rotate 参数。

返回:

用于随机旋转的 rotate 参数。

返回类型:

浮点数

make_params(flat_inputs: list[Any]) dict[str, Any][源代码]

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

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

transform(inpt: Any, params: dict[str, Any]) Any[源代码]

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

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

文档

访问全面的 PyTorch 开发者文档

查看文档

教程

为初学者和高级开发者提供深入的教程

查看教程

资源

查找开发资源并让您的问题得到解答

查看资源