728x90
반응형
ONNX란?
딥러닝 모델을 저장하고 공유하는 파일 형식.
다양한 딥러닝 프레임 워크 (Pytorch, Tensorflow, Keras 등)에서 만든 모델을 공통된 형식을 저장하고 공유할 수 있도록 설계된 파일 포맷이다.
주요 특징
- 모델 형식
- ONNX는 딥러닝 모델의 구조, 연산과정, 학습된 파라미터를 저장하는 표준형식이다.
- 데이터를 저장하거나 표현하는 데이터 타입이 아니라, 모델의 청사진을 담는다고 생각하면 된다.
- JSON이 여러프로그램이 데이터를 주고 받을 때 사용하는 표준 형식인 것 처럼, ONNX는 딥러닝 모델 교환의 표준이다..! - 그래프 기반 표현
- ONNX 모델은 계산 그래프 형태로 모델을 나타낸다.
⊙ 노드 (node): 모델의 연산 (예: 합성곱, 활성화 함수)
⊙ 엣지 (Edge): 데이터 흐름 (연산 간의 연결)
⊙ 텐서 (Tensor): 각 노드의 입력과 출력은 데이터 구조인 텐서로 표현
- Netron 같은 도구를 사용하여 계산 그래프를 시각적으로 확인할 수 있음 - 입력 데이터와 연관성
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 |