더북(TheBook)

2 모델 업데이트하기

 

에포크(epochs)는 학습을 몇 번 반복할 것인지 정해 줍니다. 에포크가 50이면 순전파와 역전파를 50번 실시한다는 뜻이지요. 학습을 많이 반복한다고 해서 모델 성능이 지속적으로 좋아지는 것은 아닙니다. 이를 적절히 정해 주는 것이 중요합니다. 만일 50번의 에포크 중 최적의 학습이 40번째에 이루어졌다면, 어떻게 해서 40번째 모델을 불러와 사용할 수 있을까요? 이번에는 에포크마다 모델의 정확도를 함께 기록하면서 저장하는 방법을 알아보겠습니다.

먼저 모델이 어떤 식으로 저장될지 정합니다. 다음 코드는 ./data/model/all/ 폴더에 모델을 지정해 줍니다. 50번째 에포크의 검증셋 정확도가 0.9346이라면 50-0.9346.hdf5라는 이름으로 저장됩니다.

modelpath = "./data/model/all/{epoch:02d}-{val_accuracy:.4f}.hdf5"

학습 중인 모델을 저장하는 함수는 케라스 API의 ModelCheckpoint()입니다. 모델이 저장될 곳을 정하고 진행되는 현황을 모니터할 수 있도록 verbose1(True)로 설정합니다.

from tensorflow.keras.callbacks import ModelCheckpoint

checkpointer = ModelCheckpoint(filepath=modelpath, verbose=1)
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.