首页 Paddle框架 帖子详情
使用executor和使用predictor的预测结果有差异
收藏
快速回复
Paddle框架 问答深度学习 779 1
使用executor和使用predictor的预测结果有差异
收藏
快速回复
Paddle框架 问答深度学习 779 1

1)PaddlePaddle版本:paddle 1.6
2)Python版本:3.7
现象:同样的数据使用load_inference_model加载,并使用executor进行预测输出的结果是正常的。将输入数据转为PaddleTensor,并使用AnalysisConfig、create_paddle_predictor加载模型,进行预测,预测结果不对。加载以及预测部分的代码如下:

加载部分

model_dir = 'model/freeze-model-1127'
predictor_config = AnalysisConfig(model_dir)
predictor_config.disable_gpu()
predictor = create_paddle_predictor(predictor_config)

数据部分

tensor_img = PaddleTensor(tensor_img)
tensor_img.name = 'image'
tensor_img.dtype = PaddleDType.FLOAT32
image_shape = PaddleTensor(image_shape[np.newaxis, :])
image_shape.name = 'image_shape'
image_shape.dtype = PaddleDType.INT32

预测部分

outs = predictor.run([tensor_img, image_shape])

其中,转换前的 tensor_img 以及 image_shape为送入executor的数据,因此在数据上应该不存在不相同的问题。求看一下,是在使用方法方面有什么地方存在问题吗?

0
收藏
回复
全部评论(1)
时间顺序
AIStudio784544
#2 回复于2019-12

经验证C++的API可以得出结果。
使用Python的预测API,需要在创建PaddleTensor的时候加上copy(),可以正常执行。示例如下:

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