首页 Paddle Inference 帖子详情
模型训练保存成功,并且加载预测模型成功,但是inference过程出错
收藏
快速回复
Paddle Inference 问答推理 1102 3
模型训练保存成功,并且加载预测模型成功,但是inference过程出错
收藏
快速回复
Paddle Inference 问答推理 1102 3

模型保存用的是fluid.io.save_inference_model接口,加载预测模型的时候对应用的是fluid.io.load_inference_model接口,这两步都没问题,但是在预测过程中:

if __name__ == '__main__':
    parser = argparse.ArgumentParser()
    parser.add_argument('--model', default='./model')
    parser.add_argument('--data', default='./data')
    args = parser.parse_args()

    conf = TiebaConf()
    conf.define_feature(conf.session_wise_features, conf.item_wise_features, conf.labels)

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

    inference_scope = fluid.core.Scope()
    with fluid.scope_guard(inference_scope):
        [inference_program, feed_target_names, fetch_targets] = \
                fluid.io.load_inference_model(args.model, exe)
        lines = []
        fin = open(args.data, 'r')
        for line in fin:
            lines.append(line)
            if len(lines) == conf.batch_size:
                network_output = exe.run(inference_program, feed=lines2tensors(lines, conf),
                        fetch_list=fetch_targets, return_numpy=False)
                lines = []
        if len(lines) > 0:
            network_output = exe.run(inference_program, feed=lines2tensors(lines, conf),
                    fetch_list=fetch_targets, return_numpy=False)

exe.run的时候会报错:

Traceback (most recent call last):
  File "eval.py", line 40, in <module>
    fetch_list=fetch_targets, return_numpy=False)
  File "/home/zenghongsheng/anaconda2/envs/python27/lib/python2.7/site-packages/paddle/fluid/executor.py", line 657, in run
    use_program_cache=use_program_cache)
  File "/home/zenghongsheng/anaconda2/envs/python27/lib/python2.7/site-packages/paddle/fluid/executor.py", line 755, in _run
    exe.run(program.desc, scope, 0, True, True, fetch_var_name)
paddle.fluid.core_avx.EnforceNotMet: Invoke operator reshape2 error.
Python Call stacks:
  File "/home/zenghongsheng/anaconda2/envs/python27/lib/python2.7/site-packages/paddle/fluid/framework.py", line 1774, in append_op
    attrs=kwargs.get("attrs", None))
  File "/home/zenghongsheng/anaconda2/envs/python27/lib/python2.7/site-packages/paddle/fluid/layer_helper.py", line 43, in append_op
    return self.main_program.current_block().append_op(*args, **kwargs)
  File "/home/zenghongsheng/anaconda2/envs/python27/lib/python2.7/site-packages/paddle/fluid/layers/nn.py", line 6840, in reshape
    "XShape": x_shape})
  File "/home/zenghongsheng/baidu/feedgr-ol/ntm/tools/qianmo/mpi/model/tieba/dnn/debug/basic_model.py", line 166, in get_label
    target = layers.reshape(target, shape=[-1, 1])
  File "/home/zenghongsheng/baidu/feedgr-ol/ntm/tools/qianmo/mpi/model/tieba/dnn/debug/basic_model.py", line 228, in ff_bp
    target = self.get_label(slots)
  File "fleet_train.py", line 28, in <module>
    network_output = dnn.ff_bp(True)
C++ Call stacks:
holder_ should not be null
Tensor not initialized yet when Tensor::type() is called. at [/paddle/paddle/fluid/framework/tensor.h:139]
PaddlePaddle Call Stacks:
0       0x7fb4667b7888p void paddle::platform::EnforceNotMet::Init<std::string>(std::string, char const*, int) + 360
1       0x7fb4667b7bd7p paddle::platform::EnforceNotMet::EnforceNotMet(std::string const&, char const*, int) + 87
2       0x7fb4667b857bp paddle::framework::Tensor::type() const + 107
3       0x7fb466c5a2f6p paddle::operators::ReshapeOp::GetExpectedKernelType(paddle::framework::ExecutionContext const&) const + 102
4       0x7fb467b15d5bp paddle::framework::OperatorWithKernel::ChooseKernel(paddle::framework::RuntimeContext const&, paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) const + 235
5       0x7fb467b17218p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&, paddle::framework::RuntimeContext*) const + 728
6       0x7fb467b17821p paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) const + 529
7       0x7fb467b127c4p paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant<paddle::platform::CUDAPlace, paddle::platform::CPUPlace, paddle::platform::CUDAPinnedPlace, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_, boost::detail::variant::void_> const&) + 260
8       0x7fb46693998ep paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, bool, bool, bool) + 206
9       0x7fb46693ca1fp paddle::framework::Executor::Run(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool, std::vector<std::string, std::allocator<std::string> > const&, bool) + 143
10      0x7fb4667a9b2dp
11      0x7fb4667e6f9ep
12      0x7fb4fd501577p PyEval_EvalFrameEx + 28695
13      0x7fb4fd503a99p PyEval_EvalCodeEx + 2025
14      0x7fb4fd500f68p PyEval_EvalFrameEx + 27144
15      0x7fb4fd503a99p PyEval_EvalCodeEx + 2025
16      0x7fb4fd500f68p PyEval_EvalFrameEx + 27144
17      0x7fb4fd503a99p PyEval_EvalCodeEx + 2025
18      0x7fb4fd503cbap PyEval_EvalCode + 26
19      0x7fb4fd51d01dp
20      0x7fb4fd51e1c8p PyRun_FileExFlags + 120
21      0x7fb4fd51f3e8p PyRun_SimpleFileExFlags + 232
22      0x7fb4fd53167cp Py_Main + 2988
23      0x7fb4fc7c3cddp __libc_start_main + 253
24      0x7fb4fd60207fp

原先以为是因为没有初始化,但是加上初始化的代码(如下)仍报错

exe.run(fluid.default_startup_program())

麻烦帮忙解决一下这个问题,急。

0
收藏
回复
全部评论(3)
时间顺序
AIStudio785460
#2 回复于2019-10

复现环境我已经打包了,但是GitHub上传不了,麻烦私hi我发过去~多谢

0
回复
AIStudio785460
#3 回复于2019-10
@jerrywgz

原因是save_inference_model的时候没有save label slot,把label slot加上就可以了。多谢值班同学 帮忙解决!

0
回复
AIStudio785460
#4 回复于2019-11
0
回复
需求/bug反馈?一键提issue告诉我们
发现bug?如果您知道修复办法,欢迎提pr直接参与建设飞桨~
在@后输入用户全名并按空格结束,可艾特全站任一用户