Tensorflo2.0 Keras高级接口之模型的保存和加载

stm32f103c8t6+esp8266在WiFi下通过手机控制外设 stm32f103c8t6+esp8266在WiFi下通过手机控制外设前言 前言 通过上一篇,介绍了esp8266的基本功能,这篇将用stm32c8t6配合esp8266进行数据交互,实现用手机通过无线的方式去控制外设、开关等;这里相当于把stm32作为上一篇的串口助手和esp8266进行通信; ... 阅读详情

Tensorflo2.0 Keras高级接口之模型的保存和加载

模型训练完成后,需要将模型保存到文件系统上,从而方便后续的模型测试与部署工作。实际上,在训练时间隔性地保存模型状态也是非常好的习惯,这一点对于训练大规模的网络尤其重要。一般大规模的网络需要训练数天乃至数周的时长,一旦训练过程被中断或者发生宕机等意外,之前训练的进度将全部丢失。如果能够间断地保存模型状态到文件系统,即使发生宕机等意外,也可以从最近一次的网络状态文件中恢复,从而避免浪费大量的训练时间和计算资源。因此模型的保存与加载非常重要。在 Keras 中,有三种常用的模型保存与加载方法。

张量方式

网络的状态主要体现在网络的结构以及网络层内部张量数据上,因此在拥有网络结构源文件的条件下,直接保存网络张量参数到文件系统上是最轻量级的一种方式。我们以MNIST 手写数字图片识别模型为例,通过调用Model.save_weights(path)方法即可将当前的网络参数保存到path 文件上,代码如下:

network.save_weights('weights.ckpt') # 保存模型的所有张量数据

上述代码将network 模型保存到weights.ckpt 文件上。在需要的时候,先创建好网络对象,然后调用网络对象的load_weights(path)方法即可将指定的模型文件中保存的张量数值写入到当前网络
参数中去,例如:

# 保存模型参数到文件上
network.save_weights('weights.ckpt')
print('saved weights.')
del network # 删除网络对象
# 重新创建相同的网络结构
network = Sequential([layers.Dense(256, activation='relu'),
layers.Dense(128, activation='relu'),
layers.Dense(64, activation='relu'),
layers.Dense(32, activation='relu'),
layers.Dense(10)])
network.compile(optimizer=optimizers.Adam(lr=0.01),
loss=tf.losses.CategoricalCrossentropy(from_logits=True),
metrics=['accuracy']
)
# 从参数文件中读取数据并写入当前网络
network.load_weights('weights.ckpt')
print('loaded weights!')

这种保存与加载网络的方式最为轻量级,文件中保存的仅仅是张量参数的数值,并没有其
它额外的结构参数。但是它需要使用相同的网络结构才能够正确恢复网络状态,因此一般
在拥有网络源文件的情况下使用。

网络方式

我们来介绍一种不需要网络源文件,仅仅需要模型参数文件即可恢复出网络模型的方法。通过Model.save(path)函数可以将模型的结构以及模型的参数保存到path 文件上,在不需要网络源文件的条件下,通过keras.models.load_model(path)即可恢复网络结构和网络参数。

首先将MNIST 手写数字图片识别模型保存到文件上,并且删除网络对象:

# 保存模型结构与模型参数到文件
network.save('model.h5')
print('saved total model.')
del network

此时通过model.h5 文件即可恢复出网络的结构和状态,不需要提前创建网络对象,代码如下:

# 从文件恢复网络结构与网络参数
network = keras.models.load_model('model.h5')

可以看到,model.h5 文件除了保存了模型参数外,还应保存了网络结构信息,不需要提前创建模型即可直接从文件中恢复出网络network 对象。

SavedModel 方式

TensorFlow 之所以能够被业界青睐,除了优秀的神经网络层API 支持之外,还得益于它强大的生态系统,包括移动端和网页端等的支持。当需要将模型部署到其他平台时,采用TensorFlow 提出的SavedModel 方式更具有平台无关性。

通过 tf.saved_model.save (network, path)即可将模型以SavedModel 方式保存到path 目录中,代码如下:

