728x90

ONNX (Open Neural Network Exchange)란?

ONNX(Open Neural Network Exchange)는 다양한 딥러닝 프레임워크(예: PyTorch, TensorFlow, MXNet 등)에서 만든 인공지능 모델을 서로 호환 가능하게 변환·공유할 수 있도록 만든 개방형 표준 포맷입니다2456.


주요 목적과 특징

  • 프레임워크 간 호환성
    ONNX는 서로 다른 프레임워크에서 학습한 모델을 ONNX 포맷으로 변환해, 다른 프레임워크나 하드웨어 환경에서도 쉽게 불러와 실행할 수 있게 해줍니다.
    예를 들어, PyTorch에서 학습한 모델을 ONNX로 변환한 뒤 TensorFlow, 모바일, 엣지, 서버 등 다양한 환경에서 사용할 수 있습니다246.
  • 모델 이식성과 재사용성
    ONNX는 표준화된 모델 표현 방식을 제공하여, 모델을 다양한 하드웨어와 플랫폼(CPU, GPU, NPU 등)에서 쉽게 이식·재사용할 수 있습니다57.
  • 공개 표준 및 생태계
    페이스북과 마이크로소프트가 주도하여 개발을 시작했으며, 현재는 여러 기업과 연구기관이 참여하는 오픈소스 커뮤니티로 발전했습니다2.
  • 계산 그래프 기반 구조
    ONNX 모델은 연산(노드)과 데이터 흐름(엣지)로 구성된 계산 그래프 형태로 저장됩니다. 이 구조 덕분에 모델의 연산 방식과 구조를 명확하게 표현할 수 있습니다23.
  • 공유 최적화 및 하드웨어 지원
    ONNX 포맷을 기준으로 하드웨어별 최적화가 가능하여, 다양한 AI 가속기(NPU, GPU 등)에서 효율적으로 실행할 수 있습니다48.

활용 예시

  • PyTorch에서 모델을 학습 → ONNX로 변환 → ONNX Runtime, TensorRT, OpenVINO 등 다양한 실행 환경에서 추론
  • 모델을 한 번만 학습하고, 다양한 하드웨어와 서비스 환경에 손쉽게 배포

요약

ONNX는 딥러닝 모델의 호환성과 이식성을 극대화하기 위해 만들어진 오픈소스 표준 포맷으로, 다양한 프레임워크와 하드웨어에서 모델을 자유롭게 변환·공유·실행할 수 있도록 해줍니다24567.

Citations:

  1. https://adjh54.tistory.com/203
  2. https://wikidocs.net/210835
  3. https://woon.blogpro.so/onnxopen-neural-network-exchange
  4. https://beeny-ds.tistory.com/entry/%EC%86%8C%EA%B0%9C-ONNX-%EB%9E%80
  5. https://igotit.tistory.com/entry/ONNX-Open-Neural-Network-Exchange-%EB%94%A5%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8-%EB%B3%80%ED%99%98-%ED%91%9C%EC%A4%80-%ED%8F%AC%EB%A7%B7
  6. https://velog.io/@kaintels/ONNX%EB%9E%80
  7. https://moonlight314.tistory.com/entry/ONNXOpen-Neural-Network-Exchange
  8. https://www.ultralytics.com/ko/glossary/onnx-open-neural-network-exchange

 

728x90

+ Recent posts