基于keras模型,结构,权重保存的实现

  

如何将训练好的网络进行保存,我们可以用泡菜或cPickle来保存Keras模型,同时我们可以用下面的方法:

  

<强>一、保存整个模型

  

model.save (filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:

  

模型的结构

  

模型的权重

  

训练配置(损失函数,优化器、准确率等)

  

优化器的状态,以便于从上次训练中断的地方

  

前提是已经安装python的h6py包。

        从keras。模型导入load_model      

当我们再一次使用时可以model.load_model (filepath)载入模型

  

<强>二、保存模型的结构

  

model.to_jason()将模型序列化保存为json文件,里面记录了网络的整体结构,各个层的参数设置等信息。将json字符串保存到文件。

        打开(' filename.json ', ' w ') .write (json_string)   从keras。模型导入model_form_json   json_string=开放(filename.json) .read ()      

  

  

<强>三、保存模型权重

  

model.save_weights ()   

我们经过调参后网络的输出精度比较满意后,可以将训练好的网络权重参数保存下来。可通过下面的代码利用HDF5进行保存

        model.save_weights (model_weights.h6)      

使用的时加载模型:

        model.load_weights (model_weights.h6)      

如果你需要加载权重到不同的网络结构(有些层一样)中,例如微调或transfer-learning,你可以通过层名字来加载模型:

        model.load_weights (“my_model_weights。编辑”,途径=True)      

因此我们建模时最好给每个层定义名字

  

以上就是我们保存模型的三种方法,需要我们在实践时多总结。

  

这篇基于keras模型,结构,权重保存的实现就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

基于keras模型,结构,权重保存的实现