본문 바로가기
Deep Learning

[DL] ONNX

by 자몽먹은토끼 2024. 11. 19.
728x90
반응형
ONNX란?

 

딥러닝 모델을 저장하고 공유하는 파일 형식.

다양한 딥러닝 프레임 워크 (Pytorch, Tensorflow, Keras 등)에서 만든 모델을 공통된 형식을 저장하고 공유할 수 있도록 설계된 파일 포맷이다. 

 

주요 특징

 

  1. 모델 형식
    - ONNX는 딥러닝 모델의 구조, 연산과정, 학습된 파라미터를 저장하는 표준형식이다.
    - 데이터를 저장하거나 표현하는 데이터 타입이 아니라, 모델의 청사진을 담는다고 생각하면 된다.
    - JSON이 여러프로그램이 데이터를 주고 받을 때 사용하는 표준 형식인 것 처럼, ONNX는 딥러닝 모델 교환의 표준이다..!

  2. 그래프 기반 표현
    - ONNX 모델은 계산 그래프 형태로 모델을 나타낸다.
        ⊙ 노드 (node): 모델의 연산 (예: 합성곱, 활성화 함수)
        ⊙ 엣지 (Edge): 데이터 흐름 (연산 간의 연결)
        ⊙ 텐서 (Tensor): 각 노드의 입력과 출력은 데이터 구조인 텐서로 표현

    - Netron 같은 도구를 사용하여 계산 그래프를 시각적으로 확인할 수 있음

  3. 입력 데이터와 연관성
    ONNX 모델은 내부적으로 입력 데이터 타입을 정의하지만 자체는 모델 형식이고, 데이터 타입과는 다르다.
    ( 개인적으로 이게 가장 헷갈렸던 부분..!)

 

 

 

ONNX를 사용하는 이유는 pth파일로 추론하지 않기 위해서??

 

".pth" 파일은 PyTorch 전용 모델 저장 형식으로, PyTorch 환경에서만 사용/추론이 가능하다.

 

ONNX로 변환하면 PyTorch 환경이 없어도, 다양한 플랫폼(모바일, IoT, 클라우드)에서 추론 가능하고,

ONNX로 변환된 모델은 GPU, CPU, TPU, FPGA 등 다양한 하드웨어와 환경에서 동작하도록 최적화가 가능하다.

 

즉, ONNX는 더 유연하고 배포하기 쉬운 대안이라는 뜻이다!

728x90
반응형

'Deep Learning' 카테고리의 다른 글

신경망 keras로 접근하기  (0) 2024.06.05
신경망의 이해  (1) 2024.06.05
시계열 평활기법 - 1  (0) 2023.09.17
[CV] 색공간 (수정중)  (0) 2023.08.17
[DL] 신경망 (Neural Network) (수정중)  (0) 2023.08.14