PaddlePaddle / Paddle-Lite

PaddlePaddle High Performance Deep Learning Inference Engine for Mobile and Edge (飞桨高性能深度学习端侧推理引擎)
https://www.paddlepaddle.org.cn/lite
Apache License 2.0
6.89k stars 1.6k forks source link

Paddle-Lite通过X2Paddle转化出的nb模型出错 #10506

Open littlecay opened 2 months ago

littlecay commented 2 months ago

我这边使用的yolov5的pth模型,转化成onnx之后,通过paddle-lite (2.13rc0)与 X2Paddle(1.4.1) 转化成了nb文件,试图部署在安卓环境下,报错 微信图片_20240426161351

使用的命令是 x2paddle --framework=onnx --model=onnx_model.onnx --save_dir=pd_model --to_lite=True --lite_valid_places=arm --lite_model_type=naive_buffer 不知道是什么问题?以及问一句,这种转化方式的分辨率是和onnx一致么?精度是多少呢?可以自己定义精度么?

shentanyue commented 1 month ago

您好,从报错信息来看,得不到有用的信息。 您可以使用x2paddle先保存成paddle的pd_model模型在cpu上运行看看,排除x2paddle的转换问题后,再使用paddle lite的opt工具将pdmodel转换为nb模型放在安卓环境运行。

转换方式的分辨率一般是与ONNX一致的,精度默认是fp32。 如果自己定义精度,可参考https://www.paddlepaddle.org.cn/lite/v2.12/demo_guides/android_app_demo.html ,使用fp16精度进行部署。

littlecay commented 1 month ago

可以使用x2paddle先保存成paddle的pd_model模型在cpu上运行 这步我之前验证了(用python),没有问题的。 paddle lite的opt工具将pdmodel转换为nb模型 这个就是用paddle官方C++代码,加载成功,调用就会崩溃,是在rk3588+麒麟系统上做的。 关于精度,我知道enable_fp16 设置为 ON,但是直接转化有个参数可以用INT8的精度,不知道这个是不是可以