모델 인스턴스 저장 후 불러오기 (.pkl)
from sklearn.externals import joblib
# 저장
joblib.dump(model, 'model.pkl', compress=True)
# 불러오기
model_loaded = joblib.load('model.pkl')
모델 인스턴스 저장(.h5)
from tensorflow.keras import models
model.save('trained_model.h5') # model save
model.save_weights('trained_model.h5') # weights만 따로 저장
저장한 모델 불러오기
from tensorflow import models
model = models.load_model('trained_model.h5') # load model
model.load_weights('trained_model.h5') # weights load
모델이 학습 시작된 이후에는 학습 완료 전까지 사람이 컨트롤할 수 없음
이를 해결하기 위해 Keras의 콜백함수를 이용하여 학습 중 모델 중간 저장 가능
tf.keras.callbacks.ModelCheckpoint() 학습 중간 저장
tf.keras.callbacks.ModelCheckpoint(
filepath, # 모델 저장 경로
monitor = 'val_loss', # 'loss', 'val_loss', 'accuracy' ...
verbose = 0, # 불필요한 로그 삭제
save_best_only = False,
# True(보통 true로 사용) monitor 중인 지표 기준 가장 좋은 모델 저장 / False: 하단 save_freq 기준 주기적 저장
save_weights_only = False, # True == model.save_weights(filepath) / False == model.save(filepath)
mode = 'auto', # 'auto', 'min', 'max'
save_freq = 'epoch', # 'epoch' 또는 batch size(int)
save_freq = 5 * batch_size # 5epoch마다 model weight 저장 ('batch_size' 정의되어 있어야함)
)
tf.keras.callbacks.EarlyStopping() 학습 조기 종료
tf.keras.callbacks.ReduceLROnPlateau() 학습율 자동 조절
체크포인트 저장
# 경로에 포함된 폴더가 있어야함
# 예)
import os
path='path'
os.mkdir(path)
checkpoint_path = 'saved_models/titanic_4-layer_elu.h5'
# 가장 낮은 validation loss의 모델 저장
# ModelCheckpoint 콜백함수 객체 생성
callback_checkpoint = tf.keras.callbacks.ModelCheckpoint(filepath=checkpoint_path,
monitor='val_loss',
save_best_only=True,
verbose=0)
# 콜백함수 호출하여 모델 학습 진행
history = model.fit(train_data, train_label,
batch_size=100, epochs=100, validation_split=0.3, verbose=0,
callbacks=[callback_checkpoint]) # callback
(모델 성능은 마지막 학습 완료한 시점을 기준으로 결정됨)
체크포인트로 저장된 모델 불러오기
model = models.load_model('saved_models/titanic_4-layer_elu.h5')
[K-DIGITAL] 이미지 데이터 처리를 위한 CNN (0) | 2021.08.01 |
---|---|
[K-DIGITAL] 세미프로젝트3. 딥러닝을 활용한 주차 수요 예측 (0) | 2021.07.26 |
[K-DIGITAL] 딥러닝 Tensorflow2.x 실습 - MNIST (0) | 2021.07.16 |
[K-DIGITAL] 딥러닝 Tensorflow1.x 실습 - MNIST (0) | 2021.07.15 |
[K-DIGITAL] 딥러닝 모델 최적화 이론 (0) | 2021.07.14 |
댓글 영역