# 保存模型结构与模型参数到文件
tf.saved_model.save(network, 'model-savedmodel')
print('saving savedmodel.')
del network # 删除网络对象

用户无需关心文件的保存格式,只需要通过tf.saved_model.load 函数即可恢复出模型对象,我们在恢复出模型实例后,完成测试准确率的计算,实现如下:

print('load savedmodel from file.')
# 从文件恢复网络结构与网络参数
network = tf.saved_model.load('model-savedmodel')
# 准确率计量器
acc_meter = metrics.CategoricalAccuracy()
for x,y in ds_val: # 遍历测试集
pred = network(x) # 前向计算
acc_meter.update_state(y_true=y, y_pred=pred) # 更新准确率统计
# 打印准确率
print("Test Accuracy:%f" % acc_meter.result())
重磅!Repo Wiki! RepoWiki是Qoder平台的智能文档生成功能,通过静态代码分析自动提取项目架构、模块依赖和核心逻辑,并持续追踪代码变更保持文档同步。其工作流程分为四个阶段:1)代码扫描与AST解析;2)结构分析与依赖映射;3)文档智能生成;4)增量更新机制。支持多种编程语言,能识别设计模式并推断技术决策,适用于新项目搭建和遗留系统维护。优势在于降低理解成本和提高开发效率,但存在文件数量限制和依赖Git的局限性。典型应用场景包括自动生成架构图、API手册和团队知识沉淀。 阅读详情

相关推荐

SAP-ABAP:SAP ABAP 深度解析:BAPI 从入门到精通 —— 原理、实战与自定义开发全指南

SAP ABAP BAPI 深度解析摘要 本文全面介绍了 SAP ABAP 中的 BAPI(业务应用程序编程接口)技术,涵盖以下核心内容: BAPI 定义与特点:BAPI 是 SAP 为业务对象提供的标准化编程接口,具有面向对象、封装业务逻辑、标准化错误处理和版本兼容性等特点。 BAPI 与 RFC 关系:所有 BAPI 都是 RFC,但需额外满足业务对象注册、标准化参数和错误处理等要求。 BAPI 核心作用:包括业务逻辑封装、系统集成、标准化错误处理、版本兼容和审计合规。 实战演示:通过创建销售订单的完整

baidu_35680696的博客 1034

什么是tensorflow

什么是tensorflow tenroflow是Google开源软件库,为机器学习工程中的问题提供了一整套解决方案。类比于Spark/Flink是大数据工程问题的解决方案。 该软件库把机器学习中的通用功能封装成了库,并提供了简易的API,使得在构建机器学习系统时不再需要做那些纷繁复杂的数学或 者工程工作,能把主要精力放在模型和业务上。这就像现在使用编程语言进行编程时,不再需要知道计算机硬件的细节,不用知道CPU的指令集。从这个意义上说,tensorflow 让机器学习工程从汇编语言时代,上升到了高级语言

wyg_031113的专栏 3万+

Zemax 中的 LED 阵列模型

这些光线是所有光线的子集,用于布局可视化,而不是详细分析。X 和 Y 散度(αx 和 αy)以度为单位,以不同的方式设置为 6 度和 12 度。每个 LED 都以朗伯模式(广角分布)发光,尽管有些 LED 具有内置光学元件,用于更窄或更聚焦的光束。,具体取决于这些类别中使用的半导体材料。LED 阵列由多个发光二极管 (LED) 组成,这些二极管以特定模式或配置排列,以实现均匀照明、更高强度或特定照明特性。如果数据的存在更改为“辐射强度”,则它以弧度为单位显示每个立体角的功率,作为探测器上入射角的函数。

jkh920184196的博客 1596

pytorch和tensorflow有什么区别?

