PaddlePaddle / PaddleDetection

Object Detection toolkit based on PaddlePaddle. It supports object detection, instance segmentation, multiple object tracking and real-time multi-person keypoint detection.
Apache License 2.0
12.75k stars 2.88k forks source link

PicoDet 在 Sering 部署问题 #5328

Closed lguowang closed 2 years ago

lguowang commented 2 years ago

你好,我用pp2.3训练了PicoDet,然后pp(develop)导出模型进行sering部署, 但预测时出现主要的错误:{'err_no': 8, 'err_msg': "(data_id=0 log_id=0) [ppyolo_v3|0] Failed to postprocess: 'scale_factor.lod'", 'key': [], 'value': [], 'tensors': []}

请问我要怎么修改才能让PicoDet在Sering上运行?

说明:服务和客户端参考的是Serving/examples/Pipeline/PaddleDetection/ppyolo_mbv3/下的 web_service.py 和pipeline_http_client.py

serving_server 中的 serving_server_conf.prototxt :

feed_var { name: "image" alias_name: "image" is_lod_tensor: false feed_type: 1 shape: 3 shape: 416 shape: 416 } fetch_var { name: "save_infer_model/scale_0.tmp_1" alias_name: "save_infer_model/scale_0.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_1.tmp_1" alias_name: "save_infer_model/scale_1.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_2.tmp_1" alias_name: "save_infer_model/scale_2.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_3.tmp_1" alias_name: "save_infer_model/scale_3.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_4.tmp_1" alias_name: "save_infer_model/scale_4.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_5.tmp_1" alias_name: "save_infer_model/scale_5.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_6.tmp_1" alias_name: "save_infer_model/scale_6.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 } fetch_var { name: "save_infer_model/scale_7.tmp_1" alias_name: "save_infer_model/scale_7.tmp_1" is_lod_tensor: true fetch_type: 1 shape: -1 }

我配置的config.yml:

dag: is_thread_op: false tracer: interval_s: 20 http_port: 18888 op: yolov3: concurrency: 10 local_service_conf: client_type: local_predictor device_type: 1 devices: '2' fetch_list:

请问我要怎么修改才能让PicoDet在Sering上运行?

heavengate commented 2 years ago

{'err_no': 8, 'err_msg': "(data_id=0 log_id=0) [ppyolo_v3|0] Failed to postprocess: 'scale_factor.lod'", 'key': [], 'value': [], 'tensors': []}

看你报错用的还是ppyolo的部署配置吧,可以参考文档重新导出一下picodet的模型 https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/deploy/serving#3-导出模型

lguowang commented 2 years ago

{'err_no': 8, 'err_msg': "(data_id=0 log_id=0) [ppyolo_v3|0] Failed to postprocess: 'scale_factor.lod'", 'key': [], 'value': [], 'tensors': []}

看你报错用的还是ppyolo的部署配置吧,可以参考文档重新导出一下picodet的模型 https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/deploy/serving#3-导出模型

我们项目需要用 web_service 进行部署,有相关的参考链接吗? 需要picodet的,不是ppyolo的