Einstein summation notation
아인슈타인 표기법으로 이를 libaray function으로 구현한것이다.
아인슈타인 표기법 - 위키백과, 우리 모두의 백과사전
위키백과, 우리 모두의 백과사전. 아인슈타인 표기법(Einstein notation) 또는 아인슈타인의 합 규약(Einstein summation convention)은 수학의 선형대수학을 물리학에 응용하면서 좌표계에 관한 공식을 다룰
ko.wikipedia.org
Tensorflow, pytorch, numpy 등에 구현되어있고, einops라는 lib도 존재한다.
github.com/arogozhnikov/einops
arogozhnikov/einops
Deep learning operations reinvented (for pytorch, tensorflow, jax and others) - arogozhnikov/einops
github.com
이 함수는 행렬에 대한 다양한 함수들, transpose, dot product, outer product, multilpication등을 각기 외우지 않아도 einsum 함수하나로 이것들을 모두 사용가능하게 해준다.
기본적인 함수의 폼은 다음과 같다.
Result = einsum(' □□,□□□,□□ -> □□', arg1,arg2,arg3)
numpy 에서는 np.einsum, pytorch에서는 torch.einsum, Tensorflow에서는 tf.einsum 으로 구현되어있다.
이를 실제 tensor 연산 예제를 통해 비교해보면 이해하기 더 수월하다.
다음 행렬연산을 예로 들어보자.

a = torch.arange(6).reshape(2, 3)
b = torch.arange(3)
c = torch.einsum('ik,k->i', [a, b])
출력값은
tensor([ a, b])
형태로 출력이 된다.
[참고자료]
EINSUM IS ALL YOU NEED - rockt.github.io/2018/04/30/einsum