keras 模型、结构、权重的保存
2018-01-25 16:43
519 查看
如何将训练好的网络进行保存,我们可以用pickle或cPickle来保存Keras模型,同时我们可以用下面的方法:
一、保存整个模型
模型的结构
模型的权重
训练配置(损失函数,优化器,准确率等)
优化器的状态,以便于从上次训练中断的地方
前提是已经安装python的h5py包.
from keras.models import load_model
当我们再一次使用时可以model.load_model(filepath)载入模型
二、保存模型的结构
model.to_jason()将模型序列化保存为json文件,里面记录了网络的整体结构, 各个层的参数设置等信息. 将json字符串保存到文件.
open(‘filename.json','w').write(json_string)
from keras.models import model_form_json
json_string=open('filename.json').read()
model=model_from_json(json_string)
除了json格式,还可以保存为yaml格式的字符串,形式与JSON一样
三、保存模型权重
model.save_weights()
我们经过调参后网络的输出精度比较满意后,可以将训练好的网络权重参数保存下 来.可通过下面的代码利用HDF5进行保存
model.save_weights(‘model_weights.h5’)
使用的时加载模型:
model.load_weights(‘model_weights.h5’)
如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:
因此我们建模时最好给每个层定义名字
以上就是我们保存模型的三种方法,需要我们在实践时多总结。
一、保存整个模型
model.save(filepath)将Keras模型和权重保存在一个HDF5文件中,该文件将包含:
模型的结构
模型的权重
训练配置(损失函数,优化器,准确率等)
优化器的状态,以便于从上次训练中断的地方
前提是已经安装python的h5py包.
from keras.models import load_model
当我们再一次使用时可以model.load_model(filepath)载入模型
二、保存模型的结构
model.to_jason()将模型序列化保存为json文件,里面记录了网络的整体结构, 各个层的参数设置等信息. 将json字符串保存到文件.
open(‘filename.json','w').write(json_string)
from keras.models import model_form_json
json_string=open('filename.json').read()
model=model_from_json(json_string)
除了json格式,还可以保存为yaml格式的字符串,形式与JSON一样
三、保存模型权重
model.save_weights()
我们经过调参后网络的输出精度比较满意后,可以将训练好的网络权重参数保存下 来.可通过下面的代码利用HDF5进行保存
model.save_weights(‘model_weights.h5’)
使用的时加载模型:
model.load_weights(‘model_weights.h5’)
如果你需要加载权重到不同的网络结构(有些层一样)中,例如fine-tune或transfer-learning,你可以通过层名字来加载模型:
model.load_weights('my_model_weights.h5', by_name=True)
因此我们建模时最好给每个层定义名字
以上就是我们保存模型的三种方法,需要我们在实践时多总结。
相关文章推荐
- keras 模型保存,载入
- Keras框架训练模型保存及再载入
- keras中如何保存model的数据,以及如何重构模型进行数据预测
- 用图片存储和显示keras模型的结构
- keras系列︱Sequential与Model模型、keras基本结构功能(一)
- keras中的模型保存和加载
- keras加载保存模型相关函数
- keras上手系列之: 模型的保存
- 如何保存Keras模型?
- keras系列︱Sequential与Model模型、keras基本结构功能(一)
- 如何保存keras模型
- Keras模型的加载和保存、预训练、按层名匹配参数
- keras 保存模型
- tensorflow模型参数与结构的保存-----二
- 如何保存Keras模型?
- 保存Keras训练的模型
- tensorflow中保存模型、加载模型做预测(不需要再定义网络结构)
- Keras中实现mnist神经网络训练与模型保存(采用LeNet-5模型)
- graphviz 安装包 keras绘制模型结构
- 保存及读取keras模型参数