[딥러닝] Callback

김영민·2022년 7월 15일
0

DeepLearning

목록 보기
12/27

Callback

콜백은 모델을 fit한 뒤, iteration 할 때마다 특정한 이벤트에 따라 callback이 수행되는 것을 말합니다. 주로 learning_rate를 수정할 때 사용됩니다!

Callback 종류!

1.ModelCheckpoint

ModelCheckpoint에서 여러 인자들이 있습니다.

  • 특정 조건에 맞춰서 모델을 파일로 저장하는 것.
  • filepath : epoch의 값과 logs의 키로 채워진 이름 형식으로 파일을 저장할 수 있습니다.
  • monitor : 모니터할 지표를 확인할 수 있습니다. (loss나 accuracy)
  • save_best_only : 가장 좋은 성능을 나타내는 모델만 저장할지 말지 정하는 것입니다.
  • save_wegihts_only : Weights만 저장할 지 정하는 것입니다. (true로 하는 것이 좋습니다)
  • mode :
    {auto,min,max} 중 하나를 골라서, monitor 지표가 loss면 min, accuracy면 max, 자동으로 유추하기를 원한다면 auto로 설정한다.

2. ReduceLROnPlateau

  • learning_rate를 동적으로 감소시킴.
  • factor : 학습 속도를 줄일 인수 ( new_learning_rate = factor * learning_rate )
  • patience : learning_rate를 줄이기 전까지 몇 epochs나 참을 것인지...

3. EarlyStopping

  • 특정 epochs 동안 성능 개선이 되지 않으면, 조기 중단하는 것.
  • patience : Early Stopping 적용 전에 얼마나 참을 지...!

callback 사용법

mcp_cb = ModelCheckpoint(
							filepath='/kaggle/working/weights.{epoch:02d}-{val_loss:.2f}.hdf5', 
                            monitor='val_loss', save_best_only=True, save_weights_only=True, 
                            mode='min', period=3, verbose=1
                            
                         )
                         
history = model.fit(x=tr_images, y=tr_oh_labels, batch_size=128, epochs=10, validation_data=(val_images, val_oh_labels),
                   callbacks=[mcp_cb])
                        
  • 위의 방식처럼 callback을 만들어주고, model.fit callbacks 인자리스트 형식으로 적용
  • 여러 callback을 한번에 사용 가능 , 보통 한번에 3개의 callback들을 모두 사용


오늘은 이렇게 callback에 대해 알아보았습니다!

0개의 댓글