📝딥러닝 텐서플로우 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])
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] activation Softmax (0) | 2022.12.28 |
---|---|
[Deep Learning] Flatten Library (1) | 2022.12.28 |
[Deep Learning] 학습중에 평가하기 validation (0) | 2022.12.28 |
[Deep Learning] TensorFlow optimizer learning rate 셋팅 (0) | 2022.12.28 |
[Deep Learning] epochs history 차트 (0) | 2022.12.28 |
댓글