ConvTranspose

ConvTranspose - 22

版本

  • 名称: ConvTranspose (GitHub)

  • : main

  • 起始版本: 22

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子自**版本 22**起可用。

摘要

卷积转置算子接收输入张量和滤波器,并计算输出。

如果提供了 pads 参数,输出形状通过以下公式计算

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

output_shape 也可以显式指定,在这种情况下,pads 值将使用这些公式自动生成

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

属性

  • auto_pad - 字符串 (默认为 'NOTSET')

    auto_pad 必须是 NOTSET, SAME_UPPER, SAME_LOWER 或 VALID 之一。默认值为 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 意味着填充输入,使得每个轴 ioutput_shape[i] = input_shape[i] * strides[i]。填充在两侧平均分配或几乎平均分配(取决于奇偶)。如果填充数为奇数,额外的填充将添加到 SAME_UPPER 的末尾和 SAME_LOWER 的开头。

  • 扩张率 - 整数列表 :

    滤波器沿每个空间轴的扩张值。如果不存在,则沿每个空间轴的扩张率默认为 1。

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

    输入通道和输出通道被分成的组数。

  • 卷积核形状 - 整数列表 :

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

  • 输出填充 - 整数列表 :

    在输出中坐标索引较高的一侧添加的额外元素。“output_padding” 中的每个填充值必须小于相应的步长/扩张维度。默认情况下,此属性是零向量。请注意,此属性不直接影响计算的输出值。它只控制计算值的选择,因此更改此属性只会添加或删除输出元素。如果显式提供了 “output_shape”,则 “output_padding” 不会为 “output_shape” 贡献额外的大小,但会参与所需填充量的计算。在某些框架中,这也被称为 adjs 或 adjustment。

  • 输出形状 - 整数列表 :

    输出的形状可以显式设置,这将导致 pads 值自动生成。如果指定了 output_shape,则 pads 值将被忽略。有关生成 pads 的公式,请参阅文档。请注意,output_shape 属性值不应包含批量大小和通道的维度,这些是自动推断的。

  • 填充 - 整数列表 :

    沿每个空间轴开头和结尾的填充,其值可以大于或等于 0。该值表示在对应轴的开头和结尾部分添加的像素数。pads 格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的像素数,xi_end 是在轴 i 的结尾添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则沿每个空间轴的开头和结尾的填充默认为 0。

  • 步长 - 整数列表 :

    沿每个空间轴的步长。如果不存在,则沿每个空间轴的步长默认为 1。

输入

2 到 3 个输入。

  • X (异构) - T

    来自前一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批量大小,C 是通道数,H 和 W 是高度和宽度。请注意,这是针对二维图像的情况。否则,大小为 (N x C x D1 x D2 … x Dn)

  • W (异构) - T

    将用于卷积的权重张量;大小为 (C x M/group x kH x kW),其中 C 是通道数,kH 和 kW 是卷积核的高度和宽度,M 是特征图的数量。对于超过 2 个维度的情况,权重的形状将是 (C x M/group x k1 x k2 x … x kn),其中 (k1 x k2 x … x kn) 是卷积核的维度。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始)

  • B (可选,异构) - T

    可选的一维偏置,将添加到卷积中,大小为 M。

输出

  • Y (异构) - T

    包含卷积结果的输出数据张量。输出维度是卷积核大小、步长大小、填充长度和组数的函数。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始)

类型约束

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

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

ConvTranspose - 11

版本

  • 名称: ConvTranspose (GitHub)

  • : main

  • 起始版本: 11

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子自**版本 11**起可用。

摘要

卷积转置算子接收输入张量和滤波器,并计算输出。

如果提供了 pads 参数,输出形状通过以下公式计算

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

