
Transformer 입력 = 토큰 임베딩 + 위치 인코딩. embedding-lookup-v1, positional-encoding-sinusoidal-v1 두 조각을 합치는 과정.
E: 토큰 임베딩 테이블 (V, d).idx_batch: (B, L) 정수.pe: (max_L, d) 사전계산된 PE (max_L ≥ L).배치 축 B 에서 PE 는 broadcasting — 같은 PE 를 모든 배치에 더함.
함수 add_positional_encoding(E, idx_batch, pe) 를 완성하세요.
E (V, d), idx_batch (B, L), pe (max_L, d).(B, L, d).E[idx_batch] + pe[np.newaxis, :L, :] (또는 broadcasting 으로 pe[:L]).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (B, L, d) | |
| 2 | pe=0 이면 embedding_lookup 와 동일 | |
| 3 | 같은 idx 다른 위치 → 다른 값 | permutation invariance 깨짐 |
| 4 | B 축 broadcasting | 모든 배치에 동일 PE 추가 |
| 5 | 공식 일치 | 모든 (b, l) 에서 E[idx]+PE |
코드를 작성하고 Run 을 눌러보세요.