Paddle Inference部署推理(二)

二:Paddle Inference推理之保存与加载模型API详解

模型训练后,训练好的模型参数保存在内存中,通常需要使用模型保存(save)功能将其持久化保存到磁盘文件中,并在后续需要训练调优或推理部署时,再加载(load)到内存中运行。详细介绍不同场景下模型保存与加载的方法。

概述

在模型训练过程中,通常会在如下场景中用到模型的保存与加载功能:

训练调优场景:

  • 模型训练过程中定期保存模型,以便后续对不同时期的模型恢复训练或进行研究;
  • 模型训练完毕,需要保存模型方便进行评估测试;
  • 载入预训练模型,并对模型进行微调(fine-tune)。

推理部署场景:

  • 模型训练完毕,在云、边、端不同的硬件环境中部署使用,飞桨提供了服务器端部署的 Paddle Inference、移动端/IoT端部署的 Paddle Lite、服务化部署的 Paddle Serving 等,以实现模型的快速部署上线。

针对以上场景,飞桨框架推荐使用的模型保存与加载基础 API 主要包括:
a. paddle.save

源代码:地址

:将对象实例 obj 保存到指定的路径中。

入参和返回值详解:

复制代码
 >>> # example 2: Save multiple state_dict at the same time
 >>> import paddle
 >>> from paddle import nn
 >>> from paddle.optimizer import Adam

 >>> layer = paddle.nn.Linear(3, 4)
 >>> adam = Adam(learning_rate=0.001, parameters=layer.parameters())
 >>> obj = {'model': layer.state_dict(), 'opt': adam.state_dict(), 'epoch': 100}
 >>> path = 'example/model.pdparams'
 >>> paddle.save(obj, path)

b. paddle. Load

源代码:地址

:从指定路径载入可以在 paddle 中使用的对象实例。

入参和返回值详解:

复制代码
 >>> # example 2: Load multiple state_dict at the same time
 >>> import paddle
 >>> from paddle import nn
 >>> from paddle.optimizer import Adam

 >>> layer = paddle.nn.Linear(3, 4)
 >>> adam = Adam(learning_rate=0.001, parameters=layer.parameters())
 >>> obj = {'model': layer.state_dict(), 'opt': adam.state_dict(), 'epoch': 100}
 >>> path = 'example/model.pdparams'
 >>> paddle.save(obj, path)
 >>> obj_load = paddle.load(path)

c. paddle.jit.save

源代码:地址

:将输入的 Layer 或 function 存储为 paddle.jit.TranslatedLayer 格式的模型,载入后可用于预测推理或者 fine-tune 训练。该接口会将输入 Layer 转写后的模型结构 Program 和所有必要的持久参数变量存储至输入路径 path 。

path 是存储目标的前缀,存储的模型结构 Program 文件的后缀为 .pdmodel ,存储的持久参数变量文件的后缀为 .pdiparams,同时这里也会将一些变量描述信息存储至文件,文件后缀为 .pdiparams.info,这些额外的信息将在 fine-tune 训练中使用。

存储的模型能够被以下 API 完整地载入使用:

  • paddle.jit.load
  • paddle.static.load_inference_model
  • 其他 C++ 预测库 API

    入参和返回值详解:

    d. paddle.jit.load
    源代码:地址
相关推荐
Yao.Li2 天前
踩坑 5090 编译构建 Paddle 源码
人工智能·深度学习·飞桨·paddle
满怀冰雪5 天前
19-图像数据处理:PaddleVision Transform 实战
人工智能·深度学习·计算机视觉·paddle
满怀冰雪5 天前
20-卷积神经网络基础:用 Paddle 构建 CNN
人工智能·深度学习·cnn·paddle
满怀冰雪11 天前
15-Paddle 高层 API 入门:paddle.Model 的训练与评估流程
人工智能·python·深度学习·机器学习·paddle
molihuan16 天前
最新 Paddle-Lite Android平台编译
android·ocr·paddle·推理·端侧·paddle lite
满怀冰雪18 天前
08-Paddle 神经网络层入门:Linear、激活函数与 Sequential
神经网络·机器学习·paddle
蓝创工坊Blue Foundry19 天前
PaddleOCR 本地部署教程:小模型 OCR 如何完成字段提取到 Excel
pdf·自动化·ocr·excel·paddlepaddle·paddle
满怀冰雪19 天前
09-使用 paddle.nn 构建第一个多层感知机
python·深度学习·神经网络·paddle
蓝创工坊Blue Foundry20 天前
个人藏书太多怎么整理?用 OCR 字段提取汇总成电子书目
pdf·ocr·excel·文心一言·paddlepaddle·paddle
山石满棠22 天前
基于python313环境构建paddle-ocr镜像
ocr·paddle