[ONNX] ONNX Model Quantization
·
ONNX
- Quantization (양자화) 란? 딥러닝 모델의 파라미터를 낮은 bit(Float32 => Int8)로 변환하여 계산 시간과 메모리 접근 속도를 높이는 경량화 기법입니다. 보통 부동소수점 연산인 Float32를 정수인 Int8 로 변환하는 방식이 많이 사용됩니다.   - ONNX로 모델 양자화 하기  onnxruntime.quantization에서 제공하는 quantize_dynamic 함수를 이용하면 됩니다.import onnxfrom onnxruntime.quantization import quantize_dynamic, QuantTypemodel_fp32 = 'model.onnx'model_quant = 'model_quant.onnx'quantize_dynamic(model_fp32, m..
[ONNX] ONNX Model Visualization(Netron)
·
ONNX
이번 포스팅에서는 ONNX 모델을 시각화 할 수 있는 Netron에 대해서 설명하겠습니다! Github: https://github.com/lutzroeder/netron GitHub - lutzroeder/netron: Visualizer for neural network, deep learning, and machine learning models Visualizer for neural network, deep learning, and machine learning models - GitHub - lutzroeder/netron: Visualizer for neural network, deep learning, and machine learning models github.com Browser: ht..
[ONNX] ONNX 변환모델에 메타데이터 추가하기
·
ONNX
이번 포스팅에서는 ONNX 변환 모델에 메타데이터를 추가하는 방법에 대해 설명하겠습니다. 변환할 모델에 여러 정보를 추가하는 방법은 metadata_probs.add() 함수를 이용하면 됩니다! 위 함수를 이용해 ONNX 모델에 변환날짜와 변환장소를 추가해보겠습니다. 먼저 사용할 ONNX 모델을 로드합니다. onnx_model = onnx.load('my_onnx.onnx') 이제 메타 데이터를 추가해보겠습니다. 아래와 같이 여러 정보들에 대해 key와 value를 각각 설정해줄 수 있습니다. meta_date = onnx_model.metadata_props.add() meta_date.key = "date" meta_date.value = "2023/04/01" meta_place = onnx_mod..
[ONNX] ONNX Runtime에서 실행하기
·
ONNX
이번 포스팅에서는 ONNX로 변환된 모델을 이용해 ONNX Runtime에서 실행하는 방법에 대해 설명하겠습니다! 모델을 ONNX Runtime에서 실행하려면 미리 설정된 파라미터로 모델을 위한 inference session을 생성해야합니다. 그 다음 모델의 run() 함수를 이용해 모델을 실행합니다. run() 함수를 통해 리턴 받은 결과 값들은 ONNX Runtime에서 연산된 모든 결과를 포함한 리스트 형태입니다. 먼저 필요한 라이브러리들을 import 해줍니다.import onnxruntime 그 다음은 run()함수를 통해 결과값을 도출합니다.ort_session = onnxruntime.InferenceSession('my_model.onnx')def to_numpy(tensor): r..