Keras——模型的保存、读取及加载

本文详细介绍了如何使用Keras保存、读取和加载深度神经网络(DNN)模型,以解决IRIS数据集的多分类问题。通过HDF5文件系统保存的模型可以使用h5py库读取权重和偏置。此外,展示了如何通过自定义函数计算新数据的预测向量,验证了与原始模型预测的一致性。最后,演示了使用Keras的load_model()函数加载模型进行预测。
摘要由CSDN通过智能技术生成

本文将会介绍如何利用Keras来实现模型的保存、读取以及加载。

  本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络(DNN)模型,模型的结构示意图如下:

具体的模型参数可以参考文章:Keras入门(一)搭建深度神经网络(DNN)解决多分类问题

模型保存

  Keras使用HDF5文件系统来保存模型。模型保存的方法很容易,只需要使用save()方法即可。
  以Keras入门(一)搭建深度神经网络(DNN)解决多分类问题中的DNN模型为例,整个模型的变量为model,我们设置模型共训练10次,在原先的代码中加入Python代码即可保存模型:

    # save model
    print("Saving model to disk \n")
    mp = "E://logs/iris_model.h5"
    model.save(mp)

保存的模型文件(iris_model.h5)如下:

模型读取

  保存后的iris_model.h5以HDF5文件系统的形式储存,在我们使用Python读取h5文件里面的数据之前,我们先用HDF5的可视化工具HDFView来查看里面的数据:

  我们感兴趣的是这个模型中的各个神经层之间的连接权重及偏重,也就是上图中的红色部分,model_weights里面包含了各个神经层之间的连接权重及偏重,分别位于dense_1,dense_2,dense_3中。蓝色部分为dense_3/dense_3/kernel:0的数据,即最后输出层的连接权重矩阵。
  有了对模型参数的直观认识,我们要做的下一步工作就是读取各个神经层之间的连接权重及偏重。我们使用Python的h5py这个模块来这个iris_model.h5这个文件。关于h5py的快速入门指南,可以参考文章:h5py快速入门指南
  使用以下Python代码可以读取各个神经层之间的连接权重及偏重数据:

import h5py

# 模型地址
MODEL_PATH = ‘E://logs/iris_model.h5’

# 获取每一层的连接权重及偏重
print(“读取模型中…”)
with h5py.File(MODEL_PATH, ‘r’) as f:
dense_1 = f[’/model_weights/dense_1/dense_1’]
dense_1_bias = dense_1[‘bias:0’][:]
dense_1_kernel = dense_1[‘kernel:0’][:]

dense_2 <span class="token operator">&#61;</span> f<span class="token punctuation">[</span><span class="token string">&#39;/model_weights/dense_2/dense_2&#39;</span><span class="token punctuation">]</span>
dense_2_bias <span class="token operator">&#61;</span> dense_2<span class="token punctuation">[</span><span class="token string">&#39;bias:0&#39;</span><span class="token punctuation">]</span><span class="token punctuation">[</span><span class="token punctuation">:</span><span class="token punctuation">]</span>
dense_2_kernel <span class="token operator">&#61;</span> dense_2<span class="token punctuation">[</span><span class="token string">&#39;kernel:0&#39;</span><span class="token punctuation">]</span&
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

a useful man

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值