GridSample¶
GridSample - 22¶
版本¶
網域:
main
since_version:
22
函式:
False
支援層級:
SupportType.COMMON
形狀推斷:
True
此運算符的版本自版本 22起可用。
摘要¶
給定輸入 X
和流場 grid
,使用 X
值和來自 grid
的像素位置計算輸出 Y
。對於形狀為 (N, C, H, W) 的空間輸入 X
,grid
的形狀將為 (N, H_out, W_out, 2),輸出 Y
的形狀將為 (N, C, H_out, W_out)。對於形狀為 (N, C, D, H, W) 的體積輸入 X
,grid
的形狀將為 (N, D_out, H_out, W_out, 3),輸出 Y
的形狀將為 (N, C, D_out, H_out, W_out)。更廣泛地說,對於形狀為 (N, C, d1, d2, …, dr) 的秩 r+2 的輸入 X
,grid
的形狀將為 (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
(預設)、border
、reflection
。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¶
版本¶
網域:
main
since_version:
20
函式:
False
支援層級:
SupportType.COMMON
形狀推斷:
True
此版本的運算子自版本 20 起可用。
摘要¶
給定輸入 X
和流場 grid
,使用 X
值和來自 grid
的像素位置計算輸出 Y
。對於形狀為 (N, C, H, W) 的空間輸入 X
,grid
的形狀將為 (N, H_out, W_out, 2),輸出 Y
的形狀將為 (N, C, H_out, W_out)。對於形狀為 (N, C, D, H, W) 的體積輸入 X
,grid
的形狀將為 (N, D_out, H_out, W_out, 3),輸出 Y
的形狀將為 (N, C, D_out, H_out, W_out)。更廣泛地說,對於形狀為 (N, C, d1, d2, …, dr) 的秩 r+2 的輸入 X
,grid
的形狀將為 (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
(預設)、border
、reflection
。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¶
版本¶
網域:
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
(預設)、border
、reflection
。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)
)約束網格類型為浮點張量。