jax.lax.conv_general_dilated_local#

jax.lax.conv_general_dilated_local(lhs, rhs, window_strides, padding, filter_shape, lhs_dilation=None, rhs_dilation=None, dimension_numbers=None, precision=None)[原始碼]#

具有可選擴張的一般 n 維度非共享卷積運算子。

也稱為局部連接層,此操作等效於在每個輸出空間位置使用單獨 (非共享) 的 rhs 核心進行卷積。以下文檔字串改編自 jax.lax.conv_general_dilated

參數:
  • lhs (ArrayLike) – 秩 n+2 維度的輸入陣列。

  • rhs (ArrayLike) – 秩 n+2 維度的核心權重陣列。與常規 CNN 不同,其空間座標 (HW、…) 對應於輸出空間位置,而輸入空間位置與單個 I 維度中的輸入通道位置融合,順序為 “C” + ‘’.join(c for c in rhs_spec if c not in ‘OI’),其中 rhs_spec = dimension_numbers[1]。例如,如果 rhs_spec == “WHIO”,則展開的核心形狀為 `”[輸出 W][輸出 H]{I[感受野視窗 W][感受野視窗 H]}O”`。

  • window_strides (Sequence[int]) – n 個整數的序列,表示視窗間步幅。

  • padding (str | Sequence[tuple[int, int]]) – 字串 ‘SAME’、字串 ‘VALID’,或 n(low, high) 整數對的序列,這些整數對給出在每個空間維度之前和之後應用的填充。

  • filter_shape (Sequence[int]) – n 個整數的序列,表示 rhs_spec = dimension_numbers[1] 中指定的順序的感受野視窗空間形狀。

  • lhs_dilation (Sequence[int] | None | None) – None,或 n 個整數的序列,給出在 lhs 的每個空間維度中應用的擴張因子。 LHS 擴張也稱為轉置卷積。

  • rhs_dilation (Sequence[int] | None | None) – None,或 n 個整數的序列,給出在 rhs 的每個輸入空間維度中應用的擴張因子。 RHS 擴張也稱為 atrous 卷積。

  • dimension_numbers (convolution.ConvGeneralDilatedDimensionNumbers | None | None) – NoneConvDimensionNumbers 物件,或 3 元組 (lhs_spec, rhs_spec, out_spec),其中每個元素都是長度為 n+2 的字串。

  • precision (lax.PrecisionLike | None) – 選用。可以是 None,表示後端的預設精度、lax.Precision 列舉值 (Precision.DEFAULTPrecision.HIGHPrecision.HIGHEST) 或兩個 lax.Precision 列舉的元組,表示 lhs`rhs 的精度。

傳回:

包含非共享卷積結果的陣列。

傳回類型:

Array

dimension_numbers 的字串情況下,每個字元按位置識別

  • lhsrhs 和輸出中的批次維度,字元為 ‘N’,

  • lhs 和輸出中的特徵維度,字元為 ‘C’,

  • rhs 中的輸入和輸出特徵維度,字元分別為 ‘I’ 和 ‘O’,以及

  • 使用任何不同的字元在 lhsrhs 和輸出之間的空間維度對應。以下範例使用 ‘W’ 和 ‘H’。

例如,若要指示與具有兩個空間維度的 conv 函式一致的維度編號,可以使用 (‘NCHW’, ‘OIHW’, ‘NCHW’)。 作為另一個範例,若要指示與 TensorFlow Conv2D 運算一致的維度編號,可以使用 (‘NHWC’, ‘HWIO’, ‘NHWC’)。 當使用後一種形式的卷積維度規格時,視窗步幅會根據標籤在 rhs_spec 字串中出現的順序與空間維度字元標籤相關聯,因此 window_strides[0] 與對應於 rhs_spec 中出現的第一個字元的維度相符,該字元不是 ‘I’‘O’

如果 dimension_numbersNone,則預設值為 (‘NCHW’, ‘OIHW’, ‘NCHW’) (用於 2D 卷積)。