TensorFlow之模型保存与加载

news2025/2/28 5:15:02

模型在训练过程中或者在训练之后,模型的执行过程能被保存,也就是,模型能从暂停中恢复以免训练的时间过长。因此,被保存的模型可以被共享,其他人可以重新构建相同的模型。被保存的模型以如下的两种方式进行共享:

  •  创建模型的代码

  • 被训练模型的权重或者参数

安装类库

如上所示,安装保存模型的类库、工具集,并导入其支持的函数,其中,以HDF5的文件格式保存模型。

加载数据样本

如上所示,加载mnist训练数据集,该数据集是流行服饰的图片数据集,其中,train_images是训练的图片数据集,train_labels是训练的标签数据集,分别使用mnist数据集的前1000条记录。

定义模型

如上所示,定义创建序列模型的函数、创建模型,其中,该模型仅定义一个全连接层、每层512个单元、使用删除正则化机制、使用Adam优化器优化模型。

保存检查点

检查点是用于保证训练过程的可用性,当训练过程被中断,设置检查点可以保存中断之前的训练数据,例如,保存了训练过程的权重或者参数,用户可以从检查点中恢复训练。Keras技术框架提供tf.keras.callbacks.ModelCheckpoint工具类用于保存训练过程的检查点,用户使用检查点可以持续地保存训练过程或者训练结束的训练数据。

检查点回调(callback)

如上所示,以回调的方式创建了一个模型的检查点,其中,checkpoint_path是保存检查点对应的文件路径,cp_callback是创建一个检查点函数,callbacks=[cp_callback]是为模型设置了训练过程中回调检查点函数、持续地保存训练过程中的检查点,该函数是在每次训练迭代结束的时候被回调,训练多次迭代则多次回调。

如上所示,显示训练结束之后,检查点保存路径下的文件信息。

如上所示,先创建一个模型model,在训练之前对模型执行测试评估,显示其准确度只有7%,使用模型的load_weights函数加载之前训练的检查点,创建一个权重都相同的模型,然后执行测试评估,显示其准确度达到86.60%(重用已训练完成的模型,包括权重)。

检查点选项设置

如上所示,用户可以根据实际情况设置检查点的参数选项,例如,checkpoint_path可以设置每次训练迭代保存的检查点的名称,save_freq设置检查点保存的频率,每多少次训练迭代保存一次检查点,日志显示每5次训练迭代记录一次检查点。

如上所示,显示模型检查点保存的文件列表,以及显示最后一个检查点。

如上所示,使用load_weights函数加载模型的最后一次训练的检查点,其包括该次检查点的权重,然后,执行模型的测试评估,其准确度达到87.30%。

检查点文件属性

检查点文件是二进制格式的字节文件,其中保存了训练过程中学习到的权重信息,其描述如下所示:

  • 一个或者多个分片,每个分片都包含了模型训练所得的权重信息

  • 一个索引文件,对以上的分片文件进行索引

在单节点的机器中训练模型,则生成的其中一个分片的检查点文件的后缀是.data-00000-of-00001。

手动保存权重

如上所示,使用模型的save_weights保存模型的权重,load_weights函数是加载已保存的权重,然后,使用测试数据集对模型执行测试评估,其准确度达到87.30%。

保存完整模型

使用keras技术框架的tf.keras.Model.save函数可以保存完整的模型,该保存方式包括模型的架构、模型权重、模型训练的设置,该保存方式可以让用户直接重用已保存的模型,而不用修改模型的代码,也就是,由于优化器的状态能被恢复,用户可以直接恢复模型到上次训练暂停的时候。该保存方式的包括两种格式,SavedModel以及HDF5,其中,SavedModel是默认的保存格式。

SavedModel格式

如上所示,使用模型的save函数保存完整的已训练完成的模型。

如上所示,显示保存模型的文件列表,然后,使用load_model函数加载已保存的模型,输出模型的汇总信息。

