Conv¶
Conv - 22¶
版本¶
名称: Conv (GitHub)
域:
main
自版本起:
22
功能:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自版本 22起可用。
摘要¶
卷积运算符使用输入张量和滤波器,并计算输出。
属性¶
auto_pad - STRING (默认值为
'NOTSET'
)auto_pad 必须为 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID。其中默认值为 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,以便
output_shape[i] = ceil(input_shape[i] / strides[i])
对于每个轴i
。填充在两侧均匀或几乎均匀地分配(取决于它是偶数还是奇数)。如果填充是奇数,则在 SAME_UPPER 的末尾添加额外的填充,在 SAME_LOWER 的开头添加额外的填充。dilations - INTS :
滤波器沿每个空间轴的膨胀值。如果不存在,则膨胀默认为每个空间轴为 1。
group - INT (默认值为
'1'
)输入通道和输出通道划分的组数。
kernel_shape - INTS :
卷积核的形状。如果不存在,则应从输入 W 推断。
pads - INTS :
沿每个空间轴的开始和结束处的填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads
格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…], 其中 xi_begin 是添加到轴i
开头的像素数,xi_end 是添加到轴i
末尾的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则 padding 默认为每个空间轴的开始和结束处为 0。strides - INTS :
沿每个空间轴的步长。如果不存在,则步长默认为每个空间轴为 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)。可选地,如果维度表示有效,则操作期望输入数据张量以 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …] 的维度表示到达。
W (异构) - T
将在卷积中使用的权重张量;大小为 (M x C/group x kH x kW),其中 C 是通道数,kH 和 kW 是核的高度和宽度,M 是特征图数。对于超过 2 维的情况,内核形状将为 (M x C/group x k1 x k2 x … x kn),其中 (k1 x k2 x … kn) 是内核的维度。可选地,如果维度表示有效,则操作期望权重张量以 [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL …] 的维度表示到达。假设形状数组的索引从零开始,X.shape[1] == (W.shape[1] * group) == C 并且 W.shape[0] mod G == 0。或者换句话说,FILTER_IN_CHANNEL 乘以组数应该等于 DATA_CHANNEL,并且特征图数 M 应该是组数 G 的倍数。
B (可选,异构) - T
可选的 1D 偏差,将添加到卷积中,大小为 M。
输出¶
Y (异构) - T
包含卷积结果的输出数据张量。输出维度是内核大小、步长大小和填充长度的函数。
类型约束¶
T in (
tensor(bfloat16)
,tensor(double)
,tensor(float)
,tensor(float16)
)将输入和输出类型约束为浮点张量。
Conv - 11¶
版本¶
名称: Conv (GitHub)
域:
main
自版本起:
11
功能:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自版本 11起可用。
摘要¶
卷积运算符使用输入张量和滤波器,并计算输出。
属性¶
auto_pad - STRING (默认值为
'NOTSET'
)auto_pad 必须为 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID。其中默认值为 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,以便
output_shape[i] = ceil(input_shape[i] / strides[i])
对于每个轴i
。填充在两侧均匀或几乎均匀地分配(取决于它是偶数还是奇数)。如果填充是奇数,则在 SAME_UPPER 的末尾添加额外的填充,在 SAME_LOWER 的开头添加额外的填充。dilations - INTS :
滤波器沿每个空间轴的膨胀值。如果不存在,则膨胀默认为每个空间轴为 1。
group - INT (默认值为
'1'
)输入通道和输出通道划分的组数。
kernel_shape - INTS :
卷积核的形状。如果不存在,则应从输入 W 推断。
pads - INTS :
沿每个空间轴的开始和结束处的填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads
格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…], 其中 xi_begin 是添加到轴i
开头的像素数,xi_end 是添加到轴i
末尾的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则 padding 默认为每个空间轴的开始和结束处为 0。strides - INTS :
沿每个空间轴的步长。如果不存在,则步长默认为每个空间轴为 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)。可选地,如果维度表示有效,则操作期望输入数据张量以 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …] 的维度表示到达。
W (异构) - T
将在卷积中使用的权重张量;大小为 (M x C/group x kH x kW),其中 C 是通道数,kH 和 kW 是核的高度和宽度,M 是特征图数。对于超过 2 维的情况,内核形状将为 (M x C/group x k1 x k2 x … x kn),其中 (k1 x k2 x … kn) 是内核的维度。可选地,如果维度表示有效,则操作期望权重张量以 [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL …] 的维度表示到达。假设形状数组的索引从零开始,X.shape[1] == (W.shape[1] * group) == C 并且 W.shape[0] mod G == 0。或者换句话说,FILTER_IN_CHANNEL 乘以组数应该等于 DATA_CHANNEL,并且特征图数 M 应该是组数 G 的倍数。
B (可选,异构) - T
可选的 1D 偏差,将添加到卷积中,大小为 M。
输出¶
Y (异构) - T
包含卷积结果的输出数据张量。输出维度是内核大小、步长大小和填充长度的函数。
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
,tensor(float16)
) 中将输入和输出类型约束为浮点张量。
Conv - 1¶
版本¶
名称: Conv (GitHub)
域:
main
since_version:
1
功能:
False
支持级别:
SupportType.COMMON
形状推断:
True
该版本的操作符已从版本 1开始可用。
摘要¶
卷积运算符使用输入张量和滤波器,并计算输出。
属性¶
auto_pad - STRING (默认值为
'NOTSET'
)auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 之一。其中默认值为 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 表示对输入进行填充,以使输出空间大小与 input.In 相匹配,在奇数情况下,SAME_UPPER 在末尾添加额外填充,SAME_LOWER 在开头添加额外填充。VALID 表示不填充。
dilations - INTS :
沿过滤器每个空间轴的膨胀值。
group - INT (默认值为
'1'
)输入通道和输出通道划分的组数。
kernel_shape - INTS :
卷积核的形状。如果不存在,则应从输入 W 推断。
pads - INTS :
沿每个空间轴的开始和结束处的填充,它可以取任何大于或等于 0 的值。该值表示添加到相应轴的开始和结束部分的像素数。
pads
格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…], 其中 xi_begin 是添加到轴i
开头的像素数,xi_end 是添加到轴i
末尾的像素数。此属性不能与 auto_pad 属性同时使用。如果不存在,则 padding 默认为每个空间轴的开始和结束处为 0。strides - INTS :
沿每个空间轴的步幅。
输入¶
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)。可选地,如果维度表示有效,则操作期望输入数据张量以 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …] 的维度表示到达。
W (异构) - T
将在卷积中使用的权重张量;大小为 (M x C/group x kH x kW),其中 C 是通道数,kH 和 kW 是内核的高度和宽度,M 是特征图的数量。对于超过两个维度的,内核形状将为 (M x C/group x k1 x k2 x … x kn),其中 (k1 x k2 x … kn) 是内核的维度。可选地,如果维度表示有效,则操作期望权重张量以 [FILTER_OUT_CHANNEL, FILTER_IN_CHANNEL, FILTER_SPATIAL, FILTER_SPATIAL …] 的维度表示到达。X.shape[1] == (W.shape[1] * group) == C(假设形状数组的索引从零开始)。或者换句话说,FILTER_IN_CHANNEL 应该等于 DATA_CHANNEL。
B (可选,异构) - T
可选的 1D 偏差,将添加到卷积中,大小为 M。
输出¶
Y (异构) - T
包含卷积结果的输出数据张量。输出维度是内核大小、步长大小和填充长度的函数。
类型约束¶
T 在 (
tensor(double)
,tensor(float)
,tensor(float16)
) 中将输入和输出类型约束为浮点张量。