FuriosaAI SDK와 NPU를 사용해서 YOLOv5s 모델을 실행하는 예제를 Github에서 확인할 수 있습니다.
-
ONNX 모델 생성하기 - 예제 코드
- 학습이 완료된 Pytorch 모델을 ONNX로 변환하여 줍니다.
-
Furiosa Quantizer - 예제 코드
-
FuriosaAI SDK가 제공하는 양자화 도구를 이용하여 생성한 ONNX 모델을 8bit 정수형 모델
로 변환하여 줍니다. -
양자화 단계에 앞서 NPU 가속, 양자화 정확도 개선 등의 이유로 ONNX 모델을 잘라내는 과정이 필요할 수 있습니다. 잘라낸 이후의 과정은 CPU에서 처리할 수 있도록, Post-Processing 코드를 작성해주어야 합니다.
-
YOLOv5s의 경우, 아래 그림과 같이 Conv 이후의 부분은 잘라주고 있습니다.
-
-
모델 실행 및 결과 확인 - 예제 코드
- 양자화 시킨 YOLOv5s 모델을 FuriosaAI의 컴파일러를 통해 최적으로 컴파일하고 실행하실 수 있습니다.
(최초의 실행에서 컴파일 과정에 약간의 시간이 소요될 수 있으나, 이 후 실행에서는 cache를 이용하여 결과를 재사용하게 됩니다.)
- 양자화 시킨 YOLOv5s 모델을 FuriosaAI의 컴파일러를 통해 최적으로 컴파일하고 실행하실 수 있습니다.