ConvInteger¶
ConvInteger - 10¶
版本¶
域:
main
起始版本:
10
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自版本 10 起可用。
摘要¶
整数卷积运算符接收输入张量、其零点、滤波器及其零点,并计算输出。乘积绝不能溢出。仅当累加在 32 位中时才可能溢出。
属性¶
auto_pad - STRING (默认值为
'NOTSET'
)auto_pad 必须是 NOTSET、SAME_UPPER、SAME_LOWER 或 VALID 之一。默认值是 NOTSET,表示使用显式填充。SAME_UPPER 或 SAME_LOWER 表示填充输入,使得对于每个轴
i
,output_shape[i] = ceil(input_shape[i] / strides[i])
。填充会平均或几乎平均地分配到两边(取决于它是偶数还是奇数)。如果填充是奇数,则额外填充会添加到 SAME_UPPER 的末尾和 SAME_LOWER 的开头。dilations - INTS :
沿滤波器每个空间轴的膨胀值。如果不存在,则沿每个轴的膨胀默认为 1。
group - INT (默认值为
'1'
)输入通道和输出通道被划分成的组数。默认值为 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 属性同时使用。如果不存在,则沿每个空间轴的开头和结尾的填充默认为 0。strides - INTS :
沿每个空间轴的步长。如果不存在,则沿每个轴的步长默认为 1。
输入¶
介于 2 到 4 个输入。
x (异构) - T1
来自前一层的输入数据张量;大小为 (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 (异构) - T2
权重张量,用于卷积运算;大小为 (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 (假设形状数组使用零基索引)。换句话说,FILTER_IN_CHANNEL 应该等于 DATA_CHANNEL。
x_zero_point (可选,异构) - T1
输入 ‘x’ 的零点张量。它是可选的,默认值为 0。它是一个标量,表示按张量/按层量化。
w_zero_point (可选,异构) - T2
输入 ‘w’ 的零点张量。它是可选的,默认值为 0。它可能是一个标量或一个 1-D 张量,表示按张量/按层或按输出通道量化。如果它是一个 1-D 张量,其元素数量应等于输出通道的数量 (M)
输出¶
y (异构) - T3
输出数据张量,包含卷积的结果。输出维度是核大小、步幅大小和填充长度的函数。
类型约束¶
T1 范围 (
tensor(int8)
,tensor(uint8)
)将输入 x 及其零点的数据类型约束为 8 位整数张量。
T2 范围 (
tensor(int8)
,tensor(uint8)
)将输入 w 及其零点的数据类型约束为 8 位整数张量。
T3 范围 (
tensor(int32)
)将输出 y 的数据类型约束为 32 位整数张量。