DeformConv

DeformConv - 22

版本

  • 名称: DeformConv (GitHub)

  • 域名: main

  • since_version: 22

  • 函数: False

  • support_level: 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。

  • 步幅 - 整数 :

    沿每个空间轴的步幅。默认是沿每个轴为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

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

  • mask (可选, 异构) - T:

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

输出

  • 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

  • support_level: 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。

  • 步幅 - 整数 :

    沿每个空间轴的步幅。默认是沿每个轴为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

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

  • mask (可选, 异构) - T:

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

输出

  • Y (异构) - T:

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

类型约束

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

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