深度学习篇---断点重训模型部署文件


文章目录

  • 前言
  • 一、断点重训(Checkpoint)文件
    • 1. 动态图(DyGraph)模式
      • .pdparams 文件
      • .pdopt 文件
      • .pdscaler 文件
      • .pdmeta 或 .pkl 文件
    • 2. 静态图(Static Graph)模式
      • .pdparams 和 .pdopt 文件
      • .ckpt 文件
    • 3. 恢复训练
  • 二、模型部署文件
    • 1. 动态图部署文件
      • .pdmodel
      • .pdiparams
      • 示例代码
    • 2. Paddle Inference 部署
  • 三、核心区别总结
  • 四、关键注意事项
    • 断点重训
    • 模型部署
    • 文件管理


前言

PaddlePaddle 框架中,断点重训(恢复训练)和 模型部署 需要保存不同类型的文件


一、断点重训(Checkpoint)文件

断点重训需要保存训练过程中的完整状态,包括 模型参数优化器状态学习率调度器状态 以及 训练进度信息(如当前 epoch、迭代步数等)
PaddlePaddle 动态图(推荐)和静态图模式下保存的文件略有不同,但核心文件后缀如下:

1. 动态图(DyGraph)模式

.pdparams 文件

保存模型的 可学习参数(如权重、偏置),通过 model.state_dict() 生成。

paddle.save(model.state_dict(), "model.pdparams")  # 仅保存模型参数

.pdopt 文件

保存 优化器的状态(如动量、梯度历史等),通过 optimizer.state_dict() 生成。

paddle.save(optimizer.state_dict(), "optimizer.pdopt")  # 保存优化器状态

.pdscaler 文件

如果使用了混合精度训练(paddle.amp.GradScaler),保存梯度缩放器的状态

paddle.save(scaler.state_dict(), "scaler.pdscaler")

.pdmeta 或 .pkl 文件

保存其他元信息(如当前 epoch、迭代步数、损失值等),需用户自定义保存。

checkpoint = {"epoch": 10,"step": 1000,"loss": 0.02,"model_state": model.state_dict(),"optimizer_state": optimizer.state_dict()
}
paddle.save(checkpoint, "checkpoint_epoch10.pdparams")  # 自定义后缀

2. 静态图(Static Graph)模式

.pdparams 和 .pdopt 文件

与动态图类似,分别保存模型参数和优化器状态

.ckpt 文件

检查点文件(如 model.ckpt-0),通常通过保存所有持久化变量(包括模型参数和优化器状态)。

3. 恢复训练

恢复训练时需 同时加载模型参数、优化器状态和元信息:

# 加载模型参数和优化器状态
model_state_dict = paddle.load("model.pdparams")
optimizer_state_dict = paddle.load("optimizer.pdopt")
model.set_state_dict(model_state_dict)
optimizer.set_state_dict(optimizer_state_dict)# 加载元信息(如 epoch、step)
checkpoint = paddle.load("checkpoint_epoch10.pdparams")
current_epoch = checkpoint["epoch"]

二、模型部署文件

部署模型时需要将模型结构和参数固化生成推理专用的文件。PaddlePaddle 支持两种部署格式:

1. 动态图部署文件

使用 paddle.jit.save() 导出为 静态图推理模型(推荐)

.pdmodel

存储模型的 静态图结构(计算图定义),用于推理时加载模型结构

.pdiparams

存储模型的 参数值,与 .pdmodel 配合使用。

示例代码

model.eval()  # 切换为评估模式
input_spec = [paddle.static.InputSpec(shape=[None, 3, 224, 224], dtype="float32")]
paddle.jit.save(model, "deploy_model", input_spec=input_spec)  # 生成 deploy_model.pdmodel 和 deploy_model.pdiparams

2. Paddle Inference 部署

部署时使用 paddle.inference 库加载 .pdmodel 和 .pdiparams

config = paddle.inference.Config("deploy_model.pdmodel", "deploy_model.pdiparams")
predictor = paddle.inference.create_predictor(config)

三、核心区别总结

