
89번 Bag of Embeddings 는 모든 L 위치를 평균. 실제 데이터에선 문장 길이가 다르므로 padding 토큰 을 넣고 배치로 묶는데, 이걸 평균에 포함하면 잘못된 값.
Masked 평균: 유효한 위치만 평균에 참여:
함수 masked_bag_of_embeddings(E, idx, mask) 를 완성하세요.
E shape (V, D), idx shape (B, L) 정수, mask shape (B, L) 0/1.(B, D).emb = E[idx] → (B, L, D); (emb * mask[:, :, None]).sum(axis=1) / mask.sum(axis=1, keepdims=True).clip(min=1e-9).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (B, D) | |
| 2 | mask 모두 1 → 89번과 동일 | |
| 3 | 일부 mask=0 → 해당 위치 기여 없음 | |
| 4 | 한 배치가 길이 다를 때 길이 상관없는 평균 | |
| 5 | 빈 시퀀스 (mask 모두 0) → NaN 없음 |
코드를 작성하고 Run 을 눌러보세요.