📝epoch 마다 가장 좋은 모델을 자동으로 저장하는 ModelCheckPoint / 기록을 저장하는 CSVLogger
우선 모델과 로그를 저장할 디렉토리를 만든다
# 파이썬 코드로 디렉토리 만들기
# PROJECT_PATH 변수에는 내 드라이브 파일경로를 저장해두었다
if not os.path.exists(PROJECT_PATH + '/checkpoints/' + model_type + '/') :
os.makedirs(PROJECT_PATH + '/checkpoints/' + model_type + '/')
if not os.path.exists(PROJECT_PATH + '/log/' + model_type + '/') :
os.makedirs(PROJECT_PATH + '/log/' + model_type + '/')
CHECKPOINT_PATH 경로에 val_accuracy의 성능이 가장 좋은 모델을 저장하라는 코드 작성
(verbose= 1 디버깅용이다 화면에 찍어달라는 것)
from keras.callbacks import ModelCheckpoint
mcp = ModelCheckpoint(CHECKPOINT_PATH, monitor= 'val_accuracy', save_best_only= True, verbose= 1)
에포크가 끝날때마다 현재는 화면에 표시하는데 이 정보를 파일로 저장해서 화면을 안보더라도 나중에 파일 열어서 확인이 가능하도록 LOGFILE_PATH 경로에 log를 남기는 코드를 작성
from keras.callbacks import CSVLogger
csv_logger = CSVLogger(LOGFILE_PATH, append= True)
학습시킬때 callbacks= 에 위에서 만든 코드를 저장한 변수 [mcp, csv_logger]를 입력해준다
epoch_history = model.fit( train_generator, epochs= 40, validation_data=(X_val, y_val), batch_size= 64, callbacks= [mcp, csv_logger] )
학습시키면 val_accuracy의 성능이 가장 좋은 모델이 내 구글 드라이브에 저장된다
구글 드라이브에 저장된 가장 좋은 모델을 불러와서 테스트까지 해보겠다
# 모델이 들어 있는 경로를 변수에 저장했다 (CHECKPOINT_PATH)
best_model = tf.keras.models.load_model(CHECKPOINT_PATH)
best_model.evaluate(X_test, y_test)
'인공지능 > Deep Learning' 카테고리의 다른 글
[Deep Learning] Transfer Learning Fine tuning (0) | 2023.01.02 |
---|---|
[Deep Learning] 사진 분류하는 딥러닝 Transfer Learning으로 해보기 (MobileNetV2 활용) (0) | 2023.01.02 |
[Deep Learning] 원본 파일을 train / test 파일로 분리하기 (0) | 2023.01.02 |
[Deep Learning] CNN 개와 고양이 사진을 분류하는 딥러닝 해보기 (0) | 2023.01.02 |
[Deep Learning] CNN TensorFlow 이미지 분류하는 딥러닝 해보기 (0) | 2022.12.30 |
댓글