graph 가 읽을 수 있는 데이터
Functional model 은 imperative 코드가 아니라 정적 DAG 라서 graph 자체가 검사·디버깅 가능한 일급 객체야 — forward pass 안 돌려도 model 이 실제로 뭘 만들었는지 알 수 있어. 코드 블록에 손이 가는 도구 셋, 약한 것부터 강한 순서로:
model.summary()— text 표: layer 마다 output shape 과 param 수. 가장 빠른 sanity check. '어 왜 shape 가 (None, 1) 이지?' 류 버그를 잡아.keras.utils.plot_model(...)— 실제 DAG 를 이미지로 그려, edge 에 shape 까지. branch 와 skip 이 text 로는 절대 안 되는 방식으로 한눈에 읽혀.- 중간 출력 model — 진짜 한 방:
model.input에서 임의 내부 layer 의.output까지 일회용keras.Model만들어predict호출. 그 지점의 activation 이 나와 — 원본 model 안 건드리고 '값이 어디서 NaN 됐지?' 를 디버깅하는 법.
함정
plot_model 은 순수 Python 이 아니야 — pydot 패키지 통해 Graphviz 로 shell out 해. pip install keras 만 했으면 'failed to import pydot' 라는 알쏭달쏭한 에러로 죽어. 의존하기 전에 둘 다 깔아 (pip install pydot + 시스템 Graphviz 바이너리), 특히 새 컨테이너나 CI 에선 꼭.