mindscience.sciops.einsum.Einsum
- class mindscience.sciops.einsum.Einsum(equation, use_opt=True)[source]
Einsum operation using Einstein summation convention.
This operator performs tensor computations using Einstein summation convention (Einsum). Supports diagonalization, reduction, transposition, matrix multiplication, product operations, inner products, etc.
- Parameters
equation (str) –
Specifies the computation to be performed. Only accepts:
Letters ([a-z][A-Z]): Represent dimensions of input tensors
…: anonymous dimensions
Commas (','): Separate tensor dimensions
Arrow ('->'): Left side specifies input tensors, right side specifies desired output dimensions
use_opt (bool, optional) – Defaults to
True. When set toFalse, performs contraction path optimization.
- Inputs:
operands (List[Tensor]): Variable number of tensor inputs.
- Outputs:
out_tensor (Tensor): The result of the einsum operation.
Examples
>>> import mindspore as ms >>> from mindspore import nn, Tensor, ops >>> import numpy as np >>> import Einsum >>> x = Tensor(np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]), ms.float32) >>> y = Tensor(np.array([[2.0, 3.0], [1.0, 2.0], [4.0, 5.0]]), ms.float32) >>> equation = "ij,jk->ik" >>> einsum = Einsum(equation, use_opt=False) >>> output = einsum(x, y) >>> print(output.shape) (2, 2) >>> shapes = [(156, 16, 16), (660, 128, 16), (660, 128, 16)] >>> x, y, z = [ops.randn(tp) for tp in shapes] >>> equation = "ijk,zui,zuj->zuk" >>> einsum = Einsum(equation, use_opt=True) >>> output = einsum(x, y, z)