본문 바로가기
728x90
반응형

AI Coding15

[ONNX] ONNX Runtime에서 실행하기 이번 포스팅에서는 ONNX로 변환된 모델을 이용해 ONNX Runtime에서 실행하는 방법에 대해 설명하겠습니다! 모델을 ONNX Runtime에서 실행하려면 미리 설정된 파라미터로 모델을 위한 inference session을 생성해야합니다. 그 다음 모델의 run() 함수를 이용해 모델을 실행합니다. run() 함수를 통해 리턴 받은 결과 값들은 ONNX Runtime에서 연산된 모든 결과를 포함한 리스트 형태입니다. 먼저 필요한 라이브러리들을 import 해줍니다. import onnxruntime 그 다음은 run()함수를 통해 결과값을 도출합니다. ort_session = onnxruntime.InferenceSession('fd_live_512x512_multiftnet_best381_2303.. 2023. 3. 31.
[ONNX] Pytorch 모델을 ONNX 모델로 변환하기 이번 포스팅에서는 ONNX에 대한 간단한 설명과 pytorch를 ONNX로 변환하는 방법에 대해 설명하겠습니다! ▶ ONNX란? ONNX는 Open Neural Network Exchange의 줄임말입니다. 말 그대로 서로 다른 딥러닝 프레임워크 환경인(Tensorflow, Pytorch 등등...) 에서 만들어진 모델들을 서로 호환하여 사용할 수 있도록 만들어진 플랫폼입니다. ONNX는 아래 두 가지의 장점을 갖습니다. 1. Framework Interoperability: 특정 프레임워크에서 생성된 모델을 다른 환경에서 import하여 자유롭게 사용할 수 있습니다. (모바일, PC의 구분없이 사용 할 수 있습니다.) 2. Shared Optimization: 하드웨어(linux, window, mac.. 2023. 3. 30.
[C++] 클래스 메모리 주소를 클래스로 변환하기 이번 포스팅에서는 C++클래스의 메모리 주소를 생성해두었던 클래스로 변환하는 방법에 대해 설명하겠습니다. 먼저 C++ 클래스의 주소는 this 키워드를 통해 가져올 수 있습니다. class Sample{ public: int a; int b; long get_addr(){ return (long)this; } }; 위 Sample 이라는 클래스 내의 get_addr()함수가 클래스 주소를 리턴해 주는 함수 입니다. retrun this를 통해 클래스 주소를 리턴해줄 수 있고 저는 주소값을 long형으로 받기 위해 this 앞에 long을 붙혀주었습니다. 이렇게 받아온 주소를 다시 클래스로 만들어 보겠습니다. long get_class(){ Sample *sample = new Sample(); sampl.. 2023. 3. 11.
[Pytorch] Inference Time Check 딥러닝이 일상 생활에서 사용되려면 기본적으로 굉장히 빠른 인퍼런스 속도를 갖춰야 합니다. 때문에 millisecond 단위로 속도를 재고 평가해주어야 합니다. ​ ​ ▶Asynchronous execution 딥러닝은 비동기 방식으로 작동하기 때문에 높은 효율성을 갖습니다. 그렇다면 왜 비동기 방식으로 작동할까요? => 먼저, 여러 개의 batch를 inference 하는 상황을 생각해보겠습니다. 첫번째 batch가 GPU에서 연산이 되고 있을 때, GPU의 작업이 다 끝날때까지 CPU는 어떻게 동작해야 할까요? 마냥 기다리기만 한다면 이는 매우 비효율적일 것입니다. 때문에 CPU는 GPU의 작업이 모두 끝나지 않더라도 다음 batch 를 위한 작업을 해둬야 합니다. 바로 이점 때문에! 딥러닝 모델의 G.. 2023. 2. 24.
728x90
반응형