자주 만나지만 엉뚱한 곳에서 드러나는 오류
아래 네 가지는 학습이 시작되지 않거나 실행은 되는데 예측이 형편없는 문제의 흔한 원인이야. 실수한 줄이 아니라 뒤쪽 레이어에서 오류가 드러나는 경우가 많아 추적이 오래 걸리지.
- 입력 모양 누락 —
keras.Input이 없으면 데이터를 처음 볼 때까지 모델이 빌드되지 않아summary()가 온전한 정보를 주지 못하고 모양 오류도 늦게 나타나. 입구에서 명시해. - Flatten 누락 — 4차원 영상 텐서를 벡터를 기대하는
Dense에 바로 넣는 실수야.summary()의 출력 모양을 보면 빠르게 찾을 수 있어. - 레이블과 손실 함수 불일치 — 정수 레이블에 원-핫 벡터를 기대하는
categorical_crossentropy를 쓰면 안 돼. 이때는sparse_categorical_crossentropy가 맞아. - 출력 차원과 클래스 수 불일치 — 10개 클래스를 분류하면서 마지막
Dense가 5개만 출력하는 경우야.num_classes를 한 곳에서 정의해 재사용해.
특별한 실패가 아니라 누구나 반복하는 단순한 실수들이야. 매번 새로 디버깅하는 것보다 학습 전 점검 절차를 고정해두는 편이 훨씬 빨라.