IT 지식 창고
(Keras) model, weight 저장 및 불러오기
casim
2020. 10. 20. 18:51
keras에서 model과 weight를 저장 및 불러오는 방법은 여러가지가 있습니다.
1. model만 저장 및 불러오기 (json or yaml)
2. weights만 저장 및 불러오기(h5df)
3. 둘다 저장 및 불러오기(h5df)
각각의 방법들은 독립적이라고 생각하면 됩니다. 즉, 각 방법에 대한 keras 함수들이 정해져 있다고 보시면 됩니다.
1. model만 저장 및 불러오기
- json으로 model 저장
# keras.models를 통해 만들어진 Sequential이나 Model
model_json = model.to_json()
with open("model.json", "w") as json_file :
json_file.write(model_json)
- json으로 model 불러오기
# json으로 만든 model은 따로 함수를 또 import를 해야함
from keras.models import model_from_json
json_file = open("model.json", "r")
loaded_model = json_file.read()
json_file.close()
model = model_from_json(loaded_model)
2. weights만 저장 및 불러오기
- weights 저장
# keras.models를 통해 만들어진 Sequential이나 Model
model.save_weights('model_weights.h5')
- weights 불러오기
model.load_weights('model_weights.h5')
3. model과 weights 동시에 저장 및 불러오기
- model과 weight를 h5형태로 저장
# keras.models를 통해 만들어진 Sequential이나 Model
model.save('model.h5')
- 불러오기
# keras.models를 통해 만들어진 Sequential이나 Model
model.load_model('model.h5')
다시 말하지만, 3가지 방법은 독립적이며 각 파일 또한 독립적으로 다뤄야합니다.
model.save를 통해 만들어진 h5와 weights만 저장된 h5는 엄연히 다른 데이터가 들어가 있기 때문에 서로 호환해서 사용할 수는 없습니다.
헷갈려서 에러가 발생 할 수 있으니, 3가지 방법은 독립적으로 생각하시는 게 좋습니다.