Einsum¶
Einsum - 12¶
版本¶
名称: Einsum (GitHub)
域:
main
起始版本:
12
函数:
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 在 (
tensor(double)
,tensor(float)
,tensor(float16)
,tensor(int16)
,tensor(int32)
,tensor(int64)
,tensor(int8)
,tensor(uint16)
,tensor(uint32)
,tensor(uint64)
,tensor(uint8)
) 中将输入和输出类型约束为所有数值张量类型。