QLinearConv¶
QLinearConv - 10¶
版本¶
域:
main
起始版本:
10
函数:
False
支持级别:
SupportType.COMMON
形状推断:
True
此版本的运算符自版本 10 起可用。
摘要¶
卷积运算符接收一个量化的输入张量、其比例和零点、一个量化的过滤器、其比例和零点,以及输出的比例和零点,并计算量化的输出。每个比例和零点对必须具有相同的形状。这意味着它们必须是标量(按张量)或一维张量(按输出通道)。每个输入或输出及其相关的零点必须具有相同的类型。当存在偏差时,必须使用 scale = input scale * weight scale 和 zero point = 0 进行量化。
属性¶
auto_pad - 字符串 (默认为
'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 - 整数序列 :
过滤器沿每个空间轴的膨胀值。如果未指定,则沿每个空间轴的膨胀默认为 1。
group - 整数 (默认为
'1'
)输入通道和输出通道被分成的组数。默认为 1。
kernel_shape - 整数序列 :
卷积核的形状。如果未指定,应从输入 'w' 推断。
pads - 整数序列 :
沿每个空间轴开头和结尾的填充,可以取任何大于或等于 0 的值。该值表示添加到相应轴开头和结尾部分的像素数量。
pads
格式应如下所示 [x1_begin, x2_begin…x1_end, x2_end,…],其中 xi_begin 是添加到轴i
开头的像素数量,xi_end 是添加到轴i
结尾的像素数量。此属性不能与 auto_pad 属性同时使用。如果未指定,则沿每个空间轴的开头和结尾的填充默认为 0。strides - 整数序列 :
沿每个空间轴的步长。如果未指定,则沿每个空间轴的步长默认为 1。
输入¶
输入数量在 8 到 9 之间。
x (异构) - T1
来自前一层的输入数据张量;大小为 (N x C x H x W),其中 N 是批大小,C 是通道数,H 和 W 是高度和宽度。请注意,这适用于二维图像。否则,大小为 (N x C x D1 x D2 … x Dn)。可选地,如果启用了维度标记,则操作期望输入数据张量带有维度标记 [DATA_BATCH, DATA_CHANNEL, DATA_FEATURE, DATA_FEATURE …]。
x_scale (异构) - tensor(float)
输入 'x' 的比例张量。它是一个标量,表示按张量/层进行的量化。
x_zero_point (异构) - T1
输入 'x' 的零点张量。它是一个标量,表示按张量/层进行的量化。
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。
w_scale (异构) - tensor(float)
输入 'w' 的比例张量。它可以是标量或一维张量,表示按张量/层或按输出通道进行的量化。如果是一维张量,其元素数量应等于输出通道数 (M)。
w_zero_point (异构) - T2
输入 'w' 的零点张量。它可以是标量或一维张量,表示按张量/层或按输出通道进行的量化。如果是一维张量,其元素数量应等于输出通道数 (M)。
y_scale (异构) - tensor(float)
输出 'y' 的比例张量。它是一个标量,表示按张量/层进行的量化。
y_zero_point (异构) - T3
输出 'y' 的零点张量。它是一个标量,表示按张量/层进行的量化。
B (可选, 异构) - T4
可选的一维偏差,添加到卷积中,大小为 M。偏差必须使用 scale = x_scale * w_scale 和 zero_point = 0 进行量化
输出¶
y (异构) - T3
包含卷积结果的输出数据张量。输出维度是核大小、步长大小和填充长度的函数。
类型约束¶
T1 在 (
tensor(int8)
,tensor(uint8)
) 中将输入类型限制为 8 位整数张量。
T2 在 (
tensor(int8)
,tensor(uint8)
) 中将过滤器类型限制为 8 位整数张量。
T3 在 (
tensor(int8)
,tensor(uint8)
) 中将输出类型限制为 8 位整数张量。
T4 在 (
tensor(int32)
) 中将偏差类型限制为 32 位整数张量。