用途 文件类型 动态图(DyGraph) 静态图(Static Graph)
断点重训 模型参数 .pdparams .pdparams 或 .ckpt
优化器状态 .pdopt .pdopt 或 .ckpt
元信息 自定义(如 .pdmeta 或 .pkl) 自定义
模型部署 模型结构 .pdmodel model
模型参数 .pdiparams params

四、关键注意事项

断点重训

  1. 必须同时保存 模型参数、优化器状态、训练进度元信息,缺一不可。
  2. 混合精度训练时需额外保存 .pdscaler 文件

模型部署

  1. 使用 paddle.jit.save() 导出前需切换模型为评估模式(model.eval())。
  2. 静态图部署需指定输入张量的 InputSpec,确保计算图固定。

文件管理

  1. 建议将**断点文件(.pdparams、.pdopt)部署文件(.pdmodel、.pdiparams)**分目录存储,避免混淆。

通过合理管理这些文件,可以高效实现训练中断恢复模型快速部署!


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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Jenkins最新版,配置Gitee私人令牌和Gitee凭证

jenkins 配置Gitee私人令牌和凭证 jenkins 版本:Jenkins 2.492.2 Gitee配置 Jenkins配置gitee插件,需要先申请gitee私钥。 安装gitee插件 申请Gitee私人令牌,后面还需要添加凭证。 测试链接,并保存 配置凭证

ORACLE RAC ASM双存储架构下存储部分LUN异常的处理

早上接到用户电话,出现有表空间不足的告警,事实上此环境经常巡检并且有告警系统,一开始就带着有所疑惑的心理,结果同事在扩大表空间时,遇到报错 ORA-15401/ORA-17505,提示ASM空间满了: ALERT日志&#xff1…

Windows下docker使用教程

docker安装 镜像制作镜像加载容器创建更新镜像导出镜像 Windows10安装dockerdocker image制作docker 镜像加载docker 容器创建更新imageimage 导出为.tar文件 #以Windows10 、11为例 linux和Windows区别在于docker安装的程序是哪个操作系统的,后面的内容其实不变 …

9.4分漏洞!Next.js Middleware鉴权绕过漏洞安全风险通告

今日,亚信安全CERT监控到安全社区研究人员发布安全通告,Next.js 存在一个授权绕过漏洞,编号为 CVE-2025-29927。攻击者可能通过发送精心构造的 x-middleware-subrequest 请求头绕过中间件安全控制,从而在未授权的情况下访问受保护…

代码随想录算法训练营Day12 | Leetcode 226翻转二叉树、101对称二叉树、104二叉树的最大深度、111二叉树的最小深度

代码随想录算法训练营Day12 | Leetcode 226翻转二叉树、101对称二叉树、104二叉树的最大深度、111二叉树的最小深度 一、翻转二叉树 相关题目:Leetcode226 文档讲解:Leetcode226 视频讲解:Leetcode226 1. Leetcode226.翻转二叉树 给你一棵二…

3.26学习总结 做题

先初始化n1时,输出的图案。 观察可以得到,n每加1,则在原先图案的左下方和右下方重新打印一遍原先的图案,可以分为两步。 1.复制原先图案打印在其正下方和右下方,并将原先图案清空。 2.在现在图案的上方中间打印原先…

Linux学习笔记(应用篇二)

基于I.MX6ULL.MINI开发板 开发板与电脑相互通信电脑与开发板互传文件 开发板与电脑相互通信 用网线将电脑与开发板连接 本人使用的是Ubuntu系统,不是虚拟机 一般来说刚开始电脑和开发板是ping不通的 首先查看电脑的 IP WinR,cmd调出终端 我使用的是…

【gradio】从零搭建知识库问答系统-Gradio+Ollama+Qwen2.5实现全流程

从零搭建大模型问答系统-GradioOllamaQwen2.5实现全流程(一) 前言一、界面设计(计划)二、模块设计1.登录模块2.注册模块3. 主界面模块4. 历史记录模块 三、相应的接口(前后端交互)四、实现前端界面的设计co…

中间件漏洞-Tomcat篇

一:CVE-2017-12615 1.搭建服务 cd /www/wwwroot/vulhub-master/tomcat/CVE-2017-12615 docker-compose up -d 2.打开网页 3.在哥斯拉中生成jsp木马并保存为2.jpg 对当前页面进行抓包,修改提交方式为PUT并复制木马 4.在网页中访问我们生成的木马&#…

