미니 프로젝트 중에 같은 팀원이 다른 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)
'Experience > - KT AIVLE School' 카테고리의 다른 글
KT AIVLE School 7주차 정리 - Colab에서 이미지 파일 정리 (0) | 2023.03.15 |
---|---|
KT AIVLE School 7주차 정리 - 상황별 Data Augmentation (0) | 2023.03.15 |
KT AIVLE School 7주차 정리 - CNN 모델 만들고 사용하기 (0) | 2023.03.15 |
KT AIVLE School 7주차 정리 - CNN's Layers 정리 (0) | 2023.03.13 |
KT AIVLE School 6주차 정리 - FI, PFI, SHAP (0) | 2023.03.10 |
KT AIVLE School 6주차 정리 - 미니프로젝트 후기 (0) | 2023.03.08 |
댓글