오답노트

[Keras] EarlyStopping 본문

Python/DL

[Keras] EarlyStopping

권멋져 2022. 9. 15. 21:58

EarlyStopping

EarlyStopping은 모델이 학습하는 중에 모델이 더 이상 성능이 좋아지지 않는다고 판단될 때 학습을 멈추게 한다.

 

from tensorflow.keras.callbacks import EarlyStopping

es = EarlyStopping(monitor = 'val_loss',
                   min_delta=0,
                   patience=5,
                   verbose=1,
                   restore_best_weights=True)
                   
model.fit(train_x,train_y,
          verbose=1,epochs=10,
          callbacks=[es], # << EarlyStopping
          validation_split=0.2)

 

  • monitor : 모델의 학습을 멈출 성능 기준을 설정한다.
  • min_delta : 모델의 성능이 증가되는 기준을 설정한다. 예를 들어 min_delta 값이 0.01로 설정되어 있는데, 모델 성능이 이전 학습보다 0.01이상 오르지 않으면 성능이 증가되지 않은것으로 취급한다.
  • patience : 모델의 성능이 증가되지 않는 상황이 patience에서 설정한 수 만큼 발생했을 때 모델 학습을 중지한다.
  • restore_best_weights : 기본 값은 False로 Ture일 때에는 최적의 가중치를 계속 갱신한다.

 

EarlyStopping 객체를 생성 후 fit 함수에 callbacks 옵션에 리스트로 입력한다.

validation_split 옵션은 학습하는 동안 train과 validation 데이터의 비율을 설정한다.

'Python > DL' 카테고리의 다른 글

[Keras] 모델 성능에 유용한 Layer  (0) 2022.09.19
[Keras] 연산 Layer  (0) 2022.09.18
[Keras] Flatton Layer  (0) 2022.09.15
[Keras] ANN  (0) 2022.09.14
[Keras] MultiClass - SoftMax  (0) 2022.09.13