개요

하나의 파이썬 파일로 코드를 작성해서 모델링을 하는 상황이 있다고 치자.

이때 한번 training을 할 때 대용량 데이터를 트레이닝 한 뒤 model을 save하지 않으면 다시 처음부터 트레이닝을 진행해야 한다.

이 때 프로그램 수행이 종료되기 전에 model 구성 및 weight에 대해 저장을 해놓으면 편리한데 이방법을 찾아 본 뒤 정리해둔다.

코드

패키지 로드

from keras.models import Sequential
from keras.layers import Dense
from keras.callbacks import ModelCheckpoint
import numpy
import pandas as pd

model save

model_json = model.to_json()
with open("model.json", "w") as json_file : 
    json_file.write(model_json)

model weight save

model.save_weights("model.h5")
print("Saved model to disk")

model load

from keras.models import model_from_json json_file = open("model.json", "r")
loaded_model_json = json_file.read() json_file.close()
loaded_model = model_from_json(loaded_model_json)

model weight load

loaded_model.load_weights("model.h5")
print("Loaded model from disk")

model load and evaluation

유의할 점은 model load 후 다시 compile을 해야 한다는 점이다.

loaded_model.compile(loss="binary_crossentropy", optimizer="rmsprop", metrics=['accuracy'])
score = loaded_model.evaluate(X,Y,verbose=0)

참고자료