随机裁剪¶
- class torchvision.transforms.RandomCrop(size, padding=None, pad_if_needed=False, fill=0, padding_mode='constant')[source]¶
在随机位置裁剪给定的图像。 如果图像是torch Tensor,则期望其具有[…, H, W]形状,其中…表示任意数量的前导维度, 但如果使用非常量填充,则输入期望最多具有2个前导维度。
- Parameters:
size (序列或整数) – 期望的裁剪输出大小。如果 size 是一个整数而不是像 (h, w) 这样的序列,则会生成一个正方形裁剪 (size, size)。如果提供一个长度为 1 的序列,它将被解释为 (size[0], size[0])。
padding (int 或 sequence, 可选) –
图像每个边界的可选填充。默认值为 None。如果提供单个整数,则用于填充所有边界。如果提供长度为2的序列,则分别为左/右和上/下的填充。如果提供长度为4的序列,则分别为左、上、右和下边界的填充。
注意
在torchscript模式下,不支持将填充作为单个整数,请使用长度为1的序列:
[padding, ]。pad_if_needed (boolean) – 如果图像小于所需大小,它将填充图像以避免引发异常。由于填充是在裁剪之后进行的,填充似乎是在随机偏移处完成的。
fill (number 或 tuple) – 用于常量填充的像素填充值。默认值为0。如果是一个长度为3的元组,则分别用于填充R、G、B通道。 此值仅在padding_mode为constant时使用。 对于torch Tensor,仅支持数字。 对于PIL Image,仅支持int或元组值。
padding_mode (str) –
填充类型。应为:constant、edge、reflect 或 symmetric。 默认是 constant。
constant: 用常数值填充,此值由 fill 指定
edge: 用图像边缘的最后一个值填充。 如果输入是 5D torch Tensor,则最后 3 个维度将被填充,而不是最后 2 个
reflect: 用图像的反射填充,不重复边缘的最后一个值。 例如,在 reflect 模式下,用 2 个元素在两边填充 [1, 2, 3, 4] 将得到 [3, 2, 1, 2, 3, 4, 3, 2]
symmetric: 用图像的反射填充,重复边缘的最后一个值。 例如,在 symmetric 模式下,用 2 个元素在两边填充 [1, 2, 3, 4] 将得到 [2, 1, 1, 2, 3, 4, 4, 3]
使用
RandomCrop的示例: