keras 模型、结构、权重的保存

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

一、保存整个模型

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)

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

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

--------------------- 
作者:AI东海 
来源:CSDN 
原文:https://blog.csdn.net/gdh756462786/article/details/79163278 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值