[ONNX] 딥러닝 모델 ONNX Runtime으로 CPU 환경에서 가속화하기
·
💻 Programming/AI & ML
요즘은 어지간한 딥러닝 모델을 GPU 없이 돌리기 어렵지만, 또 의외로 가벼운 모델들은 CPU 만으로 돌릴 수 있다. 가능하다면 클라우드 비용도 줄일 수 있으니 온라인 예측이 필요한 경우가 아니라면 CPU 환경에서 인퍼런스하는 것도 고려해 볼 만하다. 물론 CPU로 딥러닝 모델 인퍼런스를 하게 되면 상당히 느리다. 때문에 ONNX 모델 변환을 하고, ONNX runtime으로 인퍼런스를 수행하면 조금이라도 모델 인퍼런스 속도를 향상시킬 수 있다. 또한 TensorRT와 달리 ONNX 모델 변환의 경우 입력 텐서 크기 또한 동적으로 가져갈 수 있다는 장점이 있다. 물론 하드웨어 환경에 따라, 모델에 따라, 입력 텐서의 크기에 따라 속도 향상의 정도가 다르거나, 오히려 속도가 느려질 수도 있으니 테스트를 해..
[ONNX] pytorch 모델을 ONNX로 변환하고 실행하기
·
💻 Programming/AI & ML
ONNX (Open Neural Network eXchange) ONNX는 기계 학습 모델을 표현하기 위해 만들어진 오픈 포맷으로 ONNX 런타임은 여러 다양한 플랫폼과 하드웨어(윈도우, 리눅스, 맥을 비롯한 플랫폼 뿐만 아니라 CPU, GPU 등의 하드웨어)에서 효율적인 추론을 가능하게 한다. 때문에 다양한 프레임워크와의 연계가 필요할 때 ONNX를 사용한다. (pytorch ↔︎ tensorflow ↔︎ caffe2 ↔︎ MXNet ↔︎ ...) *참고 https://pytorch.org/docs/stable/onnx.html https://tutorials.pytorch.kr/advanced/super_resolution_with_onnxruntime.html ONNX 예제 1. Pytorch 모델..