728x90
딥러닝을 할때 성능을 위해서 epoch를 설정한다. ( 너무 많은 epoch는 오버핏이 될 수 있다.)
일일이 직접 모니터 하지 않아도, epoch마다 성능이 올라가면 자동으로 저장해주는 ModelCheckpoint가 있다.
from tensorflow.keras.callbacks import ModelCheckpoint
cp = ModelCheckpoint(filepath=CHECKPOINT_PATH, monitor='val_accuracy',
save_best_only = True, verbose = 1)
라이브러리 적용 후 ModelCheckpoint를 설정한다.
filepath : 저장할 경로, 위에서는 경로가 변수로 저장되어 있어 변수로 쓰였다.
monitor : 어떤걸 보고 저장할 것인가. 난 validation set의 accuracy를 보겠다.!
( loss 등. 따로 설정 가능하다.)
save_best_only=True : 가장 좋은 모델만 저장.
후에 설정된 ModelCheckpoint는 훈련시킬때 적용한다.
history = model.fit(trainGen.flow(X_train, y_train, batch_size=64),
steps_per_epoch = len(X_train) // 64,
validation_data = (X_val, y_val),
validation_steps = len(X_val) // 64,
callbacks = cp,
epochs = 50
)
## 위와 같이 모델을 훈련시킬때, callbacks = cp 를 하면 설정된 그대로 epoch진행시마다 val_accuracy를 기준으로 더 성능이 좋다면, 덮어가면서 지정된 폴더에 저장한다.
저장된 모델은 다시 불러내어 사용 가능하다.
'IT 프로그래밍 관련 > 딥러닝' 카테고리의 다른 글
learning_curve 함수 설정 (0) | 2021.03.04 |
---|---|
epoch마다 기록을 남기는 CSVLogger (0) | 2021.03.04 |
Fine Tuning 코드 진행 (0) | 2021.03.04 |
Transfer Learning을 위한 코드와 설명 (0) | 2021.03.04 |
CNN으로 이미지 파일 시험코드 (0) | 2021.03.03 |
댓글