핵심 요약
Keras 3에서는 이전의 HDF5 기반 .h5
형식을 더 이상 권장하지 않고, 모델 아키텍처·가중치·컴파일 정보를 하나의 ZIP 아카이브로 통합한 “Keras v3” 형식(.keras
)만을 공식 지원한다. 이는 단순한 브랜딩 차원을 넘어, 저장 방식의 일관성 확보와 멀티백엔드 호환성, 그리고 성능·유연성 개선을 위한 기술적 결정이다.
1. Keras v3의 통합 저장 포맷
Keras 3부터는 모델 전체(아키텍처, 가중치, 옵티마이저 상태 등)를 하나의 .keras
파일로 저장하도록 설계되었다.
이 파일은 내부적으로
- JSON 기반의 모델 구성(config)
- HDF5(
model.weights.h5
)로 저장된 가중치 - 추가 자산(asset)
등을 ZIP 아카이브 형태로 묶은 것으로, 일관된 로드·재현 과정을 보장한다[1].
2. HDF5(.h5) 형식의 레거시화
.h5
확장자는 HDF5(Hierarchical Data Format v5) 기반으로 모델 구조와 가중치를 계층적 그룹으로 저장하지만,
- 모델 구성과 가중치 저장 방식이 분리되어 있어 사용자 혼란 유발
- 파일 크기가 상대적으로 크고 입출력 속도가 느린 편
- JSON 기반 직렬화에 비해 메타데이터 관리가 제한적
등의 한계를 지닌다[2].
이로 인해 Keras 팀은 HDF5 형식을 “legacy(구식)” 포맷으로 규정하고, 향후 지원 범위를 점진 축소하기로 결정하였다[3].
3. 멀티백엔드 호환성과 관리 편의성
Keras v3는 JAX, TensorFlow, PyTorch 등 다양한 백엔드를 선택 가능하도록 설계되었으며,.keras
형식은 로드 시 백엔드에 특화된 추가 변환 과정 없이 동일 파일을 재사용할 수 있게 해준다.
반면 .h5
저장 방식은 TensorFlow 전용 설계라는 인식이 강해, 멀티백엔드 지원에 제약이 있다[1].
4. 브랜딩 그 이상의 기술적 이유
.keras
라는 확장자는 단순한 네이밍 차원을 넘어 “Keras v3 표준 포맷”임을 명시하여,
- 사용자에게 새로운 권장 방식을 명확히 인식시키고
- 코드베이스 내 여러 저장 방식을 통합 관리
- 향후 포맷 개선 시 버전 관리 용이
등의 관리 및 교육적 이점을 제공한다.
따라서.h5
차단은 브랜딩만이 아닌, 일관된 사용자 경험 제공과 기술적 개선을 위한 필수 조치이다.
출처
[1] Save, serialize, and export models – Keras https://keras.io/guides/serialization_and_saving/
[2] [4] Keras h5 모델 저장 형식 변경 – 9학년 5반 – 티스토리 https://jjoh4803.tistory.com/60
[3] keras-3: saving weights in legacy h5 format fails for custom layer … https://github.com/keras-team/keras/issues/19375
[4] Multiple issue with mobilevit vision example while conversion to … https://github.com/keras-team/keras/issues/18613
[5] Import “tensorflow.keras” could not be resolved after upgrading to … https://stackoverflow.com/questions/71000250/import-tensorflow-keras-could-not-be-resolved-after-upgrading-to-tensorflow-2
[6] I save deep learning model as *.keras extension . tensorflow … https://stackoverflow.com/questions/77524125/i-save-deep-learning-model-as-keras-extension-tensorflow-load-model-give-lay
[7] Keras: The high-level API for TensorFlow https://www.tensorflow.org/guide/keras
[8] Cannot open keras model file as h5 – Stack Overflow https://stackoverflow.com/questions/70845134/cannot-open-keras-model-file-as-h5
[9] Keras 모델 저장 및 로드 | TensorFlow Core https://www.tensorflow.org/guide/keras/save_and_serialize
[10] Introducing Keras 3.0 https://keras.io/keras_3/
[11] KNIME Deep Learning – Keras Integration https://www.knime.com/deeplearning/keras
[12] Migrating Keras 2 code to multi-backend Keras 3 https://keras.io/guides/migrating_to_keras_3/
[13] Why So Many Brand Extensions Fail | FullSurge https://www.fullsurge.com/blog/why-so-many-brand-extensions-fail
[14] how to fix this Value Error ‘ ValueError: decay is deprecated in the … https://stackoverflow.com/questions/74734685/how-to-fix-this-value-error-valueerror-decay-is-deprecated-in-the-new-keras-o
[15] Save, serialize, and export models https://cran.r-project.org/web/packages/keras3/vignettes/serialization_and_saving.html
[16] Updating older Keras models with deprecation warnings https://stackoverflow.com/questions/55977126/updating-older-keras-models-with-deprecation-warnings&rut=641db503c6c9ca967995aed3c3273a388402a9cebce110f215c4d4a192f93c8b
[17] keras-team/keras: Deep Learning for humans – GitHub https://github.com/keras-team/keras
답글 남기기