jax.lax.conv_general_dilated_patches

jax.lax.conv_general_dilated_patches#

jax.lax.conv_general_dilated_patches(lhs, filter_shape, window_strides, padding, lhs_dilation=None, rhs_dilation=None, dimension_numbers=None, precision=None, preferred_element_type=None)[source]#

提取受 conv_general_dilated 感受野影响的补丁。

使用给定参数将输入通过卷积运算。卷积核的构造方式使得输出通道维度 “C” 包含扁平化的图像补丁,因此,单个 “C” 维度代表例如三个维度 “chw” 的合并。这些维度的顺序为 “c” + ‘’.join(c for c in rhs_spec if c not in ‘OI’),其中 rhs_spec == dimension_numbers[1],并且此 “C” 维度的大小因此为每个补丁的大小,即 np.prod(filter_shape) * lhs.shape[lhs_spec.index(‘C’)],其中 lhs_spec == dimension_numbers[0]

以下文档字符串改编自 jax.lax.conv_general_dilated

参数:
  • lhs (ArrayLike) – 一个秩为 n+2 的输入数组。

  • filter_shape (Sequence[int]) – 一个包含 n 个整数的序列,表示感受野的空域形状,顺序与 rhs_spec = dimension_numbers[1] 中指定的顺序相同。

  • window_strides (Sequence[int]) – 一个包含 n 个整数的序列,表示窗口间的步长。

  • padding (str | Sequence[tuple[int, int]]) – 可以是字符串 ‘SAME’,字符串 ‘VALID’,或者一个包含 n(low, high) 整数对的序列,表示每个空间维度上应用的填充。

  • lhs_dilation (Sequence[int] | None | None) – None,或者一个包含 n 个整数的序列,表示在 lhs 的每个空间维度上应用的扩张因子。LHS 扩张也称为转置卷积。

  • rhs_dilation (Sequence[int] | None | None) – None,或者一个包含 n 个整数的序列,表示在 rhs 的每个空间维度上应用的扩张因子。RHS 扩张也称为空洞卷积。

  • dimension_numbers (convolution.ConvGeneralDilatedDimensionNumbers | None | None) – None,或者一个 3 元组 (lhs_spec, rhs_spec, out_spec),其中每个元素都是长度为 n+2 的字符串。None 默认值为 (“NCHWD…, OIHWD…, NCHWD…”)

  • precision (lax.Precision | None | None) – 可选。可以是 None,表示后端的默认精度,或者是一个 Precision 枚举值(Precision.DEFAULTPrecision.HIGHPrecision.HIGHEST)。

  • preferred_element_type (DType | None | None) – 可选。可以是 None,表示输入类型的默认累积类型,或者是一个数据类型,表示将结果累积到该数据类型并返回具有该数据类型的结果。

返回值:

一个秩为 n+2 的数组,包含输出通道 (“C”) 维度中展平的图像块。例如,如果 dimension_numbers = (“NcHW”, “OIwh”, “CNHW”),则输出的维度编号为 “CNHW” = “{cwh}NHW”,维度 “C” 的大小等于每个块的大小 (np.prod(filter_shape) * lhs.shape[lhs_spec.index(‘C’)])。

返回类型:

数组