C.W.K.
Stream
Lesson 06 of 07 · published

Graph 검사하기

~10 min · functional

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

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 에선 꼭.

Code

Functional graph 검사하는 세 가지 방법·python
# Print architecture
model.summary()

# Generate a diagram (requires pydot/graphviz)
keras.utils.plot_model(model, show_shapes=True, show_layer_names=True)

# Inspect intermediate outputs for debugging
intermediate_model = keras.Model(
    inputs=model.input,
    outputs=model.get_layer("dense_2").output,
)
intermediate_output = intermediate_model.predict(sample_data)

External links

Exercise

앞에서 만든 siamese 또는 ResNet block 가져와. plot_model 출력 생성하고 graph 시각적으로 검사 — 의도한 모양 맞아?

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.