Skip to main content

Keras에서 학습률 스케줄러를 사용하는 방법

이 글은 Weights & Biases를 사용해 코드와 상호작용형 시각화를 곁들여 Keras에서 학습률 스케줄러를 활용하는 방법을 간단히 소개하는 튜토리얼입니다. 이 글은 AI 번역본입니다. 오역이 의심되는 부분이 있으면 댓글로 알려주세요.
Created on September 15|Last edited on September 15
이 글에서는 학습률 스케줄러를 사용하는 방법을 살펴보겠습니다 Keras 효율적이고 안정적인 학습 루프를 작성하기 위해.
~와 달리 PyTorch여러 클래스를 제공하는 것과 달리, TensorFlow는 사용자가 직접 정의한 함수를 연결해 다양한 종류의 학습률 스케줄러를 활용할 수 있는 간편한 클래스를 제공합니다. 이는 손쉽게 다음에 추가할 수 있습니다. model.fit() 콜!
TensorFlow에서 제공하는 Learning Rate Scheduler 콜백을 좀 더 자세히 살펴보려면 다음을 참조하세요 공식 문서를 참조하세요.
💡
다음 내용을 다룹니다:

목차



코드

TensorFlow에서는 엄격한 클래스 정의를 요구하지 않고, 사용자 정의 함수를 Callback에 전달해 사용할 수 있으므로 맞춤 스케줄을 매우 쉽게 구현할 수 있습니다. 이 Callback은 이어서 다음에 전달됩니다. .fit() 함수.
from wandb.keras import WandbCallback

# Model Definition
model = ...

# Compile the model
model.compile(optimizer = <>, loss = <>, metrics = <>)

# Custom Scheduler Function
lr_start = 1e-4
lr_max = 0.000015 * replicas * batch_size
lr_min = 1e-7
r_ramp_ep = 3
lr_sus_ep = 0
lr_decay = 0.7
def lrfn(epoch):
if epoch < lr_ramp_ep:
lr = (lr_max - lr_start) / lr_ramp_ep * epoch + lr_start
elif epoch < lr_ramp_ep + lr_sus_ep:
lr = lr_max
else:
lr = (lr_max - lr_min) * lr_decay**(epoch - lr_ramp_ep - lr_sus_ep) + lr_min
return lr

# Using this Custom Function, create a Callback
lr_callback = tf.keras.callbacks.LearningRateScheduler(lrfn, verbose=True)

# Train the Model
model.fit(..., callbacks=[lr_callback, WandbCallback()])
이게 전부입니다. 각 에포크 후 갱신된 학습률을 반환하는 함수를 만든 다음, 이를 이용해 LearningRateScheduler 콜백 인스턴스

요약

이 글에서는 Keras 기반 딥러닝 모델에서 학습률 스케줄러를 활용하는 방법과, Weights & Biases로 지표를 모니터링하면 유용한 인사이트를 얻을 수 있는 방법을 살펴보았습니다.
W&B의 전체 기능을 확인하려면 다음을 살펴보세요 5분짜리 짧은 가이드더 깊이 있는 수학적 설명과 “처음부터 직접 구현하는” 코드 예제를 다룬 리포트를 더 원하신다면, 아래 댓글이나 저희의 포럼 ✨!
다음 주제에 대한 다른 리포트도 확인해 보세요 완전 연결 GPU 활용도와 모델 저장과 같은 다른 핵심 개발 주제도 다룹니다.

추천 읽을거리



이 글은 AI 번역본입니다. 오역이 의심되는 부분이 있으면 댓글로 알려주세요. 원문 리포트는 아래 링크에서 확인하실 수 있습니다: 원문 리포트 보기