본문 바로가기
AI Coding/ONNX

[ONNX] ONNX를 이용한 Model Quantization

by ga.0_0.ga 2023. 9. 5.
728x90
반응형

- Quantization (양자화) 란? 

딥러닝 모델의 파라미터를 낮은 bit(Float32 => Int8)로 변환하여 계산 시간과 메모리 접근 속도를 높이는 경량화 기법입니다. 보통 부동소수점 연산인 Float32를 정수인 Int8 로 변환하는 방식이 많이 사용됩니다. 

 

 

- ONNX로 모델 양자화 하기  

onnxruntime.quantization에서 제공하는 quantize_dynamic 함수를 이용하면 됩니다.

import onnx
from onnxruntime.quantization import quantize_dynamic, QuantType

model_fp32 = 'model.onnx'
model_quant = 'model_quant.onnx'
quantize_dynamic(model_fp32, model_quant, weight_type=QuantType.QUInt8)

양자화 후의 모습입니다. 

아래 명령어를 통해 변환 전,후의 onnx 파일의 용량을 확인해보면

ls -alh

아래 사진에서 확인할 수 있듯이 양자화 후 onnx 파일의 용량이 감소한 것을 알 수 있습니다 : )

 

728x90
반응형

댓글