MatMulInteger

MatMulInteger - 10

版本

  • 名称: MatMulInteger (GitHub)

  • 域名: main

  • since_version: 10

  • 函数: False

  • support_level: SupportType.COMMON

  • 形状推断: True

此版本的运算符自版本10起可用。

摘要

矩阵乘积的行为类似于 numpy.matmul。 乘积绝对不能溢出。只有在32位的情况下,累加可能会溢出。

输入

介于2到4个输入之间。

  • A (异构) - T1:

    N维矩阵 A

  • B (异构) - T2:

    N维矩阵 B

  • a_zero_point(可选,异构) - T1:

    输入‘A’的零点张量。它是可选的,默认值为0。它可以是标量或N维张量。标量指的是每张量量化,而N维指的是每行量化。如果输入是形状为[M, K]的2D张量,则零点张量可能是一个M元素向量[zp_1, zp_2, …, zp_M]。如果输入是形状为[D1, D2, M, K]的N维张量,则零点张量可能具有形状[D1, D2, M, 1]。

  • b_zero_point(可选,异构) - T2:

    输入‘B’的零点张量。它是可选的,默认值为0。它可以是标量或N维张量,标量指的是每张量量化,而N维指的是每列量化。如果输入是形状为[K, N]的2D张量,则零点张量可能是一个N元素向量[zp_1, zp_2, …, zp_N]。如果输入是形状为[D1, D2, K, N]的N维张量,则零点张量可能具有形状[D1, D2, 1, N]。

输出

  • Y (异构) - T3:

    矩阵乘法结果来自 A * B

类型约束

  • T1 在 ( tensor(int8), tensor(uint8) ) 中:

    将输入A的数据类型限制为8位整数张量。

  • T2 在 ( tensor(int8), tensor(uint8) ) 中:

    将输入B的数据类型限制为8位整数张量。

  • T3 在 ( tensor(int32) ) 中:

    将输出 Y 数据类型限制为 32 位整数张量。