PaddlePaddle / Paddle

PArallel Distributed Deep LEarning: Machine Learning Framework from Industrial Practice (『飞桨』核心框架,深度学习&机器学习高性能单机、分布式训练和跨平台部署)
http://www.paddlepaddle.org/
Apache License 2.0
22.24k stars 5.58k forks source link

使用paddlepaddle-gpu 2.6.0.post116训练paddleocrv2.7.1识别模型, paddle_lite_opt转换为nb模型报错 No attributes called beta found for swish #62692

Open equalman opened 8 months ago

equalman commented 8 months ago

请提出你的问题 Please ask your question

版本、环境信息: 1)paddlepaddle-gpu 版本:2.6.0.post116 paddlelite 版本 当前develop分支8795a4d3d v2.13rc v2.10 paddleocr版本 v2.7.1 2)Host 环境:x86_64 Ubuntu 20.04 3)运行设备环境:x86_64 Ubuntu 20.04转换为nb模型 rk3568运行 复现信息: 1、python tools/train.py -c configs/rec/PP-OCRv3/ch_PP-OCRv3_rec_distillation.yml 训练模型 ch_PP-OCRv3_rec_distillation.zip python tools/export_model.py -c "inference_model/ch_PP-OCRv3_rec_distillation/ch_PP-OCRv3_rec_distillation.yml" -o Global.pretrained_model="inference_model/ch_PP-OCRv3_rec_distillation/best_accuracy.pdparams" Global.save_inference_dir="inference_model/ch_PP-OCRv3_rec_distillation/new" Global.checkpoints="" 2、python 3.8.10 安装paddlelite v2.10 或者v2.13rc 或者编译paddlelite源码生成whl安装 3、paddle_lite_opt --model_file=inference.pdmodel --param_file=inference.pdiparams --optimize_out=./inference_vdevelop --valid_targets=arm --optimize_out_type=naive_buffer 问题描述: paddelite develop分支如下结果 Loading topology data from inference.pdmodel Loading params data from inference.pdiparams

  1. Model is successfully loaded! [F 3/13 17: 2:13.321 ...e-Lite/lite/core/model/general/op_desc.h:118 GetAttr] Check failed: it != attrs().end(): No attributes called beta found for swish [F 3/13 17: 2:13.321 ...e-Lite/lite/core/model/general/op_desc.h:118 GetAttr] Check failed: it != attrs().end(): No attributes called beta found for swish Traceback (most recent call last): File "/usr/local/bin/paddle_lite_opt", line 142, in main() File "/usr/local/bin/paddle_lite_opt", line 139, in main a.run() RuntimeError: Paddle-Lite C++ Exception: [F 3/13 17: 2:13.321 ...e-Lite/lite/core/model/general/op_desc.h:118 GetAttr] Check failed: it != attrs().end(): No attributes called beta found for swish 其他paddlelite版本也是类似错误 下载官方模型https://paddleocr.bj.bcebos.com/PP-OCRv3/chinese/ch_PP-OCRv3_rec_infer.tar 转换nb模型没问题, 根据报错信息 swish激活函数在官方模型中有beta属性, 但是自己训练的模型中没有这个属性, 如下使用netron软件查看的结果 image image 现在问题是为何自己训练模型中swish激活函数没有beta属性, 怎么才能给它加上, 是否历史的paddlepaddle版本swish激活函数有beta属性?
equalman commented 8 months ago

应该是自训练模型中由paddle.nn.Swish模块生成的模型节点没有beta属性, 这个是与paddlepaddle版本有关吧? 或者某种配置影响了这个beta属性?

equalman commented 8 months ago

你好 这个问题怎么处理? @TingquanGao

TingquanGao commented 7 months ago

目前paddlelite对该算子尚未支持,我们会评估该需求。

TingquanGao commented 7 months ago

想问下,是有在移动端设备部署的需求吗?

equalman commented 7 months ago

想问下,是有在移动端设备部署的需求吗?

最终在RK3568、RK3588芯片上

equalman commented 7 months ago

目前paddlelite对该算子尚未支持,我们会评估该需求。

为何官方下载的PP-OCRv4模型中的swish节点有beta属性呢, 用paddlelite可以转换的, paddlelite源码这个算子对beta属性是有要求的

equalman commented 7 months ago

目前paddlelite对该算子尚未支持,我们会评估该需求。

是否是paddlelite对有无beta属性的swish激活函数都做支持?

equalman commented 7 months ago

目前paddlelite对该算子尚未支持,我们会评估该需求。

为何官方下载的PP-OCRv4模型中的swish节点有beta属性呢, 用paddlelite可以转换的, paddlelite源码这个算子对beta属性是有要求的

image paddlelite源码里是这样的, 包括develop分支

equalman commented 7 months ago

paddlelite paddleocr两个项目的issue区也有其他人提出类似问题

Tonigt commented 4 months ago

有后续了吗?自己训练的模型,想用在移动端,pdmodel 转.nb 遇到这个问题