PyTorch 是一种用于构建深度学习模型的功能完备框架,同时tensorflow也是常用的框架之一。大家在学习的时候,尝尝会用来做比较。那么pytorch和tensorflow有什么区别?大家所关心的问题,解答来了。pytorch和tensorflow有什么区别?创建和运行计算图可能是两个框架最不同的地方。在PyTorch中,图结构是动态的,这意味着图在运行时构建。而在TensorFlow中,图结构是静态的,这意味着图先被“编译”然后再运行。举一个简单的例子,在PyTorch中你可以用标准的Python语

gu1857035894的博客 4万+

Python实战:5分钟搞定滑动平均窗口计算(附完整代码+逐行注释)

本文深入解析Python中滑动平均窗口计算的实现与优化,提供Numpy、Pandas等多种高效方案,并附完整代码和逐行注释。涵盖边界处理、性能优化及异常检测等实战技巧,帮助开发者快速掌握时间序列数据处理的核心技术。

weixin_30872157的博客 125

RocketMQ源码分析之消息轨迹

文章目录前言一、消息轨迹二、消息轨迹源码分析1、producer端2、consumer端三、消息轨迹中存储的信息1.TraceContext2.TraceBean3.TraceType四、总结 前言   本篇文章将会从以下方面介绍消息轨迹:什么是消息轨迹?如何启用消息轨迹?示例demo、消息轨迹的源码分析和消息轨迹中存储的信息。最后会用一张图来总结消息轨迹的工作原理。 一、消息轨迹 1.什么是消息轨迹? 消息轨迹是用来跟踪记录消息发送、消息消费的轨迹。 2.如何启用消息轨迹? broker端 需要在b

不爱学习的小妞博客 1076

一文读懂 TensorFlow 深度学习框架:从基础到实战!

TensorFlow 最初由 Google Brain 团队开发,于 2015 年开源。经过多年的发展,它已经成为了一个高度灵活且功能丰富的深度学习框架,广泛应用于各类机器学习算法的编程实现。TensorFlow 作为一款功能强大的深度学习框架,为开发者提供了丰富的工具和灵活的编程模型,无论是初学者快速上手深度学习,还是研究人员进行复杂模型的开发,都能从中受益。通过本文的介绍和操作示例,希望你能对 TensorFlow 有更深入的理解,并在实际项目中灵活运用。

Stuomasi_xiaoxin的博客 1万+

高压控制单元与接触器 —— BMS电池的“高压大门”

高压接触器在BMS电池管理系统中扮演着“高压大门”的角色,负责控制电池包与整车高压母线的连接与隔离。接触器的工作原理基于线圈产生的磁力吸合接点,通过主触点接通高压电流路径,辅助触点检测状态,灭弧结构保护接点。预充电路的设计是为了避免直接连接大电容时产生的浪涌电流冲击,通过预充电阻逐步充电,确保系统安全上电。接触器控制策略包括顺序控制、辅助触点检测、温度监控、故障断电和背靠背MOS辅助控制,以确保系统的高效和安全运行。工程师在选择接触器型号、控制线圈、检测状态、软件冗余控制和预充失败保护等方面提供了具体建议。

weixin_43199439的博客 813

TensorFlow入门教程

TensorFlow 一、TensorFlow介绍 1、什么是TensorFlow 官网:https://www.tensorflow.org/TensorFlow是Google开发的一款神经网络的Python外部的结构包, 也是一个采用数据流图来进行数值计算的开源软件库.先绘制计算结构图, 也可以称是一系列可人机交互的计算操作, 然后把编辑好的Python文件 转换成 更高效的C++,

jiangjingxuan的博客 5395

基于YOLOv11的手术器械计数系统:从数据集构建到Web应用部署

m2cai16-tool数据集:包含15种腹腔镜手术器械的标注图像Cholec80数据集:包含80个胆囊切除手术视频,标注了7种器械SurgicalTools数据集:包含超过10,000张手术器械图像,涵盖21类常见器械手术剪(Scissors)止血钳(Hemostat)持针器(Needle Holder)手术刀(Scalpel)镊子(Forceps)拉钩(Retractor)吸引器(Suction)

YOLO 397

在 Linux 64 位上遭遇 Signal 7 与 ST22 SYSTEM_CORE_DUMPED:从 es/implementation=std 到 /dev/shm 的一套落地排查法

