텐서와 축약
텐서는 형태에 속한 각 이름 있는 인덱스를 하나의 값에 대응시킵니다. 형태는 이름 있는 축들의 순서 없는 집합이므로 { N = 4, C = 3 }과 { C = 3, N = 4 }는 같은 텐서를 나타냅니다. 그 형태에 순서를 부여한 표현은 익숙한 다차원 배열처럼 동작합니다. 텐서 인덱스는 모든 축에 값을 하나씩 지정하므로 { N = 4, C = 3 }에는 { N: 0, C: 0 }, { N: 0, C: 1 }과 같은 인덱스가 포함됩니다.
| 텐서 | 차원 | 예시 | 이름 있는 형태 |
|---|---|---|---|
| 스칼라 | 0D | 5.2 | {} |
| 벡터 | 1D | [1, 2, 3] | { I = 3 } |
| 행렬 | 2D | 2 × 4 격자 | { I = 2, J = 4 } |
| 이미지 배치 | 4D | RGB 이미지 4장 | { N = 4, C = 3, H = 256, W = 512 } |
텐서 축약은 두 입력을 요소별로 곱하고, 공유 축 중 출력에 없는 축을 모두 리덕션합니다. 모든 축약은 브로드캐스트, 곱셈, 리덕션 단계로 구성됩니다.
| 연산 | Einsum | 브로드캐스트 | 곱셈 | 리덕션 |
|---|---|---|---|---|
| 내적 | (I, I \rightarrow 1) | 없음. | (x_i y_i) | (\sum_i x_i y_i) |
| GEMV | (IJ, J \rightarrow I) | (I)에 걸친 (x). | (A_{ij} x_j) | (y_i = \sum_j A_{ij} x_j) |
| GEMM | (IK, KJ \rightarrow IJ) | (J)에 걸친 (A)와 (I)에 걸친 (B). | (A_{ik} B_{kj}) | (C_{ij} = \sum_k A_{ik} B_{kj}) |
이 페이지는 입문 수준의 수학만 다룹니다. 매핑, 이동, 엔진 계약은 각각의 참조 장에서 다룹니다.