一、模型的保存(结构 + 权重 + 优化器状态)

1、model.save('model.h5')#保存名为model的h5文件到程序所在目录

你可以使用 model.save(filepath) 将 Keras 模型保存到单个 HDF5 文件中,该文件将包含:

  • 模型的结构,允许重新创建模型
  • 模型的权重
  • 训练配置项(损失函数,优化器)
  • 优化器状态,允许准确地从你上次结束的地方继续训练。

2、如果只需要保存模型的结构,而非其权重或训练配置项,则可以执行以下操作:

# 保存为 JSON
json_string = model.to_json()# 保存为 YAML
yaml_string = model.to_yaml()

你可以从这些数据建立一个新的模型:

# 从 JSON 重建模型:
from keras.models import model_from_json
model = model_from_json(json_string)# 从 YAML 重建模型:
from keras.models import model_from_yaml
model = model_from_yaml(yaml_string)

3、只保存/加载模型的权重

如果您只需要 模型的权重,可以使用下面的代码以 HDF5 格式进行保存。

请注意,我们首先需要安装 HDF5 和 Python 库 h5py,它们不包含在 Keras 中。

model.save_weights('my_model_weights.h5')

假设你有用于实例化模型的代码,则可以将保存的权重加载到具有相同结构的模型中:

model.load_weights('my_model_weights.h5')

如果你需要将权重加载到不同的结构(有一些共同层)的模型中,例如微调或迁移学习,则可以按层的名字来加载权重:

model.load_weights('my_model_weights.h5', by_name=True)

例子:

"""
假设原始模型如下所示:model = Sequential()model.add(Dense(2, input_dim=3, name='dense_1'))model.add(Dense(3, name='dense_2'))...model.save_weights(fname)
"""# 新模型
model = Sequential()
model.add(Dense(2, input_dim=3, name='dense_1'))  # 将被加载
model.add(Dense(10, name='new_dense'))  # 将不被加载# 从第一个模型加载权重;只会影响第一层,dense_1
model.load_weights(fname, by_name=True)

二、模型的加载

from keras.models import load_model
    model = load_model('model.h5')#载入程序所在目录下名为model的h5模型框架参数

三、模型使用(图像分类模型)

1、model.predict()

当使用predict()方法进行预测时,返回值是数值,表示样本属于每一个类别的概率,我们可以使用numpy.argmax()方法找到样本以最大概率所属的类别作为样本的预测标签。

numpy.argmax(a)返回数组a中最大值所在的位置

# 对图像进行分类
preds = model.predict(x)
print(pred)
#输出[[2.69979779e-07 1.50991557e-03 9.40957308e-01 1.53805502e-095.74169382e-02 2.00743049e-08 5.82429775e-13 1.47752353e-086.25503671e-05 5.33912718e-08 4.72215740e-18 2.97202235e-168.11012334e-19 7.12863546e-10 1.55264762e-17 5.29809076e-057.24748874e-13 2.17059953e-23 6.66066933e-14 2.31473064e-143.67295783e-22 1.20753088e-08 1.15534161e-15 1.17659593e-171.29246865e-11 4.85833094e-14 8.04590889e-18 3.75492511e-162.33098371e-12 1.86269444e-09 6.25299688e-20 8.06493845e-163.69524827e-10 2.54514406e-15 6.45201473e-17 2.72551604e-143.49192212e-15 1.93733091e-21 1.64267204e-16 1.12610542e-151.17868511e-13 6.89566958e-18 1.75072841e-19]]

2、 predict_classes()方法

当使用predict_classes()方法进行预测时,返回的是类别的索引,即该样本所属的类别标签。

model.predict_classes(image)

输出:array([2], dtype=int64),图像所在的种类。

