본문 바로가기
인공지능/Deep Learning

[Deep Learning] TensorFlow EarlyStopping, Callback

by coding_su 2022. 12. 28.

📝딥러닝  텐서플로우 EarlyStopping, Callback

callback 이란, 내가 만든 함수를 프레임워크가 실행시켜주는 것

EarlyStopping을 사용하면 지정된 에포크 횟수 동안 성능 향상이 없으면 자동으로 훈련이 멈춘다

 

# patience를 10으로 설정하면 10번의 에포크동안 성능향상이 없으면 멈추라는 뜻
early_stop = tf.keras.callbacks.EarlyStopping(monitor='val_loss', patience= 10)

# 학습할때 callbacks을 입력
epoch_history = model.fit(X_train, y_train, epochs= 100000, validation_split= 0.2, callbacks= [ early_stop ])
accuracy나 loss가 원하는 특정 값이 되면 자동으로 학습을 멈추게 하고 싶을때 Callback 사용
(특정값에 도달하면 학습을 멈추게 할 수 있는 콜백기능)

 

# 클래스를 만들어 조건 지정
class myCallback(tf.keras.callbacks.Callback) :
  def on_epoch_end(self, epoch, logs={}) :
    if logs['val_accuracy'] > 0.88 :
      print('\n 내가 정한 정확도에 도달했으니 학습을 멈춘다')
      self.model.stop_training = True
      
# 변수에 저장하여 사용
my_cd = myCallback()

# 모델링하고 학습시킬때 callbacks= 에 입력해준다
epoch_history = model.fit(X_train, y_train, epochs= 30, validation_split= 0.2, callbacks = [my_cd])

댓글