首页 Paddle框架 帖子详情
训练的时候没问题,inference的时候出错
收藏
快速回复
Paddle框架 问答深度学习模型训练 1773 1
训练的时候没问题,inference的时候出错
收藏
快速回复
Paddle框架 问答深度学习模型训练 1773 1
# -*- coding: UTF-8 -*-
import paddle
import paddle.fluid as fluid
import numpy as np
import pickle
import pdb


#读取数据
def get_data(seq_path = "../bandwidth_dataset/data_interval_300.pickle"):
    with open(seq_path, 'rb') as f:
        data = pickle.load(f)
    return data

def prediction(future):
    data = get_data()
    mean = np.mean(data)
    std = np.std(data)
    input = np.expand_dims(data[-12:], axis = 1).tolist()
    predict = []
    place = fluid.CPUPlace()
    exe = fluid.Executor(place)
    path = "./model"
    [inference_program, feed_target_names, fetch_targets] = \
        fluid.io.load_inference_model(dirname=path, executor=exe)

    for i in range(future):
        normal_input = (input-mean)/std
        #normal_input:(12,1)的np array
        lod_tensor_input = fluid.create_lod_tensor(normal_input,[[12]], place)


        results = exe.run(inference_program, \
            feed={feed_target_names[0]:normal_input},fetch_list=fetch_targets)


prediction(1)

 

报错如下

Traceback (most recent call last):
  File "predict.py", line 86, in 
    prediction(1)
  File "predict.py", line 75, in prediction
    feed={feed_target_names[0]:normal_input},fetch_list=fetch_targets)
  File "/home/work/.pyenv/versions/2.7.13/lib/python2.7/site-packages/paddle/fluid/executor.py", line 443, in run
    self.executor.run(program.desc, scope, 0, True, True)
paddle.fluid.core.EnforceNotMet: DataType of Paddle Op mul must be the same. Get 6 != 5 at [/paddle/paddle/fluid/framework/operator.cc:722]
PaddlePaddle Call Stacks:
0       0x7fbb1b4e3376p paddle::platform::EnforceNotMet::EnforceNotMet(std::__exception_ptr::exception_ptr, char const*, int) + 486
1       0x7fbb1bcfe304p paddle::framework::OperatorWithKernel::IndicateDataType(paddle::framework::ExecutionContext const&) const + 580
2       0x7fbb1bcfe46fp paddle::framework::OperatorWithKernel::GetExpectedKernelType(paddle::framework::ExecutionContext const&) const + 47
3       0x7fbb1bcfe97bp paddle::framework::OperatorWithKernel::RunImpl(paddle::framework::Scope const&, boost::variant const&) const + 235
4       0x7fbb1bcfc450p paddle::framework::OperatorBase::Run(paddle::framework::Scope const&, boost::variant const&) + 208
5       0x7fbb1b576cdfp paddle::framework::Executor::RunPreparedContext(paddle::framework::ExecutorPrepareContext*, paddle::framework::Scope*, bool, bool, bool) + 255
6       0x7fbb1b577d30p paddle::framework::Executor::Run(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool) + 128
7       0x7fbb1b4f9fabp void pybind11::cpp_function::initialize(void (paddle::framework::Executor::*)(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&)::{lambda(paddle::framework::Executor*, paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool)#1}, void, paddle::framework::Executor*, paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool, pybind11::name, pybind11::is_method, pybind11::sibling>(pybind11::cpp_function::initialize(void (paddle::framework::Executor::*)(paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&)::{lambda(paddle::framework::Executor*, paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool)#1}&&, void (*)(paddle::framework::Executor*, paddle::framework::ProgramDesc const&, paddle::framework::Scope*, int, bool, bool), pybind11::name const&, pybind11::is_method const&, pybind11::sibling const&)::{lambda(pybind11::detail::function_call&)#3}::_FUN(pybind11::detail::function_call) + 555
8       0x7fbb1b4f246cp pybind11::cpp_function::dispatcher(_object*, _object*, _object*) + 2540
9             0x4a9cb8p PyEval_EvalFrameEx + 31592
10            0x4ab507p PyEval_EvalCodeEx + 2167
11            0x4a9a77p PyEval_EvalFrameEx + 31015
12            0x4a9b98p PyEval_EvalFrameEx + 31304
13            0x4ab507p PyEval_EvalCodeEx + 2167
14            0x4ab612p PyEval_EvalCode + 50
15            0x4cc74ep PyRun_FileExFlags + 318
16            0x4cc977p PyRun_SimpleFileExFlags + 231
17            0x415112p Py_Main + 2850
18        0x318ae1ecddp __libc_start_main + 253
19            0x4141f9p

 

0
收藏
回复
全部评论(1)
时间顺序
d
dagelailege1
#2 回复于2018-07

已经解决了,训练的时候数据类型是np.float32,预测的时候读进去默认是float64,哎,注意格式一致啊!!

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