1.模型结构和权重分离
from keras import Sequential
model = Sequential()
...
#模型结构保存为JSON字串
model_json = model.to_json()
#模型结构从JSON字串中读取
from keras.models import model_from_json
model = model_from_json(model_json)
#模型权重保存为h5文件
model.save_weights('weights.h5')
#模型权重从h5文件中读取
model.load_weights('weights.h5', by_name=False)
by_name=True可以加载权重到不同的网络结构
2.模型结构和权重保存到一个h5文件
#保存
model.save('model.h5')
#加载
from keras.models import load_model
model = load_model('model.h5')
3.模型加载异常
3.1 flask中load_model加载模型报错AttributeError: ‘_thread._local’ object has no attribute ‘value’
可能是由于keras和tensorflow版本不协调导致的
a.更换keras适应tensorflow的版本,或者更换tensorflow适应keras的版本。
b.从tensorflow导入keras
from tensorflow.keras.models import load_model