Einsum

Einsum - 12

版本

  • 名稱Einsum (GitHub)

  • 網域main

  • since_version12

  • 函數False

  • 支援等級SupportType.COMMON

  • 形狀推斷True

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

摘要

形式為 term1, term2 -> output-term 的 einsum 使用以下方程式產生輸出張量

output[output-term] = reduce-sum( input1[term1] * input2[term2] )

其中 reduce-sum 執行對輸入項(term1, term2)中出現但未在 output-term 中出現的所有索引的求和。

Einsum 運算子使用愛因斯坦求和慣例評估一系列張量上的代數張量運算。方程式字串包含一個以逗號分隔的小寫字母序列。每個項對應一個運算元張量,而項內的字元對應運算元的維度。

此序列後面可以跟著“->”來分隔方程式的左側和右側。如果方程式包含“->”後面跟著右側,則執行愛因斯坦求和的明確(非古典)形式,並且右側索引表示輸出張量的維度。在其他情況下,輸出索引(隱式)設定為方程式中恰好出現一次的索引的字母排序序列。

當維度字元在左側重複時,表示沿該維度求和。

方程式可能包含省略符號(“…”)以啟用廣播。省略符號必須表示固定數量的維度。具體而言,方程式中每次出現的省略符號都必須表示相同數量的維度。右側可能包含正好一個省略符號。在隱式模式下,省略符號的維度設定為輸出的開頭。方程式字串可能包含空格 (U+0020) 字元。

屬性

  • equation - STRING (必要)

    Einsum 表達式字串。

輸入

介於 1 和 2147483647 個輸入之間。

  • Inputs (可變、異質) - T

    運算元

輸出

  • Output (異質) - T

    輸出張量

類型約束

  • T in ( tensor(double), tensor(float), tensor(float16), tensor(int16), tensor(int32), tensor(int64), tensor(int8), tensor(uint16), tensor(uint32), tensor(uint64), tensor(uint8) )

    將輸入和輸出類型限制為所有數值張量類型。