← 문제 목록/균일 양자화 (Uniform Quantization)
문제 해설

균일 양자화 (Uniform Quantization)

최적화 · easy

preview

균일 양자화 (Uniform Quantization)

69번 Clip by Value 는 범위 밖 값을 경계로 이동. 양자화는 clip + 이산화 — 범위 안도 N 개의 균등 레벨 중 가장 가까운 값으로 snap:

  1. xclip(x,lo,hi)x \leftarrow \text{clip}(x, lo, hi)
  2. 단계 간격 Δ=(hilo)/(N1)\Delta = (hi - lo) / (N - 1)
  3. x^=round((xlo)/Δ)Δ+lo\hat x = \text{round}\big((x - lo) / \Delta\big) \cdot \Delta + lo

결과: NN 개의 정확한 값만 등장 → 부동소수를 log2N\lceil \log_2 N \rceil 비트로 저장 가능.

어디에 쓰이나

  • Post-training quantization: fp32 가중치/활성화 → int8 으로 변환해 추론 속도/메모리 4× 개선.
  • 색상 양자화: 이미지 색상 팔레트.
  • gradient compression: 분산 학습 통신량 줄이기.

양자화 오차

e=xx^,eΔ/2=(hilo)/(2(N1))e = x - \hat x, \quad |e| \le \Delta / 2 = (hi - lo) / (2(N - 1))

N 2배 → 오차 절반. 8-bit (N=256) 이면 full range 대비 0.2%\approx 0.2\%.

과제

함수 uniform_quantize(x, lo, hi, num_levels) 를 완성하세요.

  • 배열 x, 스칼라 lo < hi, 정수 num_levels >= 2.
  • 반환: 같은 shape, 값은 {lo,lo+Δ,,hi}\{lo, lo+\Delta, \dots, hi\} 중 하나.
  • 루프 금지.

테스트 케이스

#이름검증
1경계값 그대로quantize(lo, lo, hi, N) == lo
2num_levels=2 → {lo, hi} 만이진화
3범위 바깥 → clip
4양자화 오차 ≤ Δ/2무작위 입력
5정확히 N개의 유니크 값 (범위 내 충분 샘플)
코드 작성
Loading...
실행 결과

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