QLinearMatMul¶
QLinearMatMul - 21¶
版本¶
域名:
mainsince_version:
21函数:
Falsesupport_level:
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函数:
Falsesupport_level:
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 位整数张量。