Gemm

Gemm - 13

版本

  • 名稱: Gemm (GitHub)

  • 網域: main

  • since_version: 13

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此版本的運算子自第 13 版起可用。

摘要

通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3

  • A’ = 如果 transA 則轉置(A) 否則 A

  • B’ = 如果 transB 則轉置(B) 否則 B

計算 Y = alpha * A’ * B’ + beta * C,其中輸入張量 A 的形狀為 (M, K) 或 (K, M),輸入張量 B 的形狀為 (K, N) 或 (N, K),輸入張量 C 可廣播為形狀 (M, N),而輸出張量 Y 的形狀為 (M, N)。如果屬性 transA 為非零值,則 A 會在執行計算之前轉置,B 和 transB 亦同。此運算子支援單向廣播(張量 C 應可單向廣播為張量 A * B);如需更多詳細資訊,請查看 ONNX 中的廣播。此運算子具有選用的輸入/輸出。如需關於選用引數表示法的更多詳細資訊,請參閱 ONNX IR。空字串可用於代替實際引數的名稱,以指示遺失的引數。尾隨的選用引數(後面沒有接著存在的引數)也可以直接省略。

屬性

  • alpha - FLOAT(預設為 '1.0'

    輸入張量 A * B 乘積的純量乘數。

  • beta - FLOAT(預設為 '1.0'

    輸入張量 C 的純量乘數。

  • transA - INT(預設為 '0'

    是否應轉置 A

  • transB - INT(預設為 '0'

    是否應轉置 B

輸入

介於 2 到 3 個輸入之間。

  • A(異質)- T

    輸入張量 A。如果 transA 為 0,則 A 的形狀應為 (M, K);如果 transA 為非零值,則 A 的形狀應為 (K, M)。

  • B(異質)- T

    輸入張量 B。如果 transB 為 0,則 B 的形狀應為 (K, N);如果 transB 為非零值,則 B 的形狀應為 (N, K)。

  • C(選用,異質)- T

    選用輸入張量 C。如果未指定,則計算的執行方式視為 C 為純量 0。C 的形狀應可單向廣播為 (M, N)。

輸出

  • Y(異質)- T

    形狀為 (M, N) 的輸出張量。

類型限制

  • T 在(tensor(bfloat16)tensor(double)tensor(float)tensor(float16)tensor(int32)tensor(int64)tensor(uint32)tensor(uint64))中

    將輸入和輸出類型限制為浮點數/整數張量。

Gemm - 11

版本

  • 名稱: Gemm (GitHub)

  • 網域: main

  • since_version: 11

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此版本的運算子自第 11 版起可用。

摘要

通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3

A’ = 如果 transA 則轉置(A) 否則 A

B’ = 如果 transB 則轉置(B) 否則 B

計算 Y = alpha * A’ * B’ + beta * C,其中輸入張量 A 的形狀為 (M, K) 或 (K, M),輸入張量 B 的形狀為 (K, N) 或 (N, K),輸入張量 C 可廣播為形狀 (M, N),而輸出張量 Y 的形狀為 (M, N)。如果屬性 transA 為非零值,則 A 會在執行計算之前轉置,B 和 transB 亦同。此運算子支援單向廣播(張量 C 應可單向廣播為張量 A * B);如需更多詳細資訊,請查看 ONNX 中的廣播。此運算子具有選用的輸入/輸出。如需關於選用引數表示法的更多詳細資訊,請參閱 ONNX IR。空字串可用於代替實際引數的名稱,以指示遺失的引數。尾隨的選用引數(後面沒有接著存在的引數)也可以直接省略。

屬性

  • alpha - FLOAT(預設為 '1.0'

    輸入張量 A * B 乘積的純量乘數。

  • beta - FLOAT(預設為 '1.0'

    輸入張量 C 的純量乘數。

  • transA - INT(預設為 '0'

    是否應轉置 A

  • transB - INT(預設為 '0'

    是否應轉置 B

輸入

介於 2 到 3 個輸入之間。

  • A(異質)- T

    輸入張量 A。如果 transA 為 0,則 A 的形狀應為 (M, K);如果 transA 為非零值,則 A 的形狀應為 (K, M)。

  • B(異質)- T

    輸入張量 B。如果 transB 為 0,則 B 的形狀應為 (K, N);如果 transB 為非零值,則 B 的形狀應為 (N, K)。

  • C(選用,異質)- T

    選用輸入張量 C。如果未指定,則計算的執行方式視為 C 為純量 0。C 的形狀應可單向廣播為 (M, N)。

輸出

  • Y(異質)- T

    形狀為 (M, N) 的輸出張量。

類型限制

  • T 在(tensor(double)tensor(float)tensor(float16)tensor(int32)tensor(int64)tensor(uint32)tensor(uint64))中

    將輸入和輸出類型限制為浮點數/整數張量。

Gemm - 9

版本

  • 名稱: Gemm (GitHub)

  • 網域: main

  • since_version: 9

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此版本的運算子自第 9 版起可用。

摘要

通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3

A’ = 如果 transA 則轉置(A) 否則 A

B’ = 如果 transB 則轉置(B) 否則 B

計算 Y = alpha * A’ * B’ + beta * C,其中輸入張量 A 的形狀為 (M, K) 或 (K, M),輸入張量 B 的形狀為 (K, N) 或 (N, K),輸入張量 C 可廣播為形狀 (M, N),而輸出張量 Y 的形狀為 (M, N)。如果屬性 transA 為非零值,則 A 會在執行計算之前轉置,B 和 transB 亦同。此運算子支援單向廣播(張量 C 應可單向廣播為張量 A * B);如需更多詳細資訊,請查看 ONNX 中的廣播

屬性

  • alpha - FLOAT(預設為 '1.0'

    輸入張量 A * B 乘積的純量乘數。

  • beta - FLOAT(預設為 '1.0'

    輸入張量 C 的純量乘數。

  • transA - INT(預設為 '0'

    是否應轉置 A

  • transB - INT(預設為 '0'

    是否應轉置 B

輸入

  • A(異質)- T

    輸入張量 A。如果 transA 為 0,則 A 的形狀應為 (M, K);如果 transA 為非零值,則 A 的形狀應為 (K, M)。

  • B(異質)- T

    輸入張量 B。如果 transB 為 0,則 B 的形狀應為 (K, N);如果 transB 為非零值,則 B 的形狀應為 (N, K)。

  • C(異質)- T

    輸入張量 C。C 的形狀應可單向廣播為 (M, N)。

輸出

  • Y(異質)- T

    形狀為 (M, N) 的輸出張量。

類型限制

  • T 在(tensor(double)tensor(float)tensor(float16)tensor(int32)tensor(int64)tensor(uint32)tensor(uint64))中

    將輸入和輸出類型限制為浮點數/整數張量。

Gemm - 7

版本

  • 名稱: Gemm (GitHub)

  • 網域: main

  • since_version: 7

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此版本的運算子自第 7 版起可用。

摘要

通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3

A’ = 如果 transA 則轉置(A) 否則 A

B’ = 如果 transB 則轉置(B) 否則 B

計算 Y = alpha * A’ * B’ + beta * C,其中輸入張量 A 的形狀為 (M, K) 或 (K, M),輸入張量 B 的形狀為 (K, N) 或 (N, K),輸入張量 C 可廣播為形狀 (M, N),而輸出張量 Y 的形狀為 (M, N)。如果屬性 transA 為非零值,則 A 會在執行計算之前轉置,B 和 transB 亦同。此運算子支援單向廣播(張量 C 應可單向廣播為張量 A * B);如需更多詳細資訊,請查看 ONNX 中的廣播

屬性

  • alpha - FLOAT(預設為 '1.0'

    輸入張量 A * B 乘積的純量乘數。

  • beta - FLOAT(預設為 '1.0'

    輸入張量 C 的純量乘數。

  • transA - INT(預設為 '0'

    是否應轉置 A

  • transB - INT(預設為 '0'

    是否應轉置 B

輸入

  • A(異質)- T

    輸入張量 A。如果 transA 為 0,則 A 的形狀應為 (M, K);如果 transA 為非零值,則 A 的形狀應為 (K, M)。

  • B(異質)- T

    輸入張量 B。如果 transB 為 0,則 B 的形狀應為 (K, N);如果 transB 為非零值,則 B 的形狀應為 (N, K)。

  • C(異質)- T

    輸入張量 C。C 的形狀應可單向廣播為 (M, N)。

輸出

  • Y(異質)- T

    形狀為 (M, N) 的輸出張量。

類型約束

  • T in ( tensor(double), tensor(float), tensor(float16) )

    限制輸入和輸出類型為浮點數張量。

Gemm - 6

版本

  • 名稱: Gemm (GitHub)

  • 網域: main

  • since_version: 6

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推論: True

此版本的運算子自版本 6 開始可用。

摘要

通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 計算 Y = alpha * A * B + beta * C,其中輸入張量 A 的維度為 (M X K),輸入張量 B 的維度為 (K X N),輸入張量 C 和輸出張量 Y 的維度為 (M X N)。如果屬性 broadcast 非零,輸入張量 C 將被廣播以匹配維度要求。如果屬性 transA 非零,則 A 將在計算之前轉置,B 和 transB 亦同。

屬性

  • alpha - FLOAT(預設為 '1.0'

    輸入張量 A * B 的乘積的純量乘數,預設值為 1.0。

  • beta - FLOAT(預設為 '1.0'

    輸入張量 C 的純量乘數,預設值為 1.0。

  • broadcast - INT(預設值為 '0'

    是否應廣播 C

  • transA - INT(預設為 '0'

    是否應轉置 A

  • transB - INT(預設為 '0'

    是否應轉置 B

輸入

  • A(異質)- T

    輸入張量 A

  • B(異質)- T

    輸入張量 B

  • C(異質)- T

    輸入張量 C

輸出

  • Y(異質)- T

    輸出張量。

類型約束

  • T in ( tensor(double), tensor(float), tensor(float16) )

    限制輸入和輸出類型為浮點數張量。

Gemm - 1

版本

  • 名稱: Gemm (GitHub)

  • 網域: main

  • since_version: 1

  • 函式: False

  • 支援層級: SupportType.COMMON

  • 形狀推斷: False

此版本的運算子自版本 1 開始可用。

摘要

通用矩陣乘法:https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms#Level_3 計算 Y = alpha * A * B + beta * C,其中輸入張量 A 的維度為 (M X K),輸入張量 B 的維度為 (K X N),輸入張量 C 和輸出張量 Y 的維度為 (M X N)。如果屬性 broadcast 非零,輸入張量 C 將被廣播以匹配維度要求。如果屬性 transA 非零,則 A 將在計算之前轉置,B 和 transB 亦同。

屬性

  • alpha - FLOAT(預設為 '1.0'

    輸入張量 A * B 的乘積的純量乘數,預設值為 1.0。

  • beta - FLOAT(預設為 '1.0'

    輸入張量 C 的純量乘數,預設值為 1.0。

  • broadcast - INT(預設值為 '0'

    是否應廣播 C

  • transA - INT(預設為 '0'

    是否應轉置 A

  • transB - INT(預設為 '0'

    是否應轉置 B

輸入

  • A(異質)- T

    輸入張量 A

  • B(異質)- T

    輸入張量 B

  • C(異質)- T

    輸入張量 C,可以原地操作。

輸出

  • Y(異質)- T

    輸出張量。

類型約束

  • T in ( tensor(double), tensor(float), tensor(float16) )

    限制輸入和輸出類型為浮點數張量。