
60번 외적 을 배치 차원으로 한 번에 처리. (B, M) 과 (B, N) 두 배치를 받아 각 샘플 b 마다 외적을 구하고 쌓습니다 → (B, M, N).
torch.bmm) 의 기본 빌딩 블록.# 브로드캐스팅
O = X[:, :, None] * Y[:, None, :] # (B, M, 1) * (B, 1, N) → (B, M, N)
# einsum
O = np.einsum('bm,bn->bmn', X, Y)
둘 다 루프 없이 한 줄.
함수 batched_outer(X, Y) 를 완성하세요.
X shape (B, M), Y shape (B, N).(B, M, N).| # | 이름 | 검증 |
|---|---|---|
| 1 | shape (B, M, N) | |
| 2 | 각 배치가 np.outer 와 일치 | |
| 3 | B=1 → 단일 외적과 동일 | |
| 4 | 전치: batched_outer(Y, X) = (B, M, N) 의 각 b transpose | |
| 5 | 루프 사용 금지 | 소스에 for/while 없음 |
코드를 작성하고 Run 을 눌러보세요.