옛 포맷이 아직 살아있는 이유
Keras 는 Keras 3 보다 거의 10 년 먼저 나왔고, 세상엔 그 시절 포맷으로 저장된 모델이 잔뜩 있어. 그걸 전부 버릴 순 없으니까 Keras 3 은 backward-compat 으로 로더를 살려둬 — 2018 년 프로젝트의 .h5 파일도 load_model 로 그대로 열려. 바뀐 건 권장 사항이야: 이 포맷들은 과거를 읽기 위한 거지, 미래를 쓰기 위한 게 아니야.
| 포맷 | 확장자 | 비고 |
|---|---|---|
| .keras | .keras | 권장. cross-backend, architecture + weights + optimizer |
| HDF5 | .h5 | legacy. weights 만 또는 full model. 아직 널리 쓰임 |
| SavedModel | 디렉터리 | TF 전용. TF Serving 에 적합 |
legacy 포맷마다 붙는 세금
옛 포맷 둘 다 대가가 있어. HDF5 (.h5) 는 subclass 모델이나 custom object 를 안정적으로 round-trip 못 해 — symbolic-graph 시대에 만들어진 거라 임의의 Python 코드를 잘 못 다뤄. SavedModel 은 TensorFlow 전용 디렉터리라서 backend 하나에 묶이고, 이 트랙이 의존하는 cross-backend 휴대성을 깨버려. 둘 다 .keras 를 portable 하게 만드는 backend-agnostic weight 저장 *이전* 시대 거야. 그래서 새 작업은 무조건 .keras 로, legacy 포맷은 걸어 나오기만 하는 일방통행 문으로 취급해.