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 的核权重数组。与常规的卷积神经网络不同,其空间坐标 (H, W, …) 对应于输出的空间位置,而输入的空间位置与输入通道位置在单一的 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,或一个包含 n 个整数的序列,给出在 lhs 的每个空间维度上应用的扩张因子。LHS 扩张也称为转置卷积。
rhs_dilation (Sequence[int] | None) – None,或一个包含 n 个整数的序列,给出在 rhs 的每个输入空间维度上应用的膨胀因子。RHS 膨胀也称为空洞卷积。
dimension_numbers (convolution.ConvGeneralDilatedDimensionNumbers | None) – 可以是 None,一个 ConvDimensionNumbers 对象,或者一个 3-元组 (lhs_spec, rhs_spec, out_spec),其中每个元素是一个长度为 n+2 的字符串。
precision (lax.PrecisionLike) – 可选。可以是
None
,表示后端的默认精度,一个lax.Precision
枚举值(Precision.DEFAULT
、Precision.HIGH
或Precision.HIGHEST
),或者是一个由两个lax.Precision
枚举组成的元组,指示lhs`
和rhs
的精度。
- 返回:
包含未共享卷积结果的数组。
- 返回类型:
在 dimension_numbers 的字符串情况下,每个字符按位置标识:
lhs、rhs 和输出中的批处理维度用字符 ‘N’ 表示。
lhs 中的特征维度以及带有字符 ‘C’ 的输出
在rhs中分别用字符’I’和’O’表示输入和输出的特征维度,并且
使用任何不同的字符表示 lhs、rhs 和输出之间的空间维度对应关系。下面的示例使用 ‘W’ 和 ‘H’。
例如,为了表示与具有两个空间维度的 conv 函数一致的维度编号,可以使用 (‘NCHW’, ‘OIHW’, ‘NCHW’)。再比如,为了表示与 TensorFlow Conv2D 操作一致的维度编号,可以使用 (‘NHWC’, ‘HWIO’, ‘NHWC’)。在使用后一种卷积维度规范时,窗口步幅与空间维度字符标签相关联,关联顺序按照这些标签在 rhs_spec 字符串中出现的顺序,因此 window_strides[0] 与 rhs_spec 中第一个不是 ‘I’ 或 ‘O’ 的字符对应的维度相匹配。
如果 dimension_numbers 是 None,默认值为 `(‘NCHW’, ‘OIHW’, ‘NCHW’)`(用于2D卷积)。