PHP eval 长度限制绕过与 Webshell 获取

在 PHP 代码中&#xff0c;如果 eval($param); 存在且长度受限&#xff0c;并且过滤了 eval 和 assert&#xff0c;仍然可以通过多种方法绕过限制&#xff0c;获取 Webshell。 源码 <?php $param $_REQUEST[param]; if(strlen($param)<17 && stripos($param,…

31天Python入门——第15天:日志记录

你好&#xff0c;我是安然无虞。 文章目录 日志记录python的日志记录模块创建日志处理程序并配置输出格式将日志内容输出到控制台将日志写入到文件 logging更简单的一种使用方式 日志记录 日志记录是一种重要的应用程序开发和维护技术, 它用于记录应用程序运行时的关键信息和…

特殊行车记录仪DAT视频丢失的恢复方法

行车记录仪是一种常见的车载记录仪&#xff0c;和常见的“小巧玲珑”的行车记录仪不同&#xff0c;一些特种车辆使用的记录仪的外观可以用“笨重”来形容。下边我们来看看特种车载行车记录仪删除文件后的恢复方法。 故障存储: 120GB存储设备/文件系统:exFAT /簇大小:128KB 故…

机器学习——KNN数据均一化

在KNN&#xff08;K-近邻&#xff09;算法中&#xff0c;数据均一化&#xff08;归一化&#xff09;是预处理的关键步骤&#xff0c;用于消除不同特征量纲差异对距离计算的影响。以下是两种常用的归一化操作及其核心要点&#xff1a; 质押 一 、主要思想 1. 最值归一化&#…

Element UI实现表格全选、半选

制作如图所示的表格全选、半选&#xff1a; 父组件 <template><div id"app"><SelectHost :hostArray"hostArray" /></div> </template><script> import SelectHost from ./components/SelectHost.vue export default…

深度学习入门1 基于Python的理论与实现

torch.unsqueeze()将一维数据变为二维数据&#xff0c;torch只能处理二维数据 tensor不能反向&#xff0c;variable可以反向。variable.data.numpy()转换为numpy 第3章 神经网络 实现softmax函数时的注意事项&#xff1a;为防止e的指数运算造成溢出 矩阵的第 0 维是列方向,第…

vue响应式原理剖析

一、什么是响应式? 我们先来看一下响应式意味着什么?我们来看一段代码: m有一个初始化的值,有一段代码使用了这个值; 那么在m有一个新的值时,这段代码可以自动重新执行; let m = 20 console.log(m) console.log(m * 2)m = 40上面的这样一种可以自动响应数据变量的代码机…

UDP数据报套接字编程

1.DatagramSocket API Socket是操作系统中的一个概念 本质上是一种特殊的文件 Socket就属于是把"网卡"这个设备,抽象成文件了 往Socket文件中写数据,就相当于通过网卡发送数据 从Socket文件读数据,就相当于通过网卡接受数据 在Java中就使用DatagramSocket这个类…

逼用户升级Win11,微软开始给Win10限速

随着Windows10的支持时间越来越短&#xff0c;微软也加大了对Win10用户的驱赶力度。 最近&#xff0c;微软官宣了将要在今年6月份降低OneNote for Windows 10的同步速度。软件也将和Windows10在今年的10月14日一同停止支持和维护。 这将影响实时协作和多设备访问。 对OneNote…

NodeJs之http模块

一、概念&#xff1a; 1、协议&#xff1a;双方必须共同遵从的一组约定。 Hypertext Transfer Protocol&#xff1a;HTTP&#xff0c;超文本传输协议 2、请求&#xff1a; ① 请求报文的组成&#xff1a; 请求行请求头空行请求体 ② 请求行&#xff1a;

26考研——图_图的应用(6)

408答疑 文章目录 四、图的应用图的应用考查形式最小生成树最小生成树概念最小生成树的性质最小生成树中某顶点到其他顶点是否具有最短路径的分析构造最小生成树的算法Prim 算法Prim 算法概述Prim 算法的构建思想Prim 算法的步骤Prim 算法的示例Prim 算法的性质 Kruskal 算法Kr…