비교
Keras와 ONNX: 학습 재개용 저장과 추론 내보내기
.keras는 Keras의 모델 구성·가중치와 존재하는 옵티마이저 상태를 저장합니다. ONNX는 호환 런타임에 계산 그래프로 모델을 표현합니다.
어떤 형식을 선택해야 할까요?
Keras에서 모델을 다시 불러와 학습을 계속하려면 .keras를, 다른 호환 런타임에서 추론하려면 ONNX를 검토하세요.
적합한 경우 Keras
Keras v3 모델 구성 가중치 및 사용 가능한 학습 상태를 하나의 아카이브에 저장 · 호환되는 Keras 환경 간 모델 저장과 재로드
- 직렬화 가능한 Keras 레이어 중심의 모델 저장
- 모델 구성과 가중치를 함께 관리
적합한 경우 ONNX
지원 런타임에 머신러닝 계산 그래프와 가중치 교환 · 학습 프레임워크와 추론 환경 사이에서 모델 이동
- 모델의 연산자와 opset을 지원하는 런타임에서 추론
- 입력 출력 유형을 포함한 그래프 교환
기본 정보
| 항목 | Keras | ONNX |
|---|---|---|
| 확장자 | .keras | .onnx |
| MIME 유형 | application/zip | application/octet-stream |
| 주요 용도 | Keras v3 모델 구성 가중치 및 사용 가능한 학습 상태를 하나의 아카이브에 저장 · 호환되는 Keras 환경 간 모델 저장과 재로드 | 지원 런타임에 머신러닝 계산 그래프와 가중치 교환 · 학습 프레임워크와 추론 환경 사이에서 모델 이동 |
| 여는 방법 | 호환되는 Keras 버전에서 `load_model`로 엽니다. 사용자 정의 레이어나 객체가 있으면 신뢰할 수 있는 구현을 환경에 등록하고 일반적으로 safe mode를 유지하세요. ZIP 도구로 아카이브를 볼 수 있지만 압축 해제된 내용을 수정하면 다시 읽지 못할 수 있습니다. | ONNX checker나 호환 추론 런타임으로 불러오세요. 배포 전에 IR/opset 버전, 연산자, 입출력 유형과 shape, 런타임 지원을 확인하고 대표 입력에서 원본 모델과 출력을 비교하세요. |
| 내보내기 또는 변환 | Keras `save` 또는 `saving.save_model`로 전체 모델을 저장합니다. 추론만 배포할 때 `.keras` 저장과 `export`는 목적이 다릅니다. 대상 Keras 환경에서 다시 로드해 대표 출력, 가중치, 필요한 컴파일 또는 옵티마이저 상태를 확인하세요. | 원본 프레임워크의 ONNX exporter로 변환하고 ONNX checker로 구조를 검증하세요. 변환 성공이 수치적 동등성이나 대상 기기 실행을 보장하지 않습니다. 외부 데이터를 쓰면 모델과 모든 참조 파일을 같은 배포 단위로 보관하세요. |
용도별 선택
직렬화 가능한 Keras 레이어 중심의 모델 저장
Keras v3 모델 구성 가중치 및 사용 가능한 학습 상태를 하나의 아카이브에 저장 · 호환되는 Keras 환경 간 모델 저장과 재로드
Keras모델 구성과 가중치를 함께 관리
Keras v3 모델 구성 가중치 및 사용 가능한 학습 상태를 하나의 아카이브에 저장 · 호환되는 Keras 환경 간 모델 저장과 재로드
Keras모델의 연산자와 opset을 지원하는 런타임에서 추론
지원 런타임에 머신러닝 계산 그래프와 가중치 교환 · 학습 프레임워크와 추론 환경 사이에서 모델 이동
ONNX입력 출력 유형을 포함한 그래프 교환
지원 런타임에 머신러닝 계산 그래프와 가중치 교환 · 학습 프레임워크와 추론 환경 사이에서 모델 이동
ONNX핵심 사항 1
Keras save는 모델 구성과 상태를 보존하며 사용자 정의 객체의 구현은 별도로 필요할 수 있습니다.
차이 자세히 보기핵심 사항 2
ONNX에는 형식이 지정된 입출력·계산 그래프·opset 정보가 포함되며 실행하려면 호환 런타임이 필요합니다.
차이 자세히 보기차이 자세히 보기
.keras 저장과 ONNX 내보내기는 다른 작업입니다. Keras 버전·백엔드·연산 지원을 확인하고 추론 결과물을 만들 때 원본 .keras와 의존 코드를 보관하세요.
- Keras 공식 export API는 ONNX 출력을 지원합니다. 입력 유형·shape·선택한 opset을 기록하고 대상 런타임이 모든 연산을 구현하는지 확인하세요.
- 동일한 전처리와 대표 입력으로 원본과 출력을 비교하고 허용 오차와 장치 조건을 기록하세요. ONNX 구조 검사만으로 수치 일치·속도·Keras 학습 상태 보존을 보장할 수 없습니다.
자주 묻는 질문
.keras를 삭제하고 ONNX에서 학습을 재개해도 되나요?
그렇게 가정하면 안 됩니다. 추론 내보내기가 옵티마이저 상태와 사용자 정의 객체를 포함한 Keras 저장 내용을 재구성한다고 보장하지 않습니다. 원본 .keras와 필요한 코드·환경 정보를 보관하세요.