Skip to content

  • 体验新版
    • 正在加载...
  • 登录
  • PaddlePaddle
  • Paddle
  • Issue
  • #23763

P
Paddle
  • 项目概览

PaddlePaddle / Paddle
大约 2 年 前同步成功

通知 2325
Star 20933
Fork 5424
  • 代码
    • 文件
    • 提交
    • 分支
    • Tags
    • 贡献者
    • 分支图
    • Diff
  • Issue 1423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
  • Wiki 0
    • Wiki
  • 分析
    • 仓库
    • DevOps
  • 项目成员
  • Pages
P
Paddle
  • 项目概览
    • 项目概览
    • 详情
    • 发布
  • 仓库
    • 仓库
    • 文件
    • 提交
    • 分支
    • 标签
    • 贡献者
    • 分支图
    • 比较
  • Issue 1,423
    • Issue 1,423
    • 列表
    • 看板
    • 标记
    • 里程碑
  • 合并请求 543
    • 合并请求 543
  • Pages
  • 分析
    • 分析
    • 仓库分析
    • DevOps
  • Wiki 0
    • Wiki
  • 成员
    • 成员
  • 收起侧边栏
  • 动态
  • 分支图
  • 创建新Issue
  • 提交
  • Issue看板
已关闭
开放中
Opened 4月 12, 2020 by saxon_zh@saxon_zhGuest

使用TracedLayer保存的模型,load不进来

Created by: hubu-wangpei

版本: Name: paddlepaddle Version: 1.7.1 保存了模型后,运行下面的代码报错 ValueError: type to initialized an Operator can not be None.

place = fluid.CPUPlace()
exe = fluid.Executor(place)

path = "./saved_infer_model"

[inference_program, feed_target_names, fetch_targets] = (fluid.io.load_inference_model(dirname=path, executor=exe))

报错

---------------------------------------------------------------------------ValueError                                Traceback (most recent call last)<ipython-input-39-188e36eee31c> in <module>
      7 
      8 # 示例一: 不需要指定分布式查找表的模型加载示例,即训练时未用到distributed lookup table。
----> 9 [inference_program, feed_target_names, fetch_targets] = (fluid.io.load_inference_model(dirname=path, executor=exe))
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/io.py in load_inference_model(dirname, executor, model_filename, params_filename, pserver_endpoints)
   1369         params_filename = params_filename
   1370 
-> 1371     program = Program.parse_from_string(program_desc_str)
   1372     if not core._is_program_version_supported(program._version()):
   1373         raise ValueError("Unsupported program version: %d\n" %
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py in parse_from_string(binary_str)
   4230         p.desc = core.ProgramDesc(binary_str)
   4231         p.blocks = [Block(p, i) for i in six.moves.range(p.desc.num_blocks())]
-> 4232         p._sync_with_cpp()
   4233         return p
   4234 
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py in _sync_with_cpp(self)
   4424             self.blocks.append(Block(self, block_idx))
   4425         for block in self.blocks:
-> 4426             block._sync_with_cpp()
   4427 
   4428     def _copy_param_info_from(self, other):
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py in _sync_with_cpp(self)
   2643         for index in range((end_index + 1), len(ops_in_cpp)):
   2644             op_desc = ops_in_cpp[index]
-> 2645             op = Operator(self, op_desc)
   2646             self.ops.append(op)
   2647 
/opt/conda/envs/python35-paddle120-env/lib/python3.7/site-packages/paddle/fluid/framework.py in __init__(self, block, desc, type, inputs, outputs, attrs)
   1757             if type is None:
   1758                 raise ValueError(
-> 1759                     "`type` to initialized an Operator can not be None.")
   1760             self._type = type
   1761             self.attrs = attrs if attrs else {}
ValueError: `type` to initialized an Operator can not be None.

运行load_inference_model这个示例也报同样的错误

import paddle.fluid as fluid
import numpy as np

# 构建模型
main_prog = fluid.Program()
startup_prog = fluid.Program()
with fluid.program_guard(main_prog, startup_prog):
    data = fluid.layers.data(name="img", shape=[64, 784], append_batch_size=False)
    w = fluid.layers.create_parameter(shape=[784, 200], dtype='float32')
    b = fluid.layers.create_parameter(shape=[200], dtype='float32')
    hidden_w = fluid.layers.matmul(x=data, y=w)
    hidden_b = fluid.layers.elementwise_add(hidden_w, b)
place = fluid.CPUPlace()
exe = fluid.Executor(place)
exe.run(startup_prog)

# 保存预测模型
path = "./infer_model"
fluid.io.save_inference_model(dirname=path, feeded_var_names=['img'],target_vars=[hidden_b], executor=exe, main_program=main_prog)

# 示例一: 不需要指定分布式查找表的模型加载示例,即训练时未用到distributed lookup table。
[inference_program, feed_target_names, fetch_targets] = (fluid.io.load_inference_model(dirname=path, executor=exe))
tensor_img = np.array(np.random.random((1, 64, 784)), dtype=np.float32)
results = exe.run(inference_program,
          feed={feed_target_names[0]: tensor_img},
          fetch_list=fetch_targets)
指派人
分配到
无
里程碑
无
分配里程碑
工时统计
无
截止日期
无
标识: paddlepaddle/Paddle#23763
渝ICP备2023009037号

京公网安备11010502055752号

网络110报警服务 Powered by GitLab CE v13.7
开源知识
Git 入门 Pro Git 电子书 在线学 Git
Markdown 基础入门 IT 技术知识开源图谱
帮助
使用手册 反馈建议 博客
《GitCode 隐私声明》 《GitCode 服务条款》 关于GitCode
Powered by GitLab CE v13.7