DeformConv

DeformConv - 22

版本

  • 名称: DeformConv (GitHub)

  • : main

  • 起始版本: 22

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

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

摘要

执行https://arxiv.org/abs/1703.06211https://arxiv.org/abs/1811.11168 中描述的可变形卷积。此操作符规范支持通用的 N-D 情况。请注意,大多数常见用例是 2D 或 3D 数据。

属性

  • dilations - 整数 :

    沿着核的每个空间轴的膨胀值。默认沿每个轴为 1。

  • group - 整数 (默认为 '1')

    输入和输出通道 C 和 oC 被划分成的组数。C 和 oC 都必须能被 group 整除。默认值为 1。

  • kernel_shape - 整数 :

    卷积核的形状。如果不存在,则从输入 W 的形状推断。

  • offset_group - INT (默认值为 '1')

    偏移量组的数量。C 必须能被 offset_group 整除。默认值为 1。

  • pads - 整数 :

    沿每个空间轴的开始和结束填充。这些值表示添加到相应轴的开始和结束的像素数量,并且可以是任何非负值。格式应如下所示:[x1_begin, x2_begin, …, x1_end, x2_end, …],其中 xi_begin 是添加到轴 i 开始处的像素数量,xi_end 是添加到轴 i 结束处的像素数量。默认沿每个轴为 0。

  • strides - 整数 :

    沿每个空间轴的步幅。默认沿每个轴为 1。

输入

3 到 5 个输入。

  • X (异构) - T

    输入数据张量。对于 2D 图像数据,其形状为 (N, C, H, W),其中 N 是批量大小,C 是输入通道数,H 和 W 是高度和宽度。通常,对于 n 维数据,形状为 (N, C, D1, D2, … , Dn),其中 D1 到 Dn 是空间维度大小。最常见的用例是 n = 2 或 3。

  • W (异构) - T

    将用于卷积的权重张量。其形状为 (oC, C/group, kH, kW),其中 oC 是输出通道数,kH 和 kW 是核的高度和宽度。对于超过 2 维的情况,其形状为 (oC, C/group, k1, k2, … , kn)。

  • offset (异构) - T

    表示卷积核中采样位置偏移量的偏移张量。对于 2D 数据,其形状为 (N, offset_group * kH * kW * 2, oH, oW);对于 nD 数据,其形状为 (N, offset_group * k1 * k2 * … * kn * n, o1, o2, … , on)。对于分数偏移值使用线性插值。填充输入张量之外的采样位置给出零。

  • B (可选,异构) - T

    长度为 oC 的可选 1D 偏置,将添加到卷积中。默认是零张量。

  • mask (可选,异构) - T

    应用于卷积核中每个位置的掩码张量。对于 2D 数据,其形状为 (N, offset_group * kH * kW, oH, oW);对于 nD 数据,其形状为 (N, offset_group * k1 * k2 * … * kn * n, o1, o2, … , on)。默认是全一张量。

输出

  • Y (异构) - T

    输出数据张量,包含卷积结果。对于 2D 数据,其形状为 (N, oC, oH, oW);对于 nD 数据,其形状为 (N, oC, o1, o2, …, on)。

类型约束

  • T 在 ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    将输入和输出类型限制为浮点张量。

DeformConv - 19

版本

  • 名称: DeformConv (GitHub)

  • : main

  • since_version: 19

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的操作符自 版本 19 起可用。

摘要

执行https://arxiv.org/abs/1703.06211https://arxiv.org/abs/1811.11168 中描述的可变形卷积。此操作符规范支持通用的 N-D 情况。请注意,大多数常见用例是 2D 或 3D 数据。

属性

  • dilations - 整数 :

    沿着核的每个空间轴的膨胀值。默认沿每个轴为 1。

  • group - 整数 (默认为 '1')

    输入和输出通道 C 和 oC 被划分成的组数。C 和 oC 都必须能被 group 整除。默认值为 1。

  • kernel_shape - 整数 :

    卷积核的形状。如果不存在,则从输入 W 的形状推断。

  • offset_group - INT (默认值为 '1')

    偏移量组的数量。C 必须能被 offset_group 整除。默认值为 1。

  • pads - 整数 :

    沿每个空间轴的开始和结束填充。这些值表示添加到相应轴的开始和结束的像素数量,并且可以是任何非负值。格式应如下所示:[x1_begin, x2_begin, …, x1_end, x2_end, …],其中 xi_begin 是添加到轴 i 开始处的像素数量,xi_end 是添加到轴 i 结束处的像素数量。默认沿每个轴为 0。

  • strides - 整数 :

    沿每个空间轴的步幅。默认沿每个轴为 1。

输入

3 到 5 个输入。

  • X (异构) - T

    输入数据张量。对于 2D 图像数据,其形状为 (N, C, H, W),其中 N 是批量大小,C 是输入通道数,H 和 W 是高度和宽度。通常,对于 n 维数据,形状为 (N, C, D1, D2, … , Dn),其中 D1 到 Dn 是空间维度大小。最常见的用例是 n = 2 或 3。

  • W (异构) - T

    将用于卷积的权重张量。其形状为 (oC, C/group, kH, kW),其中 oC 是输出通道数,kH 和 kW 是核的高度和宽度。对于超过 2 维的情况,其形状为 (oC, C/group, k1, k2, … , kn)。

  • offset (异构) - T

    表示卷积核中采样位置偏移量的偏移张量。对于 2D 数据,其形状为 (N, offset_group * kH * kW * 2, oH, oW);对于 nD 数据,其形状为 (N, offset_group * k1 * k2 * … * kn * n, o1, o2, … , on)。对于分数偏移值使用线性插值。填充输入张量之外的采样位置给出零。

  • B (可选,异构) - T

    长度为 oC 的可选 1D 偏置,将添加到卷积中。默认是零张量。

  • mask (可选,异构) - T

    应用于卷积核中每个位置的掩码张量。对于 2D 数据,其形状为 (N, offset_group * kH * kW, oH, oW);对于 nD 数据,其形状为 (N, offset_group * k1 * k2 * … * kn * n, o1, o2, … , on)。默认是全一张量。

输出

  • Y (异构) - T

    输出数据张量,包含卷积结果。对于 2D 数据,其形状为 (N, oC, oH, oW);对于 nD 数据,其形状为 (N, oC, o1, o2, …, on)。

类型约束

  • T 在 ( tensor(double), tensor(float), tensor(float16) )

    将输入和输出类型限制为浮点张量。