RandomResizedCrop¶
- class torchvision.transforms.v2.RandomResizedCrop(size: Union[int, Sequence[int]], scale: Tuple[float, float] = (0.08, 1.0), ratio: Tuple[float, float] = (0.75, 1.3333333333333333), interpolation: Union[InterpolationMode,int] = InterpolationMode.BILINEAR, antialias: Optional[bool] = True)[source]¶
隨機裁剪輸入的一部分並將其調整為給定大小。
如果輸入是
torch.Tensor或TVTensor(例如Image、Video、BoundingBoxes等),它可以包含任意數量的前導批次維度。例如,影像可以具有[..., C, H, W]形狀。邊界框可以具有[..., 4]形狀。對原始輸入進行裁剪:裁剪區域具有隨機的面積 (H * W) 和隨機的縱橫比。最終將此裁剪區域調整為給定大小。這常用於訓練 Inception 網路。
- 引數:
size (int 或 sequence) –
預期裁剪區域的輸出大小,適用於每個邊緣。如果 size 是一個 int 而不是像 (h, w) 這樣的 sequence,則會得到一個正方形輸出大小
(size, size)。如果提供長度為 1 的 sequence,則將其解釋為 (size[0], size[0])。注意
在 torchscript 模式下,不支援將 size 作為單個 int,請使用長度為 1 的 sequence:
[size, ]。scale (tuple of python:float, optional) – 指定裁剪隨機區域的下限和上限,在調整大小之前。比例是相對於原始影像面積定義的。
ratio (tuple of python:float, optional) – 裁剪隨機縱橫比的下限和上限,在調整大小之前。
interpolation (InterpolationMode, optional) – 期望的插值模式 enum,由
torchvision.transforms.InterpolationMode定義。預設為InterpolationMode.BILINEAR。如果輸入是 Tensor,則僅支援InterpolationMode.NEAREST、InterpolationMode.NEAREST_EXACT、InterpolationMode.BILINEAR和InterpolationMode.BICUBIC。也接受相應的 Pillow 整數常量,例如PIL.Image.BILINEAR。antialias (bool, optional) –
是否應用抗鋸齒。它僅影響具有雙線性或雙三次模式的 tensor,否則會被忽略:對於 PIL 影像,在雙線性或雙三次模式下始終應用抗鋸齒;對於其他模式(對於 PIL 影像和 tensor),抗鋸齒沒有意義,此引數被忽略。可能的值為
True(預設):將對雙線性或雙三次模式應用抗鋸齒。其他模式不受影響。這可能就是您想要使用的值。False:不會對任何模式下的 tensor 應用抗鋸齒。PIL 影像在雙線性或雙三次模式下仍然應用抗鋸齒,因為 PIL 不支援不抗鋸齒。None:對於 tensor 等同於False,對於 PIL 影像等同於True。此值因歷史原因存在,除非您非常清楚自己在做什麼,否則可能不應該使用它。
在 v0.17 中,預設值從
None更改為True,以使 PIL 和 Tensor 後端保持一致。
使用
RandomResizedCrop的示例- static get_params(img: Tensor, scale: List[float], ratio: List[float]) Tuple[int, int, int, int][source]¶
獲取隨機大小裁剪的
crop引數。