Keras 학습률 스케줄 콜백 — 훈련 중 학습률 변경

Keras 학습률 스케줄 콜백 — 훈련 중 학습률 변경

Keras의 LearningRateScheduler콜백(Callback) 으로 매 에폭이 끝날 때마다 학습률을 변경하는 방법이에요.

사용

def scheduler(epoch, lr):
    if epoch < 10:
        return lr
    else:
        return float(lr * tf.math.exp(-0.1))

keras.callbacks.LearningRateScheduler(schedule=scheduler, verbose=1)

schedule 함수는 (epoch, current_lr)을 받아 새 학습률을 반환하고, Keras가 이를 옵티마이저에 반영해요. 스케줄을 코드로 직접 표현해 에폭 단위 감쇠·스텝 전환을 쉽게 구현할 수 있어요.

스케줄 API와의 차이

  • LearningRateScheduler 콜백: 매 에폭 끝마다 동작하는 에폭 단위 제어.
  • learning_rate_schedules API: 옵티마이저에 바로 꽂아 스텝 단위로 세밀하게 제어.

복잡한 모델 구성에서는 스케줄 API를, 간단한 에폭 기반 정책은 콜백을 쓰는 게 자연스러워요.

더 알아보기