RandomCrop¶
- class torchvision.transforms.v2.RandomCrop(size: Union[int, Sequence[int]], padding: Optional[Union[int, Sequence[int]]] = None, pad_if_needed: bool = False, 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, padding_mode: Literal['constant', 'edge', 'reflect', 'symmetric'] = 'constant')[原始碼]¶
在隨機位置裁剪輸入。
如果輸入是
torch.Tensor或TVTensor(例如Image、Video、BoundingBoxes等),它可以具有任意數量的前導批次維度。例如,影像可以具有[..., C, H, W]形狀。邊界框可以具有[..., 4]形狀。- 引數:
size (sequence 或 int) – 裁剪的期望輸出尺寸。如果 size 是一個整數而不是像 (h, w) 這樣的序列,則會進行一個正方形裁剪 (size, size)。如果提供一個長度為 1 的序列,它將被解釋為 (size[0], size[0])。
padding (int 或 sequence, optional) –
在影像每個邊界的可選填充,在裁剪前應用。預設為 None。如果提供單個 int,則將其用於填充所有邊界。如果提供長度為 2 的序列,則分別為左/右和上/下的填充。如果提供長度為 4 的序列,則分別為左、上、右和下的邊界填充。
注意
在 torchscript 模式下,不支援將 padding 作為單個 int,請使用長度為 1 的序列:
[padding, ]。pad_if_needed (boolean, optional) – 如果影像小於所需尺寸,它將填充影像以避免引發異常。由於裁剪在填充之後進行,因此填充似乎是在隨機偏移量處進行的。
fill (number 或 tuple 或 dict, optional) – 當
padding_mode為 constant 時使用的畫素填充值。預設為 0。如果是一個長度為 3 的元組,則分別用於填充 R、G、B 通道。填充值也可以是對映資料型別到填充值的字典,例如fill={tv_tensors.Image: 127, tv_tensors.Mask: 0},其中Image將用 127 填充,Mask將用 0 填充。padding_mode (str, optional) –
填充型別。應為:constant、edge、reflect 或 symmetric。預設為 constant。
constant:用常數值填充,該值透過 fill 指定
edge: 使用影像邊緣的最後一個值進行填充。
reflect:透過反射影像進行填充,但不重複邊緣處的最後一個值。例如,在 reflect 模式下,將 [1, 2, 3, 4] 的兩端各填充 2 個元素將導致 [3, 2, 1, 2, 3, 4, 3, 2]
symmetric:透過反射影像進行填充,重複邊緣處的最後一個值。例如,在 symmetric 模式下,將 [1, 2, 3, 4] 的兩端各填充 2 個元素將導致 [2, 1, 1, 2, 3, 4, 4, 3]
使用
RandomCrop的示例