GridSample

GridSample - 22

版本

  • 名稱: GridSample (GitHub)

  • 網域: main

  • since_version: 22

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推斷: True

此運算符的版本自版本 22起可用。

摘要

給定輸入 X 和流場 grid,使用 X 值和來自 grid 的像素位置計算輸出 Y。對於形狀為 (N, C, H, W) 的空間輸入 Xgrid 的形狀將為 (N, H_out, W_out, 2),輸出 Y 的形狀將為 (N, C, H_out, W_out)。對於形狀為 (N, C, D, H, W) 的體積輸入 Xgrid 的形狀將為 (N, D_out, H_out, W_out, 3),輸出 Y 的形狀將為 (N, C, D_out, H_out, W_out)。更廣泛地說,對於形狀為 (N, C, d1, d2, …, dr) 的秩 r+2 的輸入 Xgrid 的形狀將為 (N, D1_out, D2_out, …, Dr_out, r),輸出 Y 的形狀將為 (N, C, D1_out, D2_out, …, Dr_out)。

張量 X 包含在方形像素(體素等)位置中心的值,例如 (n, c, d1_in, d2_in, …, dr_in)。來自張量 grid 的 (n, d1_out, d2_out, …, dr_out, :) 值是標準化的位置,用於從輸出張量 Y 的 (n, c, d1_out, d2_out, …, dr_out) 位置插值,使用指定的插值方法(模式)和填充模式(用於落在 2 維圖像之外的 grid 位置)。

例如,grid[n, h_out, w_out, :] 中的值是大小為 2 的向量,指定 X 的 2 維空間中的標準化位置。它們用於內插 Y[n, c, h_out, w_out] 的輸出值。

GridSample 運算符通常用於空間轉換網路中的網格生成器和取樣器。另請參閱 torch.nn.functional.grid_sample

屬性

  • align_corners - INT (預設值為 '0')

    如果 align_corners=1,則極值 (-1 和 1) 被視為指輸入的角像素(體素等)的中心點。如果 align_corners=0,則它們被視為指輸入的角像素(體素等)的角點,使採樣更獨立於解析度。

  • mode - STRING (預設值為 'linear')

    三種插值模式:線性(預設)、最近和立方。「線性」模式包括線性插值和 N 線性插值模式,具體取決於輸入張量的空間維度數量(即,1 個空間維度的線性插值,2 個空間維度的雙線性插值等)。「立方」模式也包括 N 立方插值模式,遵循相同的規則。「最近」模式會在取樣點落在兩個索引之間的中間時,四捨五入到最接近的偶數索引。

  • padding_mode - STRING (預設值為 'zeros')

    支援外部網格值的填充模式:zeros(預設)、borderreflection。zeros:對於超出範圍的網格位置使用 0;border:對於超出範圍的網格位置使用邊界值;reflection:對於超出範圍的網格位置使用邊界反射位置的值。如果索引 0 表示邊距像素,則索引 -1 的反射值將與索引 1 的值相同。對於遠離邊界的位置,它將持續反射直到進入邊界。如果像素位置 x = -3.5 通過邊界 -1 反射並變成 x' = 1.5,則通過邊界 1 反射並變成 x'' = 0.5。

輸入

  • X (異質) - T1

    秩為 r+2 的輸入張量,其形狀為 (N, C, D1, D2, …, Dr),其中 N 是批次大小,C 是通道數,D1、D2、…、Dr 是空間維度。

  • grid (異質) - T2

    形狀為 (N, D1_out, D2_out, …, Dr_out, r) 的輸入偏移量,其中 D1_out、D2_out、…、Dr_out 是網格和輸出的空間維度,r 是空間維度的數量。網格指定按輸入空間維度標準化的取樣位置。因此,它的大部分值應在 [-1, 1] 的範圍內。如果網格的值超出 [-1, 1] 的範圍,則會按照 padding_mode 的定義處理對應的輸出。按照電腦視覺慣例,長度為 r 的位置向量中的座標從最內部的張量維度列到最外部,與常規張量索引相反。

