Einsum¶
Einsum - 12¶
版本¶
- 名称: Einsum (GitHub) 
- 域: - main
- 起始版本: - 12
- 函数: - False
- 支持级别: - SupportType.COMMON
- 形状推断: - True
此版本的运算符自 版本 12 起可用。
摘要¶
形如 项1, 项2 -> 输出项 的爱因斯坦求和会使用以下方程生成一个输出张量
output[output-term] = reduce-sum( input1[term1] * input2[term2] )
其中规约求和 (reduce-sum) 对输入项 (项1, 项2) 中出现但未出现在输出项中的所有索引进行求和。
Einsum 运算符使用爱因斯坦求和约定,对一系列张量执行代数张量运算。方程字符串包含一个逗号分隔的小写字母序列。每个项对应一个操作数张量,项中的字符对应操作数维度。
此序列后面可以跟 “->” 以分隔方程的左侧和右侧。如果方程包含 “->” 后跟右侧,则执行爱因斯坦求和的显式(非经典)形式,右侧索引表示输出张量维度。在其他情况下,输出索引(隐式)设置为方程中恰好出现一次的按字母顺序排序的索引序列。
当左侧重复出现维度字符时,它表示沿该维度的求和。
方程可以包含省略号(“...”)以实现广播。省略号必须表示固定数量的维度。具体来说,方程中每次出现的省略号必须表示相同数量的维度。右侧可以只包含一个省略号。在隐式模式下,省略号维度设置为输出的开头。方程字符串可以包含空格 (U+0020) 字符。
属性¶
- 方程 - 字符串(必需) - Einsum 表达式字符串。 
输入¶
输入数量介于 1 到 2147483647 之间。
- 输入(可变,异构)- T - 操作数 
输出¶
- 输出(异构)- T - 输出张量 
类型约束¶
- T 在 ( - tensor(double),- tensor(float),- tensor(float16),- tensor(int16),- tensor(int32),- tensor(int64),- tensor(int8),- tensor(uint16),- tensor(uint32),- tensor(uint64),- tensor(uint8)) 中- 将输入和输出类型限制为所有数值张量类型。