保存keras的model文件和载入keras文件的方法有很多。
keras中的模型主要包括model和weight两个部分。
保存模型结构
保存model部分的主要方法:一是通过json文件,二是通过Yaml文件
Json文件
# serialize model to JSON
model_json = model.to_json()
with open("model.json", "w") as json_file:
json_file.write(model_json)
Yaml文件
# save as YAML
yaml_string = model.to_yaml()
保存模型权重
保存权重的方法:通过保存权重(系数)
HDF5文件
# serialize weights to HDF5
model.save_weights("model.h5")
print("Saved model to disk")
同时保存model和权重的方式:
from keras.models import load_model
model.save('model_weight.h5') # creates a HDF5 file 'my_model.h5'
载入model的方法
json&hdf5
# load json and create model
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
from keras.models import load_model
model = load_model('model.h5')
载入权重
# load weights into new model
loaded_model.load_weights("model.h5")
print("Loaded model from disk")
载入某一层权重
如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:
model.load_weights('my_model_weights.h5', by_name=True)