Path: blob/master/site/ko/guide/migrate/early_stopping.ipynb
25118 views
Copyright 2021 The TensorFlow Authors.
조기 중단 마이그레이션
이 노트북은 먼저 tf.estimator.Estimator
및 조기 중단 후크를 사용하여 TensorFlow 1에서 조기 중단하는 모델 훈련을 설정한 다음 Keras API 혹은 사용자 정의 훈련 루프를 사용하여 TensorFlow 2에서 모델 훈련을 설정하는 방법을 보여줍니다. 조기 중단은 예를 들어 검증 손실이 특정 임계값에 도달하면 훈련을 중지하는 정규화 기술입니다.
TensorFlow 2에는 조기 중단을 구현하는 세 가지 방법이 있습니다.
내장 Keras 콜백(
tf.keras.callbacks.EarlyStopping
)을 사용하고 이를Model.fit
에 전달합니다.사용자 정의 콜백을 정의하고 이를 Keras
Model.fit
에 전달합니다.사용자 정의 훈련 루프(
tf.GradientTape
사용)에서 사용자 정의 조기 중단 규칙을 작성합니다.
설치하기
TensorFlow 1: 조기 중단 후크 및 tf.estimator를 사용하는 조기 중단
먼저 MNIST 데이터세트 로드 및 전처리용 함수와 tf.estimator.Estimator
와 함께 사용할 모델 정의를 정의합니다.
TensorFlow 1에서 조기 중단은 tf.estimator.experimental.make_early_stopping_hook
으로 조기 중단 후크를 설정하면 작동합니다. 인수가 없어도 함수를 허용할 수 있는 should_stop_fn
용 매개변수로써 make_early_stopping_hook
메서드에 후크를 전달합니다. should_stop_fn
이 True
를 반환하면 훈련이 중단됩니다.
다음 예제는 훈련 시간을 최대 20초로 제한하는 조기 중단 기술을 구현하는 방법을 보여줍니다.
TensorFlow 2: 내장 콜백 및 Model.fit을 사용하는 조기 중단
MNIST 데이터세트 및 간단한 Keras 모델 준비:
TensorFlow 2에서 내장 Keras Model.fit
(혹은 Model.evaluate
)을 사용하는 경우 내장 콜백인 tf.keras.callbacks.EarlyStopping
을 Model.fit
의 callbacks
매개변수로 전달함으로써 조기 중단을 구성할 수 있습니다.
EarlyStopping
콜백은 사용자가 지정한 메트릭을 모니터링하고 개선이 중단되면 훈련을 종료합니다(자세한 정보는 내장 메서드를 사용하는 훈련 및 평가 혹은 API 문서를 확인하세요).
다음은 개선을 보여주지 않는 epoch의 수를 3
(patience
)으로 설정한 후 손실을 모니터링하며 훈련을 중단하는 조기 중단 콜백의 예제입니다.
TensorFlow 2: 사용자 정의 콜백 및 Model.fit을 사용하는 조기 중단
사용자 정의 조기 중단 콜백을 구현할 수도 있습니다. 이 콜백은 Model.fit
(혹은 Model.evaluate
)의 callbacks
매개변수로 전달할 수도 있습니다.
이 예제에서는 self.model.stop_training
을 True
로 설정하면 훈련 프로세스가 중단됩니다.
TensorFlow 2: 사용자 정의 훈련 루프를 사용하는 조기 중단
TensorFlow 2에서는 내장 Keras 메서드로 훈련과 평가를 수행하지 않은 경우 사용자 정의 훈련 루프에서 조기 중단을 구현할 수 있습니다.
먼저 Keras API를 사용하여 다른 간단한 모델, 옵티마이저, 손실 함수 및 메트릭을 정의합니다.
tf.GradientTape와 속도 향상을 위한 @tf.function
데코레이터를 사용하여 매개변수 업데이트 함수를 정의합니다.
다음으로 조기 중단 규칙을 수동으로 구현할 수 있는 사용자 정의 훈련 루프를 작성합니다.
아래의 예제는 검증 손실이 특정 epoch 수 동안 개선되지 않을 경우 훈련을 중단하는 방식을 보여줍니다.
다음 단계
Keras 내장 조기 중단 콜백 API에 대해 API 문서에서 자세히 알아보세요.
최소 손실 시 조기 중단하기 등 사용자 정의 Keras 콜백 작성 방법을 알아보세요.
Keras 내장 메서드를 사용하여 훈련 및 평가하기에 대해 알아보세요.
EarlyStopping
콜백을 사용하는 과대적합 및 과소적합 가이드에서 일반적인 정규화 기술을 살펴보세요.