본문 바로가기
C.W.K.
Stream
Lesson 01 of 08 · published

model.compile()

~8 min · training

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

compile, fit, callback 세 줄 뒤에는 상태 관리, 옵티마이저 갱신, 손실 집계, 평가지표 누적, 콜백 호출이 숨어 있어. 이 트랙은 학습이 이상할 때 어느 설정을 점검해야 하는지 알 수 있도록 그 구조를 풀어봐.

compile은 학습 방법을 설정해

compile()은 가중치를 바꾸거나 순전파를 실행하지 않아. 모델이 어떻게 배울지 세 가지를 정해. 옵티마이저는 기울기를 가중치 갱신으로 바꾸고, 손실 함수는 줄여야 할 하나의 목표값을 만들며, 평가지표는 기울기에 영향을 주지 않고 진행 상태를 관찰해.

분류와 회귀의 compile 호출은 손실 함수와 평가지표만 달라지고 구조는 같아. 한 패턴을 익히면 두 문제에 모두 적용할 수 있어.

빠른 문자열과 조절 가능한 인스턴스

'adam'이나 'mse' 같은 문자열은 기본 설정으로 빠르게 시작할 때 편해. keras.optimizers.Adam(learning_rate=1e-3)처럼 인스턴스를 만들면 학습률을 직접 정하고 스케줄을 붙이며 저장할 설정도 명확히 할 수 있어. 하이퍼파라미터를 조정할 때는 인스턴스 형태가 좋아. 어떤 형태든 fit() 전에 반드시 compile()을 호출해야 모델이 무엇을 개선할지 알아.

Code

분류와 회귀의 compile()·python
model.compile(
    optimizer="adam",                            # or keras.optimizers.Adam(1e-3)
    loss="sparse_categorical_crossentropy",      # or Loss instance
    metrics=["accuracy"],                        # list of metric names/instances
)

# For regression:
model.compile(
    optimizer=keras.optimizers.Adam(learning_rate=1e-3),
    loss="mse",
    metrics=["mae"],
)

External links

Exercise

같은 MNIST 모델을 optimizer='adam'과 keras.optimizers.Adam(learning_rate=1e-3)로 각각 compile해. 둘 다 다섯 에포크 학습하고 곡선이 같은지 확인해.

Progress

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

댓글 0

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

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