Keras模型的保存与调用相关推荐

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

    本文将会介绍如何利用Keras来实现模型的保存.读取以及加载.   本文使用的模型为解决IRIS数据集的多分类问题而设计的深度神经网络(DNN)模型,模型的结构示意图如下: 具体的模型参数可以参考文章 ...

  2. 【机器学习——决策树】——两种方法实现,含模型的保存和调用

    目录 1.ID3算法 2.使用sklearn API--模型保存和调用成功 1.ID3算法 以下实现了决策树的创建.可视化绘制.决策树的保存和调用 但是在利用决策树进行预测的时候出现错误 分类代码 # ...

  3. [转载] 机器学习模型的保存和调用

    参考链接: Python保存机器学习模型 1.使用python自带的pickle from sklearn.ensemble import RandomForestClassifier from sk ...

  4. Keras中的各种Callback函数示例(含Checkpoint模型的保存、读取示例)-----记录

    本文整理了绝大多数keras里的Callback回调)函数,并且收集了代码调用示例. 大多数内容整理自网络,参考资料已在文章最后给出. 回调函数Callbacks 回调函数是一组在训练的特定阶段被调用 ...

  5. 【TensorFlow-windows】keras接口——卷积手写数字识别,模型保存和调用

    前言 上一节学习了以TensorFlow为底端的keras接口最简单的使用,这里就继续学习怎么写卷积分类模型和各种保存方法(仅保存权重.权重和网络结构同时保存) 国际惯例,参考博客: 官方教程 [注] ...

  6. keras模型保存和加载

    (一)保存和加载整个模型 ​ 包含模型的结构.权重.训练配置项(损失函数.优化器).优化器状态,允许准确地从上次结束的地方开始训练. 1.训练完模型后 path='.../.../xxx.h5' mo ...

  7. Sklearn,TensorFlow,keras模型保存与读取

    一.sklearn模型保存与读取  1.保存 1 from sklearn.externals import joblib 2 from sklearn import svm 3 X = [[0, 0 ...

  8. keras保存模型_onnx+tensorrt部署keras模型

    由于项目需要,最近捣鼓了一波如何让用tensorrt部署训练好的模型来达到更快的推理速度,期间花费了大量的时间在知乎和各种网页上去搜索别人的方案,但始终没有找到我想要的条理相对清晰的记录贴(也许只是我 ...

  9. keras从入门到放弃(十四)模型的保存

    今天来探讨模型的保存 Keras使用HDF5文件系统来保存模型.模型保存的方法很容易,只需要使用save()方法即可. 上次训练好了手写数字识别数据集,今天学会如何保存数据集 保存/加载整个模型 Ke ...

最新文章

  1. Js面试题(一)--js实现数组去重怎么实现?
  2. vs-halcon-大恒相机配置
  3. 【BZOJ-2427】软件安装 Tarjan + 树形01背包
  4. nginx反向代理tomcat提示failed (13: Permission denied) while connecting to upstream
  5. android:persistent (非系统app失效)
  6. python如何导入numpy简书_如何使用python3.x成功导入numpy?
  7. python迭代器是什么意思_理解Python的迭代器
  8. mac怎么查看gitlab的注册邮箱_单位企业邮箱是什么?公司邮箱怎么申请注册?
  9. 百度文库文字下载(python原码)
  10. 低层次数论书籍大杂烩
  11. JS图片压缩+图片上传前检测类型、大小、尺寸
  12. linux驱动管道,Xilinx Linux 如何理解V4L2的管道驱动程序
  13. 人的一生需要经历很多的磨难和痛苦
  14. ddr布线 pads_[转载]Pads Router布线技巧,等长,蛇线,差分
  15. C0216:输入矩形的长和宽,输出周长和面积
  16. 英语学习单词篇(12)
  17. 微软、滴滴、360等前端大厂面试题
  18. 第3章 你应该如何运行程序 (可选,Shell、IDE介绍,推荐看一下)
  19. KIDS采购销售管理系统
  20. Java——ArrayList(动态数组)介绍

热门文章

  1. opera mini android apk,Download Opera Mini APK Android
  2. 关于ALEXA排名:流量越大越可靠
  3. c语言飞机票实验报告格式,c语言航班信息查询系统实验报告
  4. 墨言教育摄影技能干货分享|优秀作品评析,想学摄影的看这里
  5. C/C++——vector的基本操作总结
  6. 专利申请中的期限及期限的延长
  7. html中头向下的箭头怎么打出来,向下的箭头怎么打,最简单实用的电脑知识
  8. 仿牛客网项目第二章:开发社区登录模块(详细步骤和思路)
  9. 支付项目:5、通用型支付系统(1)
  10. 新用户注册之验证码短信、语音解决方案