Shortcuts

随机擦除

class torchvision.transforms.v2.RandomErasing(p: float = 0.5, scale: Sequence[float] = (0.02, 0.33), ratio: Sequence[float] = (0.3, 3.3), value: float = 0.0, inplace: bool = False)[source]

在输入图像或视频中随机选择一个矩形区域并擦除其像素。

此转换不支持PIL图像。 Zhong等人提出的“随机擦除数据增强”。参见https://arxiv.org/abs/1708.04896

Parameters:
  • p (float, 可选) – 随机擦除操作将被执行的概率。

  • scale (python:float 的元组, 可选) – 擦除区域相对于输入图像的比例范围。

  • ratio (python:float的元组, 可选) – 擦除区域的宽高比范围。

  • value (number数字元组) – 擦除值。默认值为0。如果是单个整数,则用于擦除所有像素。如果是长度为3的元组,则分别用于擦除R、G、B通道。如果是‘random’字符串,则用随机值擦除每个像素。

  • inplace (bool, 可选) – 布尔值,用于使此转换在原地进行。默认设置为 False。

Returns:

已擦除输入。

示例

>>> from torchvision.transforms import v2 as transforms
>>>
>>> transform = transforms.Compose([
>>>   transforms.RandomHorizontalFlip(),
>>>   transforms.PILToTensor(),
>>>   transforms.ConvertImageDtype(torch.float),
>>>   transforms.Normalize((0.485, 0.456, 0.406), (0.229, 0.224, 0.225)),
>>>   transforms.RandomErasing(),
>>> ])
static get_params(img: Tensor, scale: Tuple[float, float], ratio: Tuple[float, float], value: Optional[List[float]] = None) Tuple[int, int, int, int, Tensor][source]

获取用于随机擦除的erase参数。

Parameters:
  • img (Tensor) – 要擦除的张量图像。

  • scale (sequence) – 擦除区域相对于输入图像的比例范围。

  • ratio (sequence) – 擦除区域的宽高比范围。

  • value (list, 可选) – 擦除值。如果为None,则解释为“随机”(用随机值擦除每个像素)。如果 len(value) 为1,则解释为一个数字,即 value[0]

Returns:

传递给erase的参数 (i, j, h, w, v) 用于随机擦除。

Return type:

tuple