PaddlePaddle / FastDeploy

⚡️An Easy-to-use and Fast Deep Learning Model Deployment Toolkit for ☁️Cloud 📱Mobile and 📹Edge. Including Image, Video, Text and Audio 20+ main stream scenarios and 150+ SOTA models with end-to-end optimization, multi-platform and multi-framework support.
https://www.paddlepaddle.org.cn/fastdeploy
Apache License 2.0
2.83k stars 443 forks source link

A311D部署PP-ShiTuV2的特征提取模型general_PPLCNetV2_base_pretrained_v1.0报错。 #1518

Closed Taichipeace closed 1 year ago

Taichipeace commented 1 year ago

问题日志及出现问题的操作流程

【模型跑不通】

python tools/export_model.py -c ppcls/configs/GeneralRecognitionV2/GeneralRecognitionV2_PPLCNetV2_base.yaml -o Global.pretrained_model=../general_PPLCNetV2_base_pretrained_v1.0 -o Global.device=cpu use_shared_conv=False

导出模型的文件里,并没有inference_cls.yaml文件,所以直接使用这个yaml文件:https://github.com/PaddlePaddle/PaddleClas/blob/release/2.5/ppcls/configs/GeneralRecognitionV2/GeneralRecognitionV2_PPLCNetV2_base.yaml

用到的文件和模型已经打包上传source_code.zip,其中包含:

提示看是模型精度的问题,但是不知道该如何设置,请大佬指点。

jiangjiajun commented 1 year ago

可能原因是虽然名字都叫PPLCNet,但不一定模型结构一样。可以自行下载FD中提供的PPLCNet和你自己的PPLCNet,通过Netron打开可视化看他们的输入输出是否一样

Taichipeace commented 1 year ago

可能原因是虽然名字都叫PPLCNet,但不一定模型结构一样。可以自行下载FD中提供的PPLCNet和你自己的PPLCNet,通过Netron打开可视化看他们的输入输出是否一样

佳军老师您好,FD的PaddleClas模型是resnet50_vd_ptq,输入输出如下: image

我使用的特征提取模型为:general_PPLCNetV2_base_pretrained_v1.0.pdparams,导出后模型的输入输出为: image

他们输入输出都是float32,请问会不会是因为推理代码里自动先将模型转成了int8,才会有如上的报错? 那在代码里该如何修改呢?

jiangjiajun commented 1 year ago

那么就是预处理的infer.yml文件内容差异导致

Taichipeace commented 1 year ago

那么就是预处理的infer.yml文件内容差异导致

您说的这一点确实我也觉得奇怪,我用这个命令导出模型时,并没有同时生成infer.yml文件。

python tools/export_model.py -c ppcls/configs/GeneralRecognitionV2/GeneralRecognitionV2_PPLCNetV2_base.yaml -o Global.pretrained_model=../general_PPLCNetV2_base_pretrained_v1.0 -o Global.device=cpu use_shared_conv=False

之前使用PaddleDetection时,使用export_model.py导出模型是会同时生成infer.yml的。

所以,这次我就直接把 PaddleClas/ppcls/configs/GeneralRecognitionV2/GeneralRecognitionV2_PPLCNetV2_base.yaml 当做 infer.yml使用了,附件是FD的resnet50_vd_ptq的inference_cls.yaml 文件:inference_cls.zip

请问在导出PaddleClas的模型时,如何才能同时获得内容正确的 inference_cls.yaml 文件呢? 是要在导出时设置什么参数么?

Taichipeace commented 1 year ago

问题解决了。 如果是PaddleClas的模型,可以直接通用resnet50_vd_ptq的inference_cls.yaml 文件。 谢谢佳军老师!

Hongyuan-Liu commented 1 year ago

PP-ShiTuV2的特征提取用fastdeploy什么接口呢,用 fastdeploy::vision::faceid::ArcFace提特征吗,但好像这个接口报错