본문 바로가기
Experience/- KT AIVLE School

KT AIVLE School 7주차 정리 - Keras callbacks

by Yoojacha 2023. 3. 15.

미니 프로젝트 중에 같은 팀원이 다른 callback 함수를 사용한 코드를 제공해서 똑같은 상황에서 학습돌려보는 취지로 사용했었는데 좀더 나은 성능이 나오는 것을 보고 한번 정리해보자는 마음에 가장 많이 사용되는 3가지를 기록합니다!


EarlyStopping

from tensorflow.keras.callbacks import EarlyStopping

es_cb = EarlyStopping(monitor='val_loss',         # 모니터링할 값
                      min_delta=0,                # 모니터링할 값의 최소 변화량 기준
                      patience=10,                # 참는 횟수
                      mode='min',                 # 모니터링할 값의 기준
                      restore_best_weights=True,  # 최고 성능인 가중치를 model.fit에 반환 유무 설정
                      verbose=1)

ModelCheckpoint

from tensorflow.keras.callbacks import ModelCheckpoint

mcp_cb = ModelCheckpoint(filepath='/content/weights.{epoch:02d}-{val_loss:.2f}.hdf5', 
                         monitor='val_loss',      # 모니터링할 값
                         save_best_only=True,     # False 인 경우 epoch 마다 저장
                         save_weights_only=True,  # 모델 전체를 저장하면 용량문제와 임포트시 에러 가능성 있음
                         mode='min',              # val_loss가 감소하는 것이 best, ('auto' | 'min' | 'max')
                         save_freq=5,             # 가중치를 저장할 빈도수
                         verbose=1)

ReduceLR0nPlateau

from tensorflow.keras.callbacks import ReduceLROnPlateau

rlr_cb = ReduceLROnPlateau(monitor='val_loss',    # 모니터링할 값
                           factor=0.2,            # 감소할 Learning Rate 값
                           patience=3,            # 참는 횟수
                           mode='min',            # 모니터링하는 값의 기준
                           min_lr=0.001,          # 최소 learning Rate 값
                           verbose=1)

 

 

 

 

 

 

 

 

댓글