MatMulInteger

MatMulInteger - 10

版本

  • 名稱: MatMulInteger (GitHub)

  • 網域: main

  • since_version: 10

  • function: 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 in ( tensor(int8), tensor(uint8) )

    將輸入 A 資料類型約束為 8 位元整數張量。

  • T2 in ( tensor(int8), tensor(uint8) )

    將輸入 B 資料類型約束為 8 位元整數張量。

  • T3 in ( tensor(int32) )

    將輸出 Y 資料類型約束為 32 位元整數張量。