如上所示,重新加载了已训练完成、完整的、相同的模型,然后,使用模型进行测试评估、预测。

HDF5格式

如上所示,创建一个模型、对模型执行训练、以HDF5的格式保存完整的模型。

如上所示,重新加载HDF5格式的已经保存的模型,输出模型汇总信息。

如上所示,使用测试数据集对重新加载的模型执行测试评估,其准确度达到85.90%。

由以上的分析可知,Keras技术框架保存模型的信息如下所示:

  •  模型训练所得的权重值

  • 模型的架构

  • 模型的训练设置,例如,传入到模型compile函数的参数

  • 模型的优化器以及优化器的状态

(未完待续)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/146114.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

青训营——前端方向练习题(不定项选择题例题)

文章目录 📄前言 PART1 PART2 PART3 PART4 PART5 PART6 PART7 PART8 PART9 📄前言 一共有十八题,题目选项为不定项,有单选,也有多选。 PART1 选择题 1: 下列哪些是 HTML5 的新特性? A…

Android 深入系统完全讲解(3)

3 Zygote 虚拟机的流程,学习方法 说完了 init 的启动过程,我们来说说 Zygote 的启动过程。 这里我们看下整个的步骤,主要完成了: 1 startVM() 创建虚拟机 2 startReg() 注册 JNI 方法 3 preload()预加载通用类,这里主…

【信管7.1】质量与质量管理过程

质量与质量管理过程对于我们的项目管理理论相关的学习来说,质量是除了范围、进度、成本之外的另一个核心内容。还记得我们在学习敏捷的时候讲过的项目管理三角形吗?通过之前的课程,我们已经学完了它的三个支点。接下来,我们就要学…

播客丨关于年终总结,程序员有话说

绘声绘影绘声绘影是网易云信独家打造的一档聚焦行业热点、个人成长方面的播客栏目。栏目希望通过邀请不同背景、不同行业、不同阅历的企业研发、产品、运营等相关岗位负责人作为节目嘉宾,以自身职业视角交流行业洞见和发展前景;以过来人的视角分享在时代…

dfs、bfs搜索题型小结

一、全排列 (1)1199:全排列 原题链接 解析 (2)剪枝思想 满足等式关系的全排列——dfs剪枝 (3)P1088 [NOIP2004 普及组] 火星人 原题链接 解析 二、组合(选与不选)…

web(四)—— CSS基础(选择器进阶、Emmet语法、背景属性、元素显示模式、三大特性)

一、选择器进阶目标:能够理解 复合选择器 的规则,并使用 复合选择器 在 HTML 中选择元素1. 复合选择器1.1 后代选择器:空格作用:根据 HTML 标签的嵌套关系,选择父元素 后代中 满足条件的元素 选择器语法:选…

Maven的安装配置与基本使用

Maven简介: Maven是专门用于管理和构建java项目的工具,它的主要功能有: 提供了一套标准化的项目结构标准化的项目结构: Maven提供了一套标准化的项目结构,所有的IDE使用Maven构建的项目结构完全一样,所有…

【IEEE出版社】人工智能、数据挖掘、机器人、传感等领域SCI,自引率低,对国人友好,评职毕业高分好刊~

1区人工智能类SCI&EI 【出版社】IEEE 【自引率】4.30%(低) 【国人占比】13.40% 【期刊简介】IF:6.5-7.0,JCR1区,中科院3区 【检索情况】SCI&EI 双检,正刊 【参考周期】3-5个月左右录用 【截稿日期】202…

如何彻底关闭Win10自动更新,Win10永久关闭自动更新的方法

如何彻底关闭Win10自动更新?Win10自动更新的问题是很多用户都遇到的问题,很多时候我们关闭了自动更新,过一段时间系统又自动更新了,由于win10自动更新非常顽固,所以我们要从多个地方下手才能永久关闭其自动更新&#x…

