keras模型保存
*************************************原文 https://www.cnblogs.com/Mrzhang3389/p/10746300.html **************************************
1 模型保存的方法之一 keras.callbacks.ModelCheckpoint方法
ModelCheckpoint(filepath,monitor,verbose,save_best_only,save_weights_only,mode,period)
参数说明
filepath:字符串
monitor 被监测的数据
verbose 详细信息模式 0或者1
save_best_only 如果True,被监测数据的最佳模型就不会被覆盖
mode auto max min 如果save_best_only则是这个字段来决定覆盖已经保存的,max是观察有没有更大的值 例如val_acc ,min则是观察有没有更小的值 例如val_loss loss
save_weights_only 如果Ture那么权重会被保存,False则整个模型被保存
period 每个检查点之间的间隔(训练轮数)
例子
checkpoint=keras.callbacks.ModelCheckpoint(filepath,moinitor,verbose,save_best_only,save_weights_only,mode,period)
model.fit(x_train,y_train,callbacks=[checkpoint])
2 model.save()-----保存模型 load_model-----加载模型
model_save_path="model_file_path.h5"
model.save(model_save_path)
#删除模型
del model
加载模型
from keras.models import load_model
model=load_model(model_save_path)
但是如果预测,需要重新定义网路结构,然后在加载权重model.load_weights(),加载的权重是从save_weights方法中生成的权重文件
3 model.save_weights()-----保存 load_weights()----加载
model_save_path="model_file_path.h5"
model.save_weights(model_save_path)
model.load_weights(model_save_path)
但是如果预测,需要加载权重,加载的权重是从save_weights方法中生成的权重文件
4 model.to_json()---保存 model_from_json-----加载
保存模型网络结构
json_string=model.to_json()
with open("moel_save_filepath.json","w") as f:
f.write(json_string) 将模型转化为json文件后的字符串写入本地json文件
读取模型网络结构
from keras.models import model_from_json
with open("model_save_file.json","")as f:
json_string=f.read()
model=model_from_string(json_string)
但是如果预测,需要加载权重,加载的权重是从save_weights方法中生成的权重文件
5 model.to_yaml()----保存 model_from_yaml---加载
yaml_string=model.to_yaml()
with open("model_save_file.yaml",“r”) as f:
yaml_string=f.read()
model=model_from_yaml(yaml_string)
但是如果预测,需要加载权重,加载的权重是从save_weights方法中生成的权重文件
6


浙公网安备 33010602011771号