본문 바로가기
C.W.K.
Stream
Lesson 06 of 07 · published

계산 그래프 검사하기

~10 min · functional

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

정적 그래프는 실행하지 않고도 살펴볼 수 있어

Functional 모델은 명령을 순서대로 실행하는 코드가 아니라 정적인 DAG이므로 그래프 자체를 검사하고 디버깅할 수 있어. 순전파를 돌리지 않아도 어떤 구조가 만들어졌는지 확인하는 도구가 세 가지 있어.

  • model.summary()는 레이어별 출력 모양과 매개변수 수를 글자 표로 보여주는 가장 빠른 점검 도구야.
  • keras.utils.plot_model(...)은 실제 DAG와 연결마다 흐르는 텐서 모양을 그림으로 나타내. 분기와 건너뛰기 연결은 표보다 그림에서 훨씬 잘 보여.
  • 중간 출력 모델은 model.input에서 원하는 내부 레이어의 .output까지 새 keras.Model을 만들어 그 지점의 활성값을 확인해. 원본 모델을 바꾸지 않고 NaN이 처음 생긴 위치를 찾을 수 있어.

plot_model에는 외부 도구가 필요해

plot_model은 pydot을 거쳐 시스템의 Graphviz를 실행해. 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 블록을 가져와 plot_model 그림을 만들고 연결이 의도한 모양인지 확인해.

Progress

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

댓글 0

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

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