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

  

 

posted @ 2021-08-21 02:39  大大的海棠湾  阅读(562)  评论(0)    收藏  举报