이 track 전체를 스크립트 한 개로
이게 capstone — 이 track 에서 배운 모든 조각을 하나로 접은 완전한 vision pipeline 이야. layer 로서의 preprocessing (lesson 1), 학습 때 ON / inference 때 OFF 인 augmentation (lesson 2), backend-중립 fit() (lesson 3), cache/prefetch 붙은 폴더 로드 dataset (lesson 4) — 전부 model 정의 하나 + fit() 호출 하나로 collapse.
전처리가 model 안에 사는 이유
Rescaling 이랑 augmentation block 이 어디 있는지 봐 — 어떤 Conv2D 보다도 *앞*, 맨 첫 layer 야. 그 위치가 핵심 전부. 이제 model 은 raw [0, 255] 이미지를 입력으로 기대하고 normalization 을 내부에서 알아서 해. 따로 sync 맞출 전처리 스크립트도 없고, train/serve skew 가능성도 0 — saved .keras 파일이 곧 전처리야. augmentation 은 Random* block 이라 inference 때 자동으로 조용해져서, production 은 깔끔한 rescaling 만 보고 그 외엔 안 봐.
deploy = 파일 하나 복사
변환이 weight 따라 다니니까 deploy 가 마땅히 그래야 할 만큼 지루해 — .keras 파일을 serving 머신에 복사하고, keras.saving.load_model() 하고, raw 이미지로 predict(). 같이 ship 할 전처리 코드도, 재현할 환경도, drift 도 없어. 데이터를 옆에 볼트로 붙인 스크립트가 아니라 model 의 일등 시민으로 다룬 engineering 의 보상이야.