ConvTranspose¶
ConvTranspose - 22¶
版本¶
域:
main
起始版本:
22
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自 版本 22 起可用。
摘要¶
转置卷积运算符接受一个输入张量和一个滤波器,并计算输出。
如果提供了填充参数,则输出的形状通过以下方程计算
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 也可以显式指定,在这种情况下,填充值使用以下方程自动生成
total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] 如果 (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) 否则: 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 表示对输入进行填充,使得每个轴
i
的output_shape[i] = input_shape[i] * strides[i]
。填充在两边均匀或几乎均匀地分配(取决于它是偶数还是奇数)。如果填充是奇数,则额外的填充在 SAME_UPPER 的末尾添加,在 SAME_LOWER 的开头添加。dilations - 整数 :
沿滤波器每个空间轴的膨胀值。如果不存在,则每个空间轴的膨胀默认为 1。
group - 整数 (默认为
'1'
)输入通道和输出通道被划分的组数。
kernel_shape - 整数 :
卷积核的形状。如果不存在,应从输入 W 推断。
output_padding - 整数数组 :
添加到输出中具有更高坐标索引的一侧的附加元素。“output_padding”中的每个填充值必须小于相应的步幅/膨胀维度。默认情况下,此属性为零向量。请注意,此属性不会直接影响计算的输出值。它仅控制计算值的选择,因此更改此属性只会添加或删除输出元素。如果显式提供了“output_shape”,“output_padding”不会为“output_shape”增加额外的大小,但会参与所需填充量的计算。这在某些框架中也称为 adjs 或 adjustment。
output_shape - 整数数组 :
输出的形状可以显式设置,这将导致填充值自动生成。如果指定了 output_shape,则忽略填充值。有关生成填充的方程的详细信息,请参阅文档。请注意,output_shape 属性值不应包含批次大小和通道的维度,这些维度是自动推断的。
pads - 整数 :
沿每个空间轴的开始和结束部分的填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads
格式应如下 [x1_begin, x2_begin...x1_end, x2_end,...],其中 xi_begin 是在轴i
的开始处添加的像素数,xi_end 是在轴i
的结束处添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则每个空间轴的开始和结束处的填充默认为 0。strides - 整数 :
沿每个空间轴的步长。如果不存在,步长默认为沿每个空间轴的 1。
输入¶
2 到 3 个输入之间。
X (异构) - T
来自上一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批次大小,C 是通道数,H 和 W 是高度和宽度。请注意,这适用于 2D 图像。否则,大小为 (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
可选的 1D 偏置,将添加到卷积中,大小为 M。
输出¶
Y (异构) - T
包含卷积结果的输出数据张量。输出维度是内核大小、步幅大小、填充长度和组数的函数。输出中的通道数应等于 W.shape[1] * group (假设形状数组的零基索引)
类型约束¶
T 在 (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。
ConvTranspose - 11¶
版本¶
域:
main
起始版本:
11
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自 版本 11 起可用。
摘要¶
转置卷积运算符接受一个输入张量和一个滤波器,并计算输出。
如果提供了填充参数,则输出的形状通过以下方程计算
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 也可以显式指定,在这种情况下,填充值使用以下方程自动生成
total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] 如果 (auto_pads == SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) 否则: 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 表示对输入进行填充,使得每个轴
i
的output_shape[i] = input_shape[i] * strides[i]
。填充在两边均匀或几乎均匀地分配(取决于它是偶数还是奇数)。如果填充是奇数,则额外的填充在 SAME_UPPER 的末尾添加,在 SAME_LOWER 的开头添加。dilations - 整数 :
沿滤波器每个空间轴的膨胀值。如果不存在,则每个空间轴的膨胀默认为 1。
group - 整数 (默认为
'1'
)输入通道和输出通道被划分的组数。
kernel_shape - 整数 :
卷积核的形状。如果不存在,应从输入 W 推断。
output_padding - 整数数组 :
添加到输出中具有更高坐标索引的一侧的附加元素。“output_padding”中的每个填充值必须小于相应的步幅/膨胀维度。默认情况下,此属性为零向量。请注意,此属性不会直接影响计算的输出值。它仅控制计算值的选择,因此更改此属性只会添加或删除输出元素。如果显式提供了“output_shape”,“output_padding”不会为“output_shape”增加额外的大小,但会参与所需填充量的计算。这在某些框架中也称为 adjs 或 adjustment。
output_shape - 整数数组 :
输出的形状可以显式设置,这将导致填充值自动生成。如果指定了 output_shape,则忽略填充值。有关生成填充的方程的详细信息,请参阅文档。请注意,output_shape 属性值不应包含批次大小和通道的维度,这些维度是自动推断的。
pads - 整数 :
沿每个空间轴的开始和结束部分的填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads
格式应如下 [x1_begin, x2_begin...x1_end, x2_end,...],其中 xi_begin 是在轴i
的开始处添加的像素数,xi_end 是在轴i
的结束处添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则每个空间轴的开始和结束处的填充默认为 0。strides - 整数 :
沿每个空间轴的步长。如果不存在,步长默认为沿每个空间轴的 1。
输入¶
2 到 3 个输入之间。
X (异构) - T
来自上一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批次大小,C 是通道数,H 和 W 是高度和宽度。请注意,这适用于 2D 图像。否则,大小为 (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
可选的 1D 偏置,将添加到卷积中,大小为 M。
输出¶
Y (异构) - T
包含卷积结果的输出数据张量。输出维度是内核大小、步幅大小、填充长度和组数的函数。输出中的通道数应等于 W.shape[1] * group (假设形状数组的零基索引)
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。
ConvTranspose - 1¶
版本¶
域:
main
起始版本:
1
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自 版本 1 起可用。
摘要¶
转置卷积运算符接受一个输入张量和一个滤波器,并计算输出。
如果提供了填充参数,则输出的形状通过以下方程计算
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 也可以显式指定,在这种情况下,填充值使用以下方程自动生成
total_padding[i] = stride[i] * (input_size[i] - 1) + output_padding[i] + ((kernel_shape[i] - 1) * dilations[i] + 1) - output_shape[i] 如果 (auto_pads != SAME_UPPER): pads[start_i] = total_padding[i]/2; pads[end_i] = total_padding[i] - (total_padding[i]/2) 否则: 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 表示无填充。
dilations - 整数 :
沿滤波器每个空间轴的膨胀值。
group - 整数 (默认为
'1'
)输入通道和输出通道被划分的组数。
kernel_shape - 整数 :
卷积核的形状。如果不存在,应从输入 W 推断。
output_padding - 整数数组 :
添加到输出一侧的零填充。这在某些框架中也称为 adjs/adjustment。
output_shape - 整数数组 :
输出的形状可以显式设置,这将导致填充值自动生成。如果指定了 output_shape,则忽略填充值。有关生成填充的方程的详细信息,请参阅文档
pads - 整数 :
沿每个空间轴的开始和结束部分的填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads
格式应如下 [x1_begin, x2_begin...x1_end, x2_end,...],其中 xi_begin 是在轴i
的开始处添加的像素数,xi_end 是在轴i
的结束处添加的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则每个空间轴的开始和结束处的填充默认为 0。strides - 整数 :
沿每个空间轴的步幅。
输入¶
2 到 3 个输入之间。
X (异构) - T
来自上一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批次大小,C 是通道数,H 和 W 是高度和宽度。请注意,这适用于 2D 图像。否则,大小为 (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
可选的 1D 偏置,将添加到卷积中,大小为 M。
输出¶
Y (异构) - T
包含卷积结果的输出数据张量。输出维度是内核大小、步幅大小、填充长度和组数的函数。输出中的通道数应等于 W.shape[1] * group (假设形状数组的零基索引)
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型限制为浮点张量。