
v1 lookup 은 인덱스를 벡터로 변환만 함. 실제로 가변 길이 시퀀스를 하나의 벡터로 집계해야 할 때가 많음 — 이게 EmbeddingBag (PyTorch nn.EmbeddingBag).
input: idx shape (B, L), 각 원소는 단어 ID, padding_idx 는 무시할 값.
mode='sum': mode='mean': 위 합을 non-padding 개수로 나눔mode='max': non-padding 위치들의 element-wise max전부 padding 인 row → 0 벡터.
함수 embedding_bag(E, idx, padding_idx=0, mode='mean') 를 완성하세요.
E shape (V, D), idx shape (B, L).(B, D).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (B, D) | |
| 2 | mode='sum' 정확 | non-pad 합 |
| 3 | mode='mean' 정확 | non-pad 평균 |
| 4 | mode='max' 정확 | non-pad max |
| 5 | all-padding row → 0 | |
| 6 | padding_idx 벡터값 무관 | E[pad] 변경해도 출력 불변 |
| 7 | 단일 token row = lookup |
코드를 작성하고 Run 을 눌러보세요.