earlystopping(공식문서 정리)

데이터 여행자·2021년 3월 24일
0

스터디

목록 보기
8/15

EarlyStopping(조기종료)

tf.keras.callbacks.EarlyStopping(
                                monitor='val_loss', min_delta=0, patience=0, verbose=0,
                                mode='auto', baseline=None, restore_best_weights=False
)

loss 가 더이상 감소하지 않으면 model.stop_training이 '참'이 되고 학습이 종료한다. model.complile()에 loss나 metrics를 넣어주어야 한다.

Argument

  • monitor: 모니터 기준, val_loss
  • min_delta: Minimum change in the monitored quantity to qualify as an improvement, i.e. an absolute change of less than min_delta, will count as no improvement.
  • patience: loss가 patience 동안 줄지 않으면 학습이 중단된다.
  • verbose: verbosity mode
  • mode: 'auto', 'min', 'max' 중 하나 선택. 'min'의 경우 loss가 줄지 않으면 학습이 멈춘다. 'max'는 loss가 증가하지 않으면 학습을 멈춘다. 'auto'의 경우는 모니터하는 것의 이름에 따라 자동으로 결정한다.
  • baseline: 모니터할 것의 baseline value. 모델이 baseline 이후로 성능이 향상되지 않으면 학습을 멈춘다.
  • restore_best_weights: 모니터할 것의 가장 좋은 값을 가지는 에포크의 모델 가중치를 저장할지 말지를 결정한다. False라면 학습의 에포크의 마지막 가중치를 보존한다.
callback = tf.keras.callbacks.EarlyStopping(monitor='loss', patience=3)
# This callback will stop the training when there is no improvement in
# the validation loss for three consecutive epochs.
model = tf.keras.models.Sequential([tf.keras.layers.Dense(10)])
model.compile(tf.keras.optimizers.SGD(), loss='mse')
history = model.fit(np.arange(100).reshape(5, 20), np.zeros(5),
                    epochs=10, batch_size=1, callbacks=[callback],
                    verbose=0)
len(history.history['loss'])  # Only 4 epochs are run.

0개의 댓글