輸出

  • Y (異質) - T1

    輸出張量,階數為 r+2,形狀為 (N, C, D1_out, D2_out, …, Dr_out),其中包含取樣值。對於整數輸入類型,中間值會以浮點數計算,並在最後轉換為整數。

類型約束

  • T1 屬於 ( tensor(bfloat16), tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    約束輸入 X 和輸出 Y 的類型為所有張量類型。

  • T2 屬於 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    約束網格類型為浮點張量。

GridSample - 20

版本

  • 名稱: GridSample (GitHub)

  • 網域: main

  • since_version: 20

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推斷: True

此版本的運算子自版本 20 起可用。

摘要

給定輸入 X 和流場 grid,使用 X 值和來自 grid 的像素位置計算輸出 Y。對於形狀為 (N, C, H, W) 的空間輸入 Xgrid 的形狀將為 (N, H_out, W_out, 2),輸出 Y 的形狀將為 (N, C, H_out, W_out)。對於形狀為 (N, C, D, H, W) 的體積輸入 Xgrid 的形狀將為 (N, D_out, H_out, W_out, 3),輸出 Y 的形狀將為 (N, C, D_out, H_out, W_out)。更廣泛地說,對於形狀為 (N, C, d1, d2, …, dr) 的秩 r+2 的輸入 Xgrid 的形狀將為 (N, D1_out, D2_out, …, Dr_out, r),輸出 Y 的形狀將為 (N, C, D1_out, D2_out, …, Dr_out)。

張量 X 包含在方形像素(體素等)位置中心的值,例如 (n, c, d1_in, d2_in, …, dr_in)。來自張量 grid 的 (n, d1_out, d2_out, …, dr_out, :) 值是標準化的位置,用於從輸出張量 Y 的 (n, c, d1_out, d2_out, …, dr_out) 位置插值,使用指定的插值方法(模式)和填充模式(用於落在 2 維圖像之外的 grid 位置)。

例如,grid[n, h_out, w_out, :] 中的值是大小為 2 的向量,指定 X 的 2 維空間中的標準化位置。它們用於內插 Y[n, c, h_out, w_out] 的輸出值。

GridSample 運算符通常用於空間轉換網路中的網格生成器和取樣器。另請參閱 torch.nn.functional.grid_sample

屬性

  • align_corners - INT (預設值為 '0')

    如果 align_corners=1,則極值 (-1 和 1) 被視為指輸入的角像素(體素等)的中心點。如果 align_corners=0,則它們被視為指輸入的角像素(體素等)的角點,使採樣更獨立於解析度。

  • mode - STRING (預設值為 'linear')

    三種插值模式:線性(預設)、最近和立方。「線性」模式包括線性插值和 N 線性插值模式,具體取決於輸入張量的空間維度數量(即,1 個空間維度的線性插值,2 個空間維度的雙線性插值等)。「立方」模式也包括 N 立方插值模式,遵循相同的規則。「最近」模式會在取樣點落在兩個索引之間的中間時,四捨五入到最接近的偶數索引。

  • padding_mode - STRING (預設值為 'zeros')

    支援外部網格值的填充模式:zeros(預設)、borderreflection。zeros:對於超出範圍的網格位置使用 0;border:對於超出範圍的網格位置使用邊界值;reflection:對於超出範圍的網格位置使用邊界反射位置的值。如果索引 0 表示邊距像素,則索引 -1 的反射值將與索引 1 的值相同。對於遠離邊界的位置,它將持續反射直到進入邊界。如果像素位置 x = -3.5 通過邊界 -1 反射並變成 x' = 1.5,則通過邊界 1 反射並變成 x'' = 0.5。

輸入

  • X (異質) - T1

    秩為 r+2 的輸入張量,其形狀為 (N, C, D1, D2, …, Dr),其中 N 是批次大小,C 是通道數,D1、D2、…、Dr 是空間維度。

  • grid (異質) - T2

    形狀為 (N, D1_out, D2_out, …, Dr_out, r) 的輸入偏移量,其中 D1_out、D2_out、…、Dr_out 是網格和輸出的空間維度,r 是空間維度的數量。網格指定按輸入空間維度標準化的取樣位置。因此,它的大部分值應在 [-1, 1] 的範圍內。如果網格的值超出 [-1, 1] 的範圍,則會按照 padding_mode 的定義處理對應的輸出。按照電腦視覺慣例,長度為 r 的位置向量中的座標從最內部的張量維度列到最外部,與常規張量索引相反。

輸出

  • Y (異質) - T1

    輸出張量,階數為 r+2,形狀為 (N, C, D1_out, D2_out, …, Dr_out),其中包含取樣值。對於整數輸入類型,中間值會以浮點數計算,並在最後轉換為整數。

類型約束

  • T1 屬於 ( tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    約束輸入 X 和輸出 Y 的類型為所有張量類型。

  • T2 屬於 ( tensor(double), tensor(float), tensor(float16) )

    約束網格類型為浮點張量。

GridSample - 16

版本

  • 名稱: GridSample (GitHub)

  • 網域: main

  • since_version: 16

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推斷: True

此版本的運算子自版本 16 起可用。

摘要

給定輸入 X 和一個流場 grid,使用 X 的值和 grid 中的像素位置來計算輸出 Y。目前,僅支援空間(4 維)輸入。對於形狀為 (N, C, H, W) 的輸入 X 和形狀為 (N, H_out, W_out, 2) 的 grid,輸出 Y 的形狀為 (N, C, H_out, W_out)。

張量 X 包含在 H x W 二維圖像中方形像素中心的值。張量 grid 描述標準化的位置,這些位置將使用指定的內插法(模式)和填充模式(適用於落在二維圖像之外的網格位置)來計算輸出 Y

grid[N, H_out, W_out] 中的元素是大小為 2 的向量,指定 X 二維空間中的位置。它們用於內插 Y[N, C, H_out, W_out] 的輸出值。

GridSample 運算子通常用於 Spatial Transformer Networks 中的網格產生器和取樣器。另請參閱 torch.nn.functional.grid_sample

屬性

  • align_corners - INT (預設值為 '0')

    如果 align_corners=1,則極值(-1 和 1)會被視為參考輸入的角落像素的中心點。如果 align_corners=0,則它們會被視為參考輸入的角落像素的角點,使取樣更具解析度獨立性。

  • mode - STRING (預設值為 'bilinear')

    三種內插模式:雙線性 (預設值)、最近鄰和雙立方。

  • padding_mode - STRING (預設值為 'zeros')

    支援外部網格值的填充模式:zeros(預設)、borderreflection。zeros:對於超出範圍的網格位置使用 0;border:對於超出範圍的網格位置使用邊界值;reflection:對於超出範圍的網格位置使用邊界反射位置的值。如果索引 0 表示邊距像素,則索引 -1 的反射值將與索引 1 的值相同。對於遠離邊界的位置,它將持續反射直到進入邊界。如果像素位置 x = -3.5 通過邊界 -1 反射並變成 x' = 1.5,則通過邊界 1 反射並變成 x'' = 0.5。

輸入

  • X (異質) - T1

    形狀為 (N, C, H, W) 的 4 維張量,其中 N 是批次大小,C 是通道數,H 和 W 是輸入資料的高度和寬度。

  • grid (異質) - T2

    輸入偏移量,形狀為 (N, H_out, W_out, 2) 的 4 維張量,其中 H_out 和 W_out 是網格和輸出的高度和寬度,網格指定由輸入空間維度正規化的取樣像素位置。因此,它的大部分值應在 [-1, 1] 範圍內。如果網格的值超出 [-1, 1] 的範圍,則會根據 padding_mode 的定義處理相應的輸出。

輸出

  • Y (異質) - T1

    形狀為 (N, C, H_out, W_out) 的 4 維張量,其中包含取樣值。對於整數輸入類型,中間值會以浮點數計算,並在最後轉換為整數。

類型約束

  • T1 屬於 ( tensor(bool), tensor(complex128), tensor(complex64), tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(string), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    約束輸入 X 和輸出 Y 的類型為所有張量類型。

  • T2 屬於 ( tensor(double), tensor(float), tensor(float16) )

    約束網格類型為浮點張量。