모델 저장하고 불러오기

syEON·2023년 9월 18일
0

Model Save & Load

1. fit() 할 때 저장하기

from tensorflow.keras.callbacks import ModelCheckpoint
mcp = ModelCheckpoint(filepath='/content/model1.h5',   # 모델 저장 경로
                      monitor='val_loss',              # 모델 저장의 관심 대상
                      verbose=1,                       # 어느 시점에서 저장되는지 알려줌
                      save_best_only=True,             # 최고 성능 모델만 저장
                      save_weights_only=False)         # True : 가중치만 저장 | False : 모델 구조 포함하여 저장
                      
                      history = model1.fit(flow_trainIDG, epochs=10000, verbose=1,
                     validation_data=flow_valIDG,
                     callbacks=[es, mcp]
                     )

2. 학습 종료 후 저장하기

model1.save('my_first_save.h5')
clear_session()
model = keras.models.load_model('my_first_save.h5')
model.summary()

joblib 라이브러리 사용, 범용성 높다

import joblib
joblib.dump( model1, 'model.pkl')  # 저장 
model = joblib.load('model.pkl')   # 불러오기

3. keras

# 저장
model.save("my_model.keras")  #압축파일로 저장
#model.save('my_model') #일반폴더로 저장 
# 로딩
mymodel = tf.keras.models.load_model("my_model.keras")
# 모델을 이용합니다.
mymodel.predict(독립[:5])

결과

1번과 2번 서로 다른 방식에서 저장한 모델은 동일하다!
model.get_weights로 각각 가중치 값을 확인해 보면 알수 있다.

0개의 댓글