한 스크립트로 약속을 검증해
이제 다중 백엔드가 구호가 아니라 실제로 동작하는지 확인해보자. 코드 블록의 모델 정의, compile과 fit, 저장 호출은 100% 백엔드 독립적이라 TensorFlow, PyTorch, JAX 가운데 어느 이름도 나오지 않아. 실행 엔진은 파일 밖에서 KERAS_BACKEND 환경 변수로 선택하고, 같은 소스가 세 백엔드에서 거의 같은 정확도로 학습돼.
.keras 파일이 백엔드 사이의 계약이야
마지막의 model.save("my_model.keras")가 학습과 배포를 이어줘. .keras 형식은 모델 구조, 가중치, 옵티마이저 상태를 특정 백엔드 연산 없이 저장해. 속도를 위해 JAX로 학습한 다음 TensorFlow에서 불러와 배포해도 재학습하거나 별도 형식으로 미리 변환할 필요가 없어. 한 번 저장한 파일을 어느 백엔드에서나 읽을 수 있어.
세 환경에서 실제로 달라지는 값은 에포크당 걸린 시간과 최대 메모리처럼 직접 측정해야 하는 성능이야. 어떤 백엔드가 알맞은지는 인터넷의 평균 비교가 아니라 아빠 모델과 하드웨어에서 얻은 숫자가 결정해.