目录

1.API分类

1.1基础API

1.2高级API

2.训练调优场景的模型&参数保存载入

2.1动态图参数保存载入

2.2静态图参数保存载入

3.训练部署场景的模型参数保存载入

3.1 动态图模型&参数保存载入(训练推理)

3.2 静态图模型&参数保存载入(推理部署)


1.API分类

API 使用场景 动态图 静态图
paddle.save/load 训练调优
paddle.jit.save/load 推理部署、动转静的训练
paddle.static.save和load_inference_model 推理部署

动态图的训练模型转化为静态图推理时,动态图开发调试结束转为静态图训练时,使用paddle.jit.save。

1.1基础API

  • 对于训练调优场景,使用paddle.save/load保存和载入模型。
  • 对于推理部署场景,使用paddle.jit.save/load(动态图)和paddle.static.save/load_inference_model(静态图)保存载入模型。

1.2高级API

  • paddle.Model.fit (训练接口,同时带有参数保存的功能)

  • paddle.Model.save

  • paddle.Model.load

2.训练调优场景的模型&参数保存载入

2.1动态图参数保存载入

2.1.1参数保存

参数保存时,先获取目标对象(Layer或者Optimzier)的state_dict,然后将state_dict保存至磁盘

# save
paddle.save(layer.state_dict(), "linear_net.pdparams")
paddle.save(adam.state_dict(), "adam.pdopt")
  • obj (Object) – 要保存的对象实例。

  • path (str|BytesIO) – 保存对象实例的路径/内存对象。如果存储到当前路径,输入的path字符串将会作为保存的文件名。

2.1.2参数载入

参数载入时,先从磁盘载入保存的state_dict,然后通过set_state_dict方法配置到目标对象中

# load
layer_state_dict = paddle.load("linear_net.pdparams")
opt_state_dict = paddle.load("adam.pdopt")layer.set_state_dict(layer_state_dict)
adam.set_state_dict(opt_state_dict)

2.2静态图参数保存载入

2.2.1参数保存

  • 仅保存参数时
paddle.save(prog.state_dict(), "temp/model.pdparams")
  • 保存模型和参数
paddle.save(prog, "temp/model.pdmodel")

2.2.2参数加载

  • 仅保存参数的加载
state_dict = paddle.load("temp/model.pdparams")
prog.set_state_dict(state_dict)
  • 保存了参数和模型的加载
prog = paddle.load("temp/model.pdmodel")

3.训练部署场景的模型参数保存载入

3.1 动态图模型&参数保存载入(训练推理)

若要同时保存/载入动态图模型结构和参数,可以使用 paddle.jit.save/load 实现。

3.1.1动转静训练 + 模型&参数保存

动转静训练相比直接使用动态图训练具有更好的执行性能,训练完成后,直接将目标Layer传入 paddle.jit.save 保存即可。

3.1.2 动态图训练 + 模型&参数保存

动态图模式相比动转静模式更加便于调试,如果你仍需要使用动态图直接训练,也可以在动态图训练完成后调用 paddle.jit.save 直接保存模型和参数。

3.1.3 动态图模型&参数载入

载入模型参数,使用 paddle.jit.load 载入即可,载入后得到的是一个Layer的派生类对象 TranslatedLayer , TranslatedLayer 具有Layer具有的通用特征,支持切换 train 或者 eval 模式,可以进行模型调优或者预测。

3.2 静态图模型&参数保存载入(推理部署)

保存/载入静态图推理模型,可以通过 paddle.static.save/load_inference_model 实现。

3.2.1静态图推理模型&参数保存

静态图导出推理模型需要指定导出路径、输入、输出变量以及执行器。 save_inference_model 会裁剪Program的冗余部分,并导出两个文件: path_prefix.pdmodel 、 path_prefix.pdiparams 。

# Save the inference model
path_prefix = "./infer_model"
paddle.static.save_inference_model(path_prefix, [image], [hidden_b], exe)

3.2.2静态图推理模型&参数载入

载入静态图推理模型时,输入给 load_inference_model 的路径必须与 save_inference_model 的一致。

[inference_program, feed_target_names, fetch_targets] = (paddle.static.load_inference_model(path_prefix, exe))
tensor_img = np.array(np.random.random((64, 784)), dtype=np.float32)
results = exe.run(inference_program,feed={feed_target_names[0]: tensor_img},fetch_list=fetch_targets)

