Einsum¶
Einsum - 12¶
版本¶
名称: Einsum (GitHub)
域:
main起始版本:
12函数:
False支持级别:
SupportType.COMMON形状推断:
True
此版本的运算符自 版本 12 起可用。
摘要¶
形如 项1, 项2 -> 输出项 的 einsum 通过以下等式生成输出张量
output[output-term] = reduce-sum( input1[term1] * input2[term2] )
其中,reduce-sum 对输入项(项1、项2)中出现但在输出项中未出现的所有索引执行求和。
Einsum 运算符使用爱因斯坦求和约定,对一系列张量执行代数张量运算。等式字符串包含一个由逗号分隔的小写字母序列。每个项对应一个操作数张量,项中的字符对应于操作数的维度。
此序列后面可能跟着 “->” 以分隔等式的左侧和右侧。如果等式包含 “->” 后面跟着右侧,则执行爱因斯坦求和的显式(非经典)形式,右侧索引表示输出张量维度。在其他情况下,输出索引(隐式地)设置为在等式中恰好出现一次的索引的按字母顺序排序的序列。
当维度字符在左侧重复时,它表示沿该维度的求和。
等式可能包含省略号(“...”)以启用广播。省略号必须表示固定数量的维度。具体来说,等式中每次出现的省略号必须表示相同数量的维度。右侧可以包含恰好一个省略号。在隐式模式下,省略号维度设置为输出的开头。等式字符串可以包含空格 (U+0020) 字符。
属性¶
equation - 字符串 (必需)
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))将输入和输出类型限制为所有数值张量类型。