快捷方式

ElasticTransform

class torchvision.transforms.v2.ElasticTransform(alpha: Union[float, Sequence[float]] = 50.0, sigma: Union[float, Sequence[float]] = 5.0, interpolation: Union[InterpolationMode, int]] = InterpolationMode.BILINEAR, fill: Union[int, float, Sequence[int], Sequence[float], None, Dict[Union[Type, str], Optional[Union[int, float, Sequence[int], Sequence[float]]]]] = 0)[source]

使用彈性變換轉換輸入。

如果輸入是 torch.TensorTVTensor(例如 ImageVideoBoundingBoxes 等),它可以有任意數量的前導批處理維度。例如,影像可以具有 [..., C, H, W] 的形狀。邊界框可以具有 [..., 4] 的形狀。

給定 alpha 和 sigma,它將基於隨機偏移為所有畫素生成位移向量。Alpha 控制位移的強度,sigma 控制位移的平滑度。位移被新增到恆等網格(identity grid)中,並將結果網格用於轉換輸入。

注意

轉換邊界框的實現是近似的(不精確)。我們將反網格近似構造為 inverse_grid = identity - displacement。這不是用於轉換影像的網格(即 grid = identity + displacement)的精確逆。我們的假設是 displacement * displacement 很小,可以忽略不計。較大的位移會導致近似中出現較大的誤差。

應用

隨機轉換影像中物件的形態,產生類似於透過水麵的效果。

引數:
  • alpha (floatpython:float 序列, 可選) – 位移的幅度。預設為 50.0。

  • sigma (floatpython:float 序列, 可選) – 位移的平滑度。預設為 5.0。

  • interpolation (InterpolationMode, 可選) – 由 torchvision.transforms.InterpolationMode 定義的期望插值列舉。預設為 InterpolationMode.BILINEAR。如果輸入是 Tensor,僅支援 InterpolationMode.NEARESTInterpolationMode.BILINEAR。相應的 Pillow 整數常量,例如 PIL.Image.BILINEAR 也可接受。

  • fill (數字tupledict, 可選) – 當 padding_mode 為 constant 時使用的畫素填充值。預設為 0。如果是一個長度為 3 的 tuple,則用於分別填充 R、G、B 通道。填充值也可以是字典,將資料型別對映到填充值,例如 fill={tv_tensors.Image: 127, tv_tensors.Mask: 0},其中 Image 將填充 127,Mask 將填充 0。

使用 ElasticTransform 的示例

變換圖示

變換圖示
make_params(flat_inputs: List[Any]) Dict[str, Any][source]

用於覆蓋以實現自定義變換的方法。

參閱 如何編寫自己的 v2 變換

transform(inpt: Any, params: Dict[str, Any]) Any[source]

用於覆蓋以實現自定義變換的方法。

參閱 如何編寫自己的 v2 變換

文件

檢視 PyTorch 的完整開發者文件

檢視文件

教程

獲取面向初學者和高階開發者的深度教程

檢視教程

資源

查詢開發資源並獲得問題解答

檢視資源