摘要: Linux 64位SAP系统出现SYSTEM_CORE_DUMPED和Signal 7(对应SIGBUS)错误时,核心问题是进程因共享内存资源异常被操作系统强制终止。主要诱因包括:1)/dev/shm的tmpfs默认容量不足(通常仅占物理内存50%);2)SAP内存管理参数es/implementation=map在64位场景下的敏感性。解决方案应双管齐下:在实例profile设置es/implementation=std以降低对tmpfs的依赖,同时按(RAM+Swap)*75%重新配置/dev/

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 164

深度学习框架---TensorFlow概览

TensorFlow 是一个功能强大的开源机器学习框架,支持从基础到高级的深度学习任务。其 2.x 版本默认启用动态图(Eager Execution),简化了开发流程,并集成了 Keras API,提供了高层接口以快速构建和训练模型。TensorFlow 的核心优势包括跨平台支持(CPU/GPU/TPU)、丰富的生态系统(如数据处理、模型部署、可视化工具)以及自动微分功能,极大地方便了深度学习模型的开发与优化。

MzKyle的博客 3059

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

2023年终总结|回顾学习Tensorflow、Keras的历程

2023年终总结|回顾学习Tensorflow、Keras的历程

lymake的博客 2286

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

170718 Keras.applications.models权重在线加载中断问题的解决办法

由于网速慢或网络中断原因导致keras加载vgg16等模型权重失败,导致无法使用,对于这个问题的直接解决方法是:删掉下载文件,再重新下载 Github方法: window-weights路径: C:\Users\你的用户名\.keras\models linux-weights路径: .keras/models/ 注意: linux中 带点号的文件都被隐藏了,需要查看hidden文

专注机器学习之路 5576

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Steam Achievement Manager 成就显示异常快速修复:4步搞定列表空白、状态不同步

打开 Steam Achievement Manager(简称 SAM,一款免费管理 Steam 游戏成就与统计数据的轻量工具)后,你发现成就列表整片空白,或者刚解锁的成就仍显示灰色锁图标,甚至界面卡在"连接中"不动?别急着卸载重装。这类故障八成出在四个环节:与 Steam 客户端的连接、本地成就数据、运行时环境、数据同步延迟。下面的排障路线按"先花 1 分钟、再花 10 分钟"的顺序递进,你照着

gitblog_00631的博客 450

TensorFlow核心开发组的优先级安排

 TensorFlow 得到全球社区开发者的支持,正处于高速发展中。这篇文章旨在提供 TensorFlow 核心开发组的重点工作领域和优先级安排,以及哪些功能将最有可能在即将发布的版本中呈现,其中大部分功能都是来自社区开发者们的实际用例,艾伯特(公众号:aibbtcom)也欢迎大家进一步为 TensorFlow 做贡献。TensorFlow 1.6.0 已于 3 月 1 日发布,重大改变包括:艾伯...

HowardWood的博客 486

Tensorflow-手写数字初体验

import os import tensorflow as tf from tensorflow import keras from tensorflow.keras import layers,optimizers,datasets # 设置显示 os.environ["TF_CPP_MIN_LOG_LEVEL"] = '2' """ 数据准备 """ # 加载并下载在线数据集 # [60k,28,28] (x, y),(x_val, y_val) = datasets.mnist.load_data

多思考🤔~ 378

tensorflow和keras版本对应关系

Tensorflow版本 Keras版本 Tensorflow 2.1 Tensorflow 2.0 Tensorflow 1.15 Keras 2.3.1 Tensorflow 1.14 Keras 2.2.5 Tensorflow 1.13 Tensorflow 1.12 Tensorflow 1.11 Keras 2.2.4 Tensorflow 1.10 Tensorflow 1.9 Keras 2.2.0 Tensorflow 1.8 Tensorflow...

StarkerRegen的博客 6万+

TensorFlow学习——tf.keras接口保存和加载模型

