본문 바로가기
나만 보는 정리노트/Deeplearning

ONNX(Open Neural Network Exchange)

by SeoKhan 2022. 11. 30.

개념

Tensorflow, PyTorch 와 같은, 서로 다른 DNN 프레임워크 환경에서 만들어진 모델들을 서로 호환해서 사용할 수 있도록 도와주는 공유 플랫폼이다.


진행과정

  • 첫 번째
    • PyTorch 모델과 Sample input 을 인자로 하여, torch.onnx.export 함수를 호출
    • PyTorch 의 JIT 컴파일러를 통해서, Trace 혹은 Script 를 생성
      • Trace 와 Script 는 그 생성 방식과 representation 에 차이
    • PyTorch 모델의 forward propagation 시에 호출되는, 함수 및 연산들에 대한 최적화된 그래프인 Torch IR 생성
      • Trace 나 Script 는, PyTorch 의 nn.Module 을 상속하는 모델의, forward 함수에서 실행되는 코드들에 대한 IR(Intermediate Representation)을 담고있다.
  • 두 번째
    • 생성된 trace / script (Torch IR)는, ONNX Exporter 를 통해서 ONNX IR 로 변환되고, 여기에서 한 번 더 Graph Optimization 이 이루어진다.
  • 세 번째
    • 최종적으로 생성된 ONNX 그래프는 .onnx 포맷으로 저장

진행과정 그림

 

 

 

 

 

 

Reference
[1] https://wooono.tistory.com/415

'나만 보는 정리노트 > Deeplearning' 카테고리의 다른 글

활성화 함수, Activation Function  (0) 2022.11.24
ANN, DNN, CNN, RNN  (0) 2022.11.17
분류성능평가지표  (0) 2022.11.17