QLinearMatMul¶
QLinearMatMul - 21¶
版本¶
域:
mainsince_version:
21函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的操作符自 版本 21 起可用。
摘要¶
矩阵乘积,行为类似于 numpy.matmul。它接收两个量化输入张量、它们的比例和零点、输出的比例和零点,并计算量化输出。量化公式为 y = saturate((x / y_scale) + y_zero_point)。对于 (x / y_scale),它会四舍五入到最近的偶数。详情请参阅 https://en.wikipedia.org/wiki/Rounding。比例和零点必须具有相同的形状。它们必须是标量(每个张量)或 N 维张量('a' 的每行和 'b' 的每列)。标量指按张量量化,而 N 维指按行或按列量化。如果输入是形状为 [M, K] 的 2D 张量,则零点和比例张量可以是 M 个元素的向量 [v_1, v_2, ..., v_M] 用于按行量化,或 K 个元素的向量 [v_1, v_2, ..., v_K] 用于按列量化。如果输入是形状为 [D1, D2, M, K] 的 N 维张量,则零点和比例张量可以具有形状 [D1, D2, M, 1] 用于按行量化,或形状 [D1, D2, 1, K] 用于按列量化。乘法绝不能溢出,累加只有在 32 位时才可能溢出。
输入¶
a (异构) - T1
N 维量化矩阵 a
a_scale (异构) - TS
量化输入 a 的比例
a_zero_point (异构) - T1
量化输入 a 的零点
b (异构) - T2
N 维量化矩阵 b
b_scale (异构) - TS
量化输入 b 的比例
b_zero_point (异构) - T2
量化输入 b 的零点
y_scale (异构) - TS
量化输出 y 的比例
y_zero_point (异构) - T3
量化输出 y 的零点
输出¶
y (异构) - T3
a * b 的量化矩阵乘法结果
类型约束¶
TS 位于 (
tensor(bfloat16),tensor(float),tensor(float16))限制比例。
T1 位于 (
tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(int8),tensor(uint8))输入 a 及其零点的类型。
T2 位于 (
tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(int8),tensor(uint8))输入 b 及其零点的类型。
T3 位于 (
tensor(float8e4m3fn),tensor(float8e4m3fnuz),tensor(float8e5m2),tensor(float8e5m2fnuz),tensor(int8),tensor(uint8))输出及其零点的类型。
QLinearMatMul - 10¶
版本¶
域:
mainsince_version:
10函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的操作符已在 版本 10 中提供。
摘要¶
矩阵乘积,行为类似于 numpy.matmul。它接收两个量化输入张量、它们的比例和零点、输出的比例和零点,并计算量化输出。量化公式为 y = saturate((x / y_scale) + y_zero_point)。对于 (x / y_scale),它会四舍五入到最近的偶数。详情请参阅 https://en.wikipedia.org/wiki/Rounding。比例和零点必须具有相同的形状。它们必须是标量(每个张量)或 N 维张量('a' 的每行和 'b' 的每列)。标量指按张量量化,而 N 维指按行或按列量化。如果输入是形状为 [M, K] 的 2D 张量,则零点和比例张量可以是 M 个元素的向量 [v_1, v_2, ..., v_M] 用于按行量化,或 K 个元素的向量 [v_1, v_2, ..., v_K] 用于按列量化。如果输入是形状为 [D1, D2, M, K] 的 N 维张量,则零点和比例张量可以具有形状 [D1, D2, M, 1] 用于按行量化,或形状 [D1, D2, 1, K] 用于按列量化。乘法绝不能溢出,累加只有在 32 位时才可能溢出。
输入¶
a (异构) - T1
N 维量化矩阵 a
a_scale (异构) - tensor(float)
量化输入 a 的比例
a_zero_point (异构) - T1
量化输入 a 的零点
b (异构) - T2
N 维量化矩阵 b
b_scale (异构) - tensor(float)
量化输入 b 的比例
b_zero_point (异构) - T2
量化输入 b 的零点
y_scale (异构) - tensor(float)
量化输出 y 的比例
y_zero_point (异构) - T3
量化输出 y 的零点
输出¶
y (异构) - T3
a * b 的量化矩阵乘法结果
类型约束¶
T1 在 (
tensor(int8),tensor(uint8)) 中将输入 a 及其零点数据类型限制为 8 位整数张量。
T2 在 (
tensor(int8),tensor(uint8)) 中将输入 b 及其零点数据类型限制为 8 位整数张量。
T3 位于 (
tensor(int8),tensor(uint8))将输出 y 及其零点数据类型限制为 8 位整数张量。