ONNX 연산자

ONNX 연산자 (ONNX Operators)

ONNX 모델은 여러 개의 연산자(operator)로 이루어져요. ONNX 연산자라는 개념을 이해하면 그래프가 실제로 무엇을 하는지 훑을 수 있어요. ONNX 문서는 모든 연산자에 대해 사용법, 파라미터, 예제, 버전별 변경 이력을 제공하고, 각 연산자의 버전 테이블도 함께 실어요.

출처: ONNX 공식 문서 — ONNX Operators

연산자 도메인

ONNX 연산자는 도메인(domain)으로 묶여요. 주요 도메인은 ai.onnx(핵심 연산)와 ai.onnx.ml(머신러닝 전용 연산)이에요. 그 외에 ai.onnx.preview, ai.onnx.preview.training 같은 도메인도 있어요. 도메인은 같은 이름의 연산자라도 어느 체계에 속하는지를 구분해 줘요.

각 연산자와 버전

각 연산자는 사용 가능한 버전들과, 버전 간 차이를 나타내는 테이블로 문서화돼요. 예를 들어 Add 는 버전 14, 13, 7, 6, 1 을 갖고, 버전 간 차이 조합이 함께 표기돼요. MatMul, Conv 같은 연산자도 각자 여러 버전을 거치며 시그니처가 발전해 왔어요.

연산자 버전
Add 14, 13, 7, 6, 1
Relu 14, 13, 6, 1
MatMul 13, 9, 1
Conv 11, 7, 1
Transpose 25, 24, 23, 21, 13, 1

위 표는 예시일 뿐이며, 실제 최신 버전 목록은 ONNX operators 문서의 operators.md 테이블을 참고해야 정확해요. Abs, Acos, Add 처럼 많은 연산자가 있고, 각 문서 페이지에는 사용 가이드·파라미터·예제·버전별 기록이 담겨 있어요.

모든 예제는 마지막에 expect 함수를 호출하는데, 이는 런타임이 해당 예제에 대해 기대한 출력을 내는지 검사하는 역할을 해요. 이 검사 로직을 구현한 예로는 onnxruntime 에 기반한 샘플 연산자 테스트 코드가 있어요.

더 알아보기