← 문제 목록/Masked Max Pooling
문제 해설

Masked Max Pooling

신경망 · easy

preview

Masked Max Pooling

masked-mean-pool-v1 의 max 버전. 문장 임베딩, pointer network, 일부 분류 헤드에서 mean 대신 max 로 풀링하기도 함.

pool(x,m)b,k=maxl:mb,l=1  xb,l,k\text{pool}(x, m)_{b, k} = \max_{l: m_{b,l}=1}\; x_{b, l, k}

마스킹 트릭

pad 위치를 −∞ 로 채워 max 가 무시되게 만듬:

neg = -np.inf
x_masked = np.where(mask[..., None], x, neg)
return x_masked.max(axis=1)

mask[..., None](B, L)(B, L, 1) 브로드캐스트 → (B, L, d) 와 결합.

과제

함수 masked_max_pool(x, mask) 를 완성하세요.

  • x: shape (B, L, d).
  • mask: shape (B, L) bool (True = 유효).
  • 반환: (B, d).

테스트 케이스

#이름검증
1shape (B, d)
2mask 전부 True → 평범한 max
3pad 값 무관pad 에 큰 수 넣어도 출력 불변
4차원별 max각 dim 에 다른 위치 max 가능
5서로 다른 유효 길이배치마다 올바른 후보 집합
코드 작성
Loading...
실행 결과

코드를 작성하고 Run 을 눌러보세요.