DeformConv

DeformConv - 22

版本

  • 名称: DeformConv (GitHub)

  • : main

  • 自版本: 22

  • 功能: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

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

摘要

执行可变形卷积,如 https://arxiv.org/abs/1703.06211https://arxiv.org/abs/1811.11168 中所述。此运算符规范支持一般的 N 维情况。请注意,大多数常见用例具有 2D 或 3D 数据。

属性

  • dilations - INTS :

    内核沿每个空间轴的膨胀值。默认情况下,每个轴为 1。

  • group - INT(默认值为 '1'

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

  • kernel_shape - INTS :

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

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

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

  • pads - INTS :

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

  • strides - INTS :

    沿每个空间轴的步长。默认情况下,每个轴为 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 in ( tensor(bfloat16), tensor(double), tensor(float), tensor(float16) )

    将输入和输出类型约束为浮点张量。

DeformConv - 19

版本

  • 名称: DeformConv (GitHub)

  • : main

  • 自版本: 19

  • 功能: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

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

摘要

执行可变形卷积,如 https://arxiv.org/abs/1703.06211https://arxiv.org/abs/1811.11168 中所述。此运算符规范支持一般的 N 维情况。请注意,大多数常见用例具有 2D 或 3D 数据。

属性

  • dilations - INTS :

    内核沿每个空间轴的膨胀值。默认情况下,每个轴为 1。

  • group - INT(默认值为 '1'

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

  • kernel_shape - INTS :

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

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

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

  • pads - INTS :

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

  • strides - INTS :

    沿每个空间轴的步长。默认情况下,每个轴为 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 in ( tensor(double), tensor(float), tensor(float16) )

    将输入和输出类型约束为浮点张量。