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], Optional[Union[int, float, Sequence[int], Sequence[float]]]]] = 0, padding_mode: Literal['constant', 'edge', 'reflect', 'symmetric'] = 'constant')[source]¶
在隨機位置裁剪輸入。
如果輸入是
torch.Tensor
或TVTensor
(例如Image
、Video
、BoundingBoxes
等),它可以具有任意數量的 leading batch 維度。 例如,影像可以具有[..., C, H, W]
的形狀。 邊界框可以具有[..., 4]
的形狀。- 參數:
size (sequence 或 int) – 裁剪後想要的輸出大小。如果 size 是一個 int 而不是像 (h, w) 的 sequence,則會產生一個正方形裁剪 (size, size)。如果提供長度為 1 的 sequence,則它將被解釋為 (size[0], size[0])。
padding (int 或 sequence, optional) –
影像每個邊界上的可選填充。預設值為 None。如果提供單個 int,則將其用於填充所有邊界。如果提供長度為 2 的 sequence,則分別為左/右和上/下的填充。如果提供長度為 4 的 sequence,則分別為左、上、右和下邊界的填充。
注意
在 torchscript 模式下,不支援將 padding 設定為單一整數,請使用長度為 1 的序列:
[padding, ]
。pad_if_needed (boolean, optional) – 如果影像小於所需尺寸,則會進行填充,以避免引發例外。由於裁剪是在填充之後進行的,因此填充看起來是在隨機偏移處完成的。
fill (number or tuple or dict, optional) – 當
padding_mode
為 constant 時,使用的像素填充值。預設值為 0。如果是長度為 3 的 tuple,則分別用於填充 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 模式下,用 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
的範例