Java中几种常量池的区分

文章目录前言了解一下 ldc 指令字符串常量池在 Java 内存区域的哪个位置1.全局字符串池(string pool也有叫做string literal pool)2.class文件常量池(class constant pool)3.运行时常量池(runtime constant pool&#…

干货 | Python的面试题目+答案合集

作为一个 Python 新手,你必须熟悉基础知识。 在本期内容中我们将讨论一些 Python 面试的基础问题和高级问题以及答案,以帮助你完成面试。 包括 Python 开发问题、编程问题、数据结构问题、和 Python 脚本问题。 接下来让我们来深入研究这些问题 Pytho…

AD转换芯片精度计算及校正方法

文章目录前言一、转换精度二、重要参数1.线性误差(INL)和差分线性误差(DNL)2.失调误差和增益误差三、转换校正总结前言 本文对模数转换芯片的精度进行简要介绍,帮助大家正确选型,并介绍了一个基本的ADC转换…

postgresql13+postgis3.2安装教程

postgresql13postgis3.2安装教程 安装postgresql13 安装pg13 pg13安装包 cd /home/soft/pg tar -zxvf postgresql-13.6.tar.gz cd postgresql-13.6# yum -y install -y readline-devel./configure --prefix/usr/local/pgsqlmake -j4make install设置环境变量 vim /etc/pr…

OpenGPT的11种高效用法

1. 问答提示 2. 解释复杂的概念 3. 创作 创作需要尽可能的缩小范围,提出具体的要求,AI会给出更好的答案。 4. 准备面试 5. 教师教案 6. 编码和集成 7. 健身 8. 送礼推荐 9. 翻译 这个甚至不用去演示,openAI的翻译能力非常强大&#xff0c…

计算机专业混子应届生,如何3个月逆袭,成功上岸?

在我进入大学之前,我一直对计算机感兴趣。虽然只是考了一个一般大学,但是选专业的时候还是选了计算机专业。 本来以为自己会在大学里学到很多有用的知识,并且能够很快找到一份好工作。但是,事实并不是这样。在大学期间&#xff0c…

竞品分析:叮咚买菜

​生鲜包括了三类未加工的初级产品“果蔬(水果蔬菜)、肉类、水产品”以及两类加工产品“面包和熟食”。熟食又包括“冷藏的冷冻食品、乳制品和非冷藏的散装杂粮”。 生鲜电商就是以电子商务的形式销售以上产品。 生鲜电商有着“悠久”的历史&#xff0…

Vue组件的生命周期

一、生命周期 & 生命周期函数 1. 生命周期(Life Cycle)是指一个组件从创建 -> 运行 -> 销毁的整个阶段,强调的是一个时间段。 2. 生命周期函数:是由 vue 框架提供的内置函数,会伴随着组件的生命周期&#xf…

第四十三讲:神州防火墙混合模式的初始配置

混合模式即相当于防火墙既工作于路由模式,又工作于透明模式。在实际应用环境中,此类防火墙应用一般也比较广泛。混合模式分为两种: 一,ISP分配外网地址,内网为私网地址,服务器区域和内部地址为同一网段。这…

智慧商圈,对接微信、支付宝、云闪付实现自动积分

线下交易 商城下的门店使用本公司内部的pos机以及会员管理系统,通过pos收银时,根据管理系统配置的积分规则,可以自行给会员积分。但是当商城内部的部分门店不是使用内部的pos机进行收银时,则无法给给该批用户进行积分。以前有拍照…

吉他谱软件guitar pro2023吉他和弦、六线谱、BASS四线谱绘制

Guitar Pro由法国Arobas Music出品,主要用于管弦乐器的学习,通过建立不同的音轨,可完成不同乐器乐谱的编排制作。Guitar Pro发布23余年来,其强大的功能被广泛应用于专业乐队的创作和排练,其独创的gtp文档格式在专业领域…