Onnx

이진우·2024년 7월 19일
0

Deep learning

목록 보기
4/7

Onnx?

ONNX is an open format built to represent machine learning models. ONNX defines a common set of operators - the building blocks of machine learning and deep learning models - and a common file format to enable AI developers to use models with a variety of frameworks, tools, runtimes, and compilers.

ONNX(Open Neural Network Exchange)는 AI 및 머신 러닝 모델의 상호 운용성을 위한 오픈 표준임. ONNX는 Tensorflow, PyTorch와 같은 다른 다양한 DNN 프레임워크나, 도구, 런타임, 컴파일러에서 모델을 사용할 수 있도록 공통의 연산자 세트와 파일 형식을 정의함.


공식 홈페이지에 가보면 Key Benefits로 두 가지를 꼽는다.
1. Interoperability
2. Hardware Access

Interoperability는 한국어로 상호 운용성으로, 원하는 프레임워크를 사용하면서도 다양한 추론 엔진에서 모델을 실행할 수 있게 해줌. 특정 프레임워크에 종속되지 않고도 개발할 수 있게 해줌.

Hardware Access는 하드웨어 접근으로, Onnx 호환 런타임과 라이브러리를 사용하여 하드웨어 최적화를 보다 쉽게 활용할 수 있게 해줌. 다양한 하드웨어에서 성능 최적화할 수 있게 해줌.

DNN 프레임워크

DNN 프레임워크: 딥러닝 모델을 설계, 학습, 배포하는데 사용되는 소프트웨어

TensorFlow

  • 구글에서 개발한 오픈 소스 프레임워크로, 대규모 분산 학습 및 추론에 강함.
  • 주로 Python으로 작성되며, 복잡한 신경망을 구축하고 효율적으로 학습시킬때 사용함.

PyTorch

  • 페이스북에서 개발한 오픈 소스 머신 러닝 라이브러리로, 동적 계산 그래프를 사용. 유연하고 직관적인 모델링이 가능.
  • 연구와 개발에 용이하며, 실시간 모델 수정 및 디버깅에 적합.

Onnx와 TensorFlow, PyTorch의 차이점

  • TensorFlow와 PyTorch는 자체 프레임워크 내에서 모델을 설계하고 학습시키는 도구, 즉 DNN 프레임워크인 반면, ONNX는 이런 프레임워크에서 생성된 모델을 다양한 환경에서 실행할 수 있도록 하는 모델의 상호 운용성을 제공하는 표준임.

0개의 댓글