본문 바로가기

파이썬

Einsum (Einstein Summation)

einsum 연산은 Einstein Summation Convention에 따라 연산을 진행하는 방법이라고 한다. 위키에서 Einstein Notation에 대한 내용을 살펴보면 "한 항에 동일한 첨자가 윗첨자와 아랫첨자로 한 번씩 짝을 지어 나타날 경우, (마치 합의 기호가 항의 앞에 있을 때처럼) 해당 첨자가 가질 있는 모든 값에 대해 항의 값을 전부 더하는 것으로 이해한다."고 나타나 있다. 즉, 특정 index 집합에 대한 연산(일반적인 ∑index set 연산) 을 간결하게 표시하는 방법이다.

 

einsum 연산을 통해 행렬, 벡터의 내적(dot products), 외적(outer products), 전치(transpose), 대각합(trace), 행렬곱(multiplication) 등을 일관성있게 표현할 수 있다.

 

einsum 연산은 numpy(np.einsum), torch(torch.einsum), tensorflow(tf.einsum)과 같이 자주 사용하는 연산 라이브러리에 모두 구현되어 있으며, 세 경우 모두 einsum(equation, operands)와 같이 인자로 equation과 operands를 받는다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'파이썬' 카테고리의 다른 글

전개 연산자 '*'  (0) 2023.03.26
컨텍스트 관리자  (0) 2023.03.25
라즈베리파이 OS Python3를 기본으로 설정하기  (0) 2021.07.25
Qt Designer  (0) 2021.06.19
일급 함수(First-Class Function, 퍼스트 클래스 함수)  (0) 2021.05.28