paddlepaddle(六)模型保存与载入相关推荐

  1. 『TensorFlow』模型保存和载入方法汇总

    一.TensorFlow常规模型加载方法 保存模型 tf.train.Saver()类,.save(sess, ckpt文件目录)方法 参数名称 功能说明 默认值 var_list Saver中存储变 ...

  2. Tensorflow训练的模型,如何保存与载入?

    Tensorflow训练的模型,如何保存与载入? 目的:学习tensorflow框架的DNN,掌握如何将tensorflow训练得到的模型保存并载入,做预测? 内容: 1.tensorflow模型保存 ...

  3. PaddlePaddle飞桨OCR文本检测——更改模型保存间隔(六)

    先看配置文件中关于保存的参数 epoch_num: 总的训练轮数 print_batch_step: 每隔多少个batch打印一回信息 save_model_dir: 模型保存路径 save_epoc ...

  4. ML之nyoka:基于nyoka库利用LGBMClassifier模型实现对iris数据集训练、保存为pmml模型并重新载入pmml模型进而实现推理

    ML之nyoka:基于nyoka库利用LGBMClassifier模型实现对iris数据集训练.保存为pmml模型并重新载入pmml模型进而实现推理 目录 基于nyoka库利用LGBMClassifi ...

  5. TF:利用TF的train.Saver将训练好的W、b模型文件保存+新建载入刚训练好模型(用于以后预测新的数据)

    TF:利用TF的train.Saver将训练好的W.b模型文件保存+新建载入刚训练好模型(用于以后预测新的数据) 目录 输出结果 代码设计 输出结果 代码设计 import tensorflow as ...

  6. Keras保存和载入训练好的模型和参数

    1.保存模型 my_model = create_model_function( ...... )my_model.compile( ...... )my_model.fit( ...... )mod ...

  7. Pytorch(4)-模型保存-载入-eval()

    模型保存与提取 1. 整个模型 保存-载入 2. 仅模型参数 保存-载入 3. GPU/CPU模型保存与导入 4. net.eval()--固定模型随机项 神经网络模型在线训练完之后需要保存下来,以便 ...

  8. tensorboard ckpt pb 模型的输出节点_FlyAI小课堂:Tensorflow-模型和数据的保存和载入...

    在开始学习之前推荐大家可以多在FlyAI竞赛服务平台多参加训练和竞赛,以此来提升自己的能力.FlyAI是为AI开发者提供数据竞赛并支持GPU离线训练的一站式服务平台.每周免费提供项目开源算法样例,支持 ...

  9. pytorch多卡并行模型的保存与载入

    pytorch多卡并行模型的保存与载入 当模型是在数据并行方式在多卡上进行训练的训练和保存,那么载入的时候也是一样需要是多卡.并且,load_state_dict()函数的调用要放在DataParal ...

最新文章

  1. 不要用 SELECT *
  2. .NET(C#) Internals: 以一个数组填充的例子初步了解.NET 4.0中的并行(二)
  3. XJOI 3585 The rescue plan 营救计划 题解
  4. lombok pom.xml依赖
  5. 软件工程概论 课堂练习【静态结构建模——画出相应的对象模型】
  6. 解决引入 lombok 注解不生效
  7. Windows 平台下的C++代理类(供C # 使用)
  8. python开发mes系统_MES系统开发
  9. IIS7.5 配置MVC3.0 伪静态,不能访问html伪静态页面
  10. Linux删除文件夹的方法
  11. jquery悬停_jQuery悬停()
  12. Android NDK开发从0到1
  13. 外贸网站SEO优化要共享IP还是独立IP
  14. ES6 系列之我们来聊聊装饰器
  15. LINUX下调节屏幕亮度(Intel核显)-续
  16. 《非暴力沟通》学习笔记
  17. 【android 高德地图出现定位失败key鉴权失败,获取 SHA1,对比是否正确】
  18. 多用户商城系统有哪些盈利模式?
  19. 全网最全获取设计灵感创意的网站
  20. 两因素重复测量方差分析,史上最详细SPSS教程!

热门文章

  1. 向日葵远程控制引起惠普战笔记本亮度无法调节问题
  2. 好书推荐——从零开始学习 Julia 编程、数学和数据科学。
  3. java毕业设计题目
  4. UICC 之 USIM 详解全系列
  5. 如何快速制作Gif动图
  6. Coursera--DataStructure-加州理工大学圣地亚哥分校课程
  7. 想成为“独立名师”,你还要做到哪几点?
  8. Project与office 365冲突问题
  9. golang源代码阅读--Negroni
  10. 游戏本地文件乱码问题