Einsum 接口

此接口实现了张量之间的张量变量消除。特别地,它不实现连续变量消除。

naive_contract_einsum(eqn, *terms, **kwargs)[source]

用于对照 einsum 测试 Contract

naive_einsum(eqn, *terms, **kwargs)[source]

实现标准变量消除。

naive_plated_einsum(eqn, *terms, **kwargs)[source]

实现张量变量消除([Obermeyer 等人 2019] 中的算法 1)

[Obermeyer 等人 2019] Obermeyer, F., Bingham, E., Jankowiak, M., Chiu, J.,

Pradhan, N., Rush, A., 和 Goodman, N. 用于 Plated 因子图的张量变量消除, 2019

einsum(eqn, *terms, **kwargs)[source]

经过优化的张量变量消除的顶层接口。

参数
  • equation (str) – 一个 einsum 方程。

  • *terms (funsor.terms.Funsor) – 一个或多个操作数。

  • plates (set) – 可选的关键字参数,表示哪些 funsor 维度是 plate 维度。在所有输入维度(来自 terms)中:位于 plates 中但不在输出中的维度进行乘积约简;既不在 plates 中也不在输出中的维度进行求和约简。