keras中的模型保存和加载
tensorflow中的模型常常是protobuf格式,这种格式既可以是二进制也可以是文本。keras模型保存和加载与tensorflow不同,keras中的模型保存和加载往往是保存成hdf5格式。
keras的模型保存分为多种情况。
一、不保存模型只显示大概结构
model.summary()
这个函数会打印模型结构,但是仅仅是打印到控制台。keras.utils.plot_model()
使用graphviz中的dot.exe生成网络结构拓扑图
二、保存模型结构
keras.models.Model对象的to_json,to_yaml
只保存模型结构,加载时使用keras.models.model_from_json(),keras.models.model_from_yaml()keras.model.get_config()返回文本形式的配置
使用keras.model.model_from_config可以加载模型。
三、保存全部结构
keras.core.saving.py这个文件十分重要,keras的模型保存、加载都需要这个文件。
但是不建议直接使用这个文件,因为keras中的Model对象和models模块会调用这个文件。
keras.core包下的内容一般供内部使用,不暴露给使用者。
Model对象提供了save()和save_wights()两个方法。save()方法保存了三种东西:
- 模型结构
- 模型参数
- 优化器参数
其中优化器参数是给优化器用的,用于继续训练模型。有些优化器比如AdamOptimizer需要根据训练步数来调整不同参数的学习速率,这样在分阶段训练模型时才能够保证正确。save()函数保存结果就是一个hdf5文件,不像tensorflow一下子保存好多种文件。tensorflow把模型结构和权重分开保存,目的是多个权重文件可以共用一个模型结构文件,但是模型结构文件通常非常小,所占空间远远小于参数所占空间。
Model对象的save_weights()方法只保存了模型参数而没有保存模型结构,它的保存格式也是hdf5。它保存的数据不能用于继续训练模型。
Model实例的save()方法有一个等价方式:使用models.save_model()。
对于使用save()方法保存的文件,可以使用models.load_model()进行加载,此函数直接返回一个Model对象。因为save()方法保存了模型的全部内容,所以可以直接“无中生有”创造一个模型。
对于使用save_weights()方法保存的文件,只能通过Model对象提供的load_weights()方法加载模型权重。 并且,在加载模型权重之前,必须把网络结构定义好,并且模型的各个层的名称必须与保存模型权重时的各个层保持一致。
转载于:https://www.cnblogs.com/weiyinfu/p/9788179.html
keras中的模型保存和加载相关推荐
- Tensorflow 2.x(keras)源码详解之第十章:keras中的模型保存与加载(详解Checkpointmd5模型序列化)
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...
- TensorFlow模型保存和加载方法
TensorFlow模型保存和加载方法 模型保存 import tensorflow as tfw1 = tf.Variable(tf.constant(2.0, shape=[1]), name=& ...
- pytorch模型保存和加载
定义2个测试脚本test.py和test2.py,用于测试保存和加载,models文件夹保存模型,整个测试的项目文件结构如下: E:. │ test.py │ test2.py └─ modelsdo ...
- keras模型保存和加载
(一)保存和加载整个模型 包含模型的结构.权重.训练配置项(损失函数.优化器).优化器状态,允许准确地从上次结束的地方开始训练. 1.训练完模型后 path='.../.../xxx.h5' mo ...
- 【NLP】from glove import Glove的使用、模型保存和加载
1 引言 不要被stackflow的上的一个的回答所误导. 2 使用方法举例 # 语料 sentense = [['你', '是', '谁'], ['我', '是', '中国人']] corpus_m ...
- paddlepaddle模型的保存和加载
导读 深度学习中模型的计算图可以被分为两种,静态图和动态图,这两种模型的计算图各有优劣. 静态图需要我们先定义好网络的结构,然后再进行计算,所以静态图的计算速度快,但是debug比较的困难,因为只有当 ...
- unity保存加载慢_掌握Unity 5中的保存和加载功能
unity保存加载慢 Thanks to Vincent Quarles for kindly helping to peer review this article. 感谢Vincent Quarl ...
- Keras中保存和加载权重及模型结构
微信公众号 1. 保存和加载模型结构 (1)保存为JSON字串 json_string = model.to_json() (2)从JSON字串重构模型 from keras.models impor ...
- tf.keras 05: 使用Keras保存和加载不同格式的模型
本文是 tf.keras 系列文章的第五篇.通过手写数字识别数据集介绍了 Keras 模型训练中的 检查点(checkpoint) 文件,.weights 文件,.pb 文件以及 .h5 文件等四种格 ...
最新文章
- 各种光学仪器成像技术(上)
- JVM内存溢出的几种情形
- CSS基础学习-7.CSS元素分类
- SpringBoot中在普通类里面加载Spring容器中的类
- 自编码器及其相关模型
- 大话设计模式—组合模式
- Python2.6 Cx_Oracle Linux下编译安装
- idea 错误: 找不到或无法加载主类(汇总贴)
- android profiler 简书,(四)Android 性能优化 Energy Profiler
- 【实用工具】eclipse mac安装
- 实战matlab之文件与数据接口技术,实战MATLAB之文件与数据接口技术
- SpringBoot+zk+dubbo架构实践(四):sb+zk+dubbo框架搭建(内附源码GitHub地址)
- 有了linux基础还学习学哪些,学linux的前途和好处有哪些
- Linux命令九---Linux进程管理命令---ps-kill-nohup-jobs-fg-bg-top等
- Chm 文件资源编辑软件
- 微信公众号之简单使用
- nanopore测序技术专题(四):纳米孔测序原理
- oracle modeler 使用,Navicat Data Modeler使用教程八:图表版面下
- 百度飞桨“万有引力”2022首站落地苏州,全面启动中小企业赋能计划
- NEXYS4_DDR迪芝伦XC7A100TCSG324-1型,VGA接口显示彩条