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)中未出现在输出项中的所有索引进行求和。

Einsum 运算符使用爱因斯坦求和约定,对一系列张量上的代数张量运算进行求值。等式字符串包含以逗号分隔的字母序列。每个项对应于一个操作数张量,项中的字符对应于操作数维度。

此序列后面可以是“->”,用于分隔等式的左右两侧。如果等式包含“->”后面跟着右侧,则执行爱因斯坦求和的显式(非经典)形式,右侧索引指示输出张量维度。在其他情况下,输出索引(隐式)设置为出现在等式中且恰好出现一次的索引的按字母顺序排列的序列。

当维度字符在左侧重复时,它表示沿该维度求和。

等式可以包含省略号(“...”,用于启用广播。省略号必须表示固定数量的维度。具体来说,等式中每个省略号的出现都必须表示相同数量的维度。右侧可以包含恰好一个省略号。在隐式模式下,省略号维度设置为输出的开头。等式字符串可以包含空格(U+0020)字符。

属性

  • equation - STRING(必需)

    Einsum 表达式字符串。

输入

1 到 2147483647 个输入。

  • 输入(可变参数,异构) - T

    操作数

输出

  • 输出(异构) - 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) )

    将输入和输出类型约束为所有数值张量类型。