Paddle 静态图模式下如何在一个program中训练两个模型,保存并分别部署

zour9fqk  于 2021-11-29  发布在  Java
关注(0)|答案(3)|浏览(255)

padddlepaddle = 1.7
静态图模式下,想 run一次跑两个模型:model1和model2,拿到两个损失:loss1和loss2, 总loss = loss1 + loss2。优化loss损失
部署时,想要单独调用model1和model2,要怎么在操作呢。
要实现的效果在keras里类似于:

查现有方法困惑点在:在整个exe.run结束之后,fluid.io.save_inference_model 保存了整个program。不知道怎么拿中间的model1,model2.

为使您的问题得到快速解决,在建立Issue前,请您先通过如下方式搜索是否有相似问题:【搜索issue关键字】【使用labels筛选】【官方文档】

建立issue时,为快速解决问题,请您根据使用情况给出如下信息:

  • 标题:简洁、精准描述您的问题,例如“ssd 模型前置lstm报错  ”
  • 版本、环境信息:

   1)PaddlePaddle版本:请提供PaddlePaddle版本号,例如1.1或CommitID
   2)CPU:请提供CPU型号,MKL/OpenBlas/MKLDNN/等数学库的使用情况
   3)GPU:请提供GPU型号,CUDA和CUDNN版本号
   4)系统环境:请说明系统类型、版本(例如Mac OS 10.14),Python版本
注:您可以通过执行summary_env.py获取以上信息。

  • 模型信息

   1)模型名称 2)使用数据集名称 3)使用算法名称 4)模型链接

  • 复现信息:如为报错,请给出复现环境、复现步骤
  • 问题描述:请详细描述您的问题,同步贴出报错信息、日志/代码关键片段

Thank you for contributing to PaddlePaddle.
Before submitting the issue, you could search issue in the github.Probably there was a similar issue submitted or resolved before.
If there is no solution,please make sure that this is a issue of models including the following details:

System information

-PaddlePaddle version (eg.1.1)or CommitID
-CPU: including CPUMKL/OpenBlas/MKLDNN version
-GPU: including CUDA/CUDNN version
-OS Platform (eg.Mac OS 10.14)
-Python version
-Name of Models&Dataset/details of operator
Note: You can get most of the information by running summary_env.py.

To Reproduce

Steps to reproduce the behavior

Describe your current behavior
Code to reproduce the issue
Other info / logs

pgpifvop

pgpifvop2#

如果想拆开的话可以调用两次save_infrence_model

4xrmg8kj

4xrmg8kj3#

save_infrence_model时提供target_vars参数能够裁剪保存的模型,调用两次save_infrence_model并且提供不同的target_vars应该就可以了

相关问题