output_shape 也可以显式指定,在这种情况下,pads 值将使用这些公式自动生成

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] If (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

属性

  • auto_pad - 字符串 (默认为 'NOTSET')

    auto_pad 必须是 NOTSET, SAME_UPPER, SAME_LOWER 或 VALID 之一。默认值为 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 意味着填充输入,使得每个轴 ioutput_shape[i] = input_shape[i] * strides[i]。填充在两侧平均分配或几乎平均分配(取决于奇偶)。如果填充数为奇数,额外的填充将添加到 SAME_UPPER 的末尾和 SAME_LOWER 的开头。

  • 扩张率 - 整数列表 :

    滤波器沿每个空间轴的扩张值。如果不存在,则沿每个空间轴的扩张率默认为 1。

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

    输入通道和输出通道被分成的组数。

  • 卷积核形状 - 整数列表 :

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

  • 输出填充 - 整数列表 :

    在输出中坐标索引较高的一侧添加的额外元素。“output_padding” 中的每个填充值必须小于相应的步长/扩张维度。默认情况下,此属性是零向量。请注意,此属性不直接影响计算的输出值。它只控制计算值的选择,因此更改此属性只会添加或删除输出元素。如果显式提供了 “output_shape”,则 “output_padding” 不会为 “output_shape” 贡献额外的大小,但会参与所需填充量的计算。在某些框架中,这也被称为 adjs 或 adjustment。

  • 输出形状 - 整数列表 :

    输出的形状可以显式设置,这将导致 pads 值自动生成。如果指定了 output_shape,则 pads 值将被忽略。有关生成 pads 的公式,请参阅文档。请注意,output_shape 属性值不应包含批量大小和通道的维度,这些是自动推断的。

  • 填充 - 整数列表 :

    沿每个空间轴开头和结尾的填充,其值可以大于或等于 0。该值表示在对应轴的开头和结尾部分添加的像素数。pads 格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的像素数,xi_end 是在轴 i 的结尾添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则沿每个空间轴的开头和结尾的填充默认为 0。

  • 步长 - 整数列表 :

    沿每个空间轴的步长。如果不存在,则沿每个空间轴的步长默认为 1。

输入

2 到 3 个输入。

  • X (异构) - T

    来自前一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批量大小,C 是通道数,H 和 W 是高度和宽度。请注意,这是针对二维图像的情况。否则,大小为 (N x C x D1 x D2 … x Dn)

  • W (异构) - T

    将用于卷积的权重张量;大小为 (C x M/group x kH x kW),其中 C 是通道数,kH 和 kW 是卷积核的高度和宽度,M 是特征图的数量。对于超过 2 个维度的情况,权重的形状将是 (C x M/group x k1 x k2 x … x kn),其中 (k1 x k2 x … x kn) 是卷积核的维度。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始)

  • B (可选,异构) - T

    可选的一维偏置,将添加到卷积中,大小为 M。

输出

  • Y (异构) - T

    包含卷积结果的输出数据张量。输出维度是卷积核大小、步长大小、填充长度和组数的函数。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始)

类型约束

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

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

ConvTranspose - 1

版本

  • 名称: ConvTranspose (GitHub)

  • : main

  • 起始版本: 1

  • 函数: False

  • 支持级别: SupportType.COMMON

  • 形状推断: True

此版本的算子自**版本 1**起可用。

摘要

卷积转置算子接收输入张量和滤波器,并计算输出。

如果提供了 pads 参数,输出形状通过以下公式计算

output_shape[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - pads[start_i] - pads[end_i]

output_shape 也可以显式指定,在这种情况下,pads 值将使用这些公式自动生成

total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] If (auto_pads != SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) Else: pads[start_i] = total_padding[i] - (total_padding[i]/2); pads[end_i] = (total_padding[i]/2)。

属性

  • auto_pad - 字符串 (默认为 'NOTSET')

    auto_pad 必须是 NOTSET, SAME_UPPER, SAME_LOWER 或 VALID 之一。默认值为 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,使输出空间大小与输入匹配。如果填充数为奇数,则在 SAME_UPPER 的末尾和 SAME_LOWER 的开头添加额外的填充。VALID 表示没有填充。

  • 扩张率 - 整数列表 :

    滤波器沿每个空间轴的扩张值。

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

    输入通道和输出通道被分成的组数。

  • 卷积核形状 - 整数列表 :

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

  • 输出填充 - 整数列表 :

    添加到输出一侧的零填充。在某些框架中,这也称为 adjs/adjustment。

  • 输出形状 - 整数列表 :

    输出的形状可以显式设置,这将导致 pads 值自动生成。如果指定了 output_shape,则 pads 值将被忽略。有关生成 pads 的公式,请参阅文档

  • 填充 - 整数列表 :

    沿每个空间轴开头和结尾的填充,其值可以大于或等于 0。该值表示在对应轴的开头和结尾部分添加的像素数。pads 格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是在轴 i 的开头添加的像素数,xi_end 是在轴 i 的结尾添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则沿每个空间轴的开头和结尾的填充默认为 0。

  • 步长 - 整数列表 :

    沿每个空间轴的步长。

输入

2 到 3 个输入。

  • X (异构) - T

    来自前一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批量大小,C 是通道数,H 和 W 是高度和宽度。请注意,这是针对二维图像的情况。否则,大小为 (N x C x D1 x D2 … x Dn)

  • W (异构) - T

    将用于卷积的权重张量;大小为 (C x M/group x kH x kW),其中 C 是通道数,kH 和 kW 是卷积核的高度和宽度,M 是特征图的数量。对于超过 2 个维度的情况,权重的形状将是 (C x M/group x k1 x k2 x … x kn),其中 (k1 x k2 x … x kn) 是卷积核的维度。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始)

  • B (可选,异构) - T

    可选的一维偏置,将添加到卷积中,大小为 M。

输出

  • Y (异构) - T

    包含卷积结果的输出数据张量。输出维度是卷积核大小、步长大小、填充长度和组数的函数。输出中的通道数应等于 W.shape[1] * group(假设形状数组的索引从零开始)

类型约束

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

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