跑了几个深度学习的程序之后,开始静下心来研究算法和代码,因为刚开始接触TensorFlow,第一个拦路虎就是各种API的使用,不想囫囵吞枣,只能在工作之外去学习这些基础知识,各个击破。 今天主要是tf.keras接口的简介,以及最近遇到比较多的模型的保存和加载。 1. tf.keras简介 tf.keras接口是在TensorFlow中封装的Keras接口。Keras接口是一个用Python语言编写的高层神经网路API,可以运行在TensorFlow、CNTK以及Theano上,也就是说它可以以这三个

牧羊女 3634

TensorFlow入门:第一个机器学习Demo

本文主要通过一个简单的 Demo 介绍 TensorFlow 初级 API 的使用方法,引导刚接触 TensorFlow 或者 机器学习的同学,能够从第一步开始学习 TensorFlow。

戈云飞的博客 19万+

TensorFlow 完整的TensorFlow入门教程

1:你想要学习TensorFlow,首先你得安装Tensorflow,在你学习的时候你最好懂以下的知识: a:怎么用python编程; b:了解一些关于数组的知识; c:最理想的情况是:关于机器学习,懂一点点;或者不懂也是可以慢慢开始学习的。 2:TensorFlow提供很多API,最低级别是API:TensorFlow Core,提供给你完成程序控制,还有一些 高级别的AP

lgx06的专栏 14万+

[深度学习笔记]TensorFlow-术语解释

1. TensorFlow 特点 使用图(graphs)来表示计算任务 在被称之为会话(Session)的上下文(context)中执行图 使用张量(tensor)表示数据 通过变量(Variable)维护状态 使用 feed 和 fetch 可以为任意的操作赋值或者从其中获取数据 2. TensorFlow结构 Tensorflow 是一个编程系统,Tensorflow 结构如下图所示: ...

图解AI 3989

flowable实战(二)flowable流程模型管理接口

文章目录一、流程模型资源二、流程模型资源的部署:2.1. 流程资源xml部署:2.2. zip/bar打包,多个流程资源文件部署:2.3. Model部署三、部署有关的数据库表四、流程模型的常见管理接口4.1. 部署api4.2.验证部署4.3.获取所有部署api4.4.删除部署api4.5.部署的挂起与激活 一、流程模型资源 流程定义文件:文件的命名必须是XXXXbpmn20.xml,注意命名规...

Gblfy_Blog 3848

Keras模型的保存与调用

一、模型的保存(结构 + 权重 + 优化器状态) 1、model.save('model.h5')#保存名为model的h5文件到程序所在目录 你可以使用 model.save(filepath) 将 Keras 模型保存到单个 HDF5 文件中,该文件将包含: 模型的结构,允许重新创建模型 模型的权重 训练配置项(损失函数,优化器) 优化器状态,允许准确地从你上次结束的地方继续训练。...

qq_18246731的博客 6685

windows10 tensorflow正确安装顺序,避免版本不兼容问题

这里记录一下tensorflow环境搭建顺序,以避免版本不兼容造成的卸载重装问题: 安装顺序: 1.安装anaconda3.0 (里面包含了pip) 2.用pip安装tensorflow相应版本 3.去Anaconda3\Lib\site-packages\tensorflow\python\platform\build_info.py这个文件中查看支持的cuda版本 然后,去官网这里...

liudehua6的博客 4977

Tensorflow快餐教程(1) - 30行代码搞定手写识别

去年买了几本讲tensorflow的书,结果今年看的时候发现有些样例代码所用的API已经过时了。看来自己维护一个保持更新的Tensorflow的教程还是有意义的。这是写这一系列的初心。 快餐教程系列希望能够尽可能降低门槛,少讲,讲透。 为了让大家在一开始就看到一个美好的场景,而不是停留在漫长的基础知识积累上,参考网上的一些教程,我们直接一开始就直接展示用tensorflow实现MNIST手写识...

lusing的专栏 1万+
上一篇: Tensorflow2.0 Keras之模型装配
下一篇: Tensorflow2.0 Keras之自定义网络
AndSonder
博客等级 码龄7年 364粉丝 154原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值