Paddle2ONNX icon indicating copy to clipboard operation
Paddle2ONNX copied to clipboard

转换 tinypose 模型时丢失了split算子的 split attribute 属性

Open shentanyue opened this issue 2 years ago • 13 comments

paddle2onnx 版本: 最新 release 版本

模型信息 1)tinypose 官方发布的 两种尺寸都试过 paddle lite官网链接下载的 2)模型链接 https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/configs/keypoint/tiny_pose

复现信息:采用opt10 opt11 opt12 以及以上版本都可以转换出 相应的onnx ,采用opt9以及一下版本不行! 重点来了,转换出来的模型split op ,明显缺少了一个 attribute 字段 “split” ,这说明在转的时候丢失了,具体如下图 image 正常的如上图,但是用paddle2onnx转换出来的,虽然没有错误,但是如下图 image 可以看出,缺少了 一个 split 字段,这明显不对!!! 属于严重bug吧? 备注: paddle2onnx 用的也是最新版本 release的,以及上一个版本,基本都尝试过,结果一样。 麻烦,请帮忙看下这个问题,感觉应该蛮重要的!!!多谢 BR

原issue链接:https://github.com/PaddlePaddle/Paddle-Lite/issues/8905

shentanyue avatar Apr 20 '22 14:04 shentanyue

tks, 麻烦,paddle2onnx能够快速跟进这个问题哈,多谢 另外顺便问下,我如果有许多模型比如tensorflow和pytorch caffe等的,我想转为paddlelite用,那么咱们会提供专门的转换吗?支持的最好的是pytorch2paddle 还是 onnx2paddle,官方您推荐哪个?
BR

2050airobert avatar Apr 20 '22 14:04 2050airobert

tks, 麻烦,paddle2onnx能够快速跟进这个问题哈,多谢 另外顺便问下,我如果有许多模型比如tensorflow和pytorch caffe等的,我想转为paddlelite用,那么咱们会提供专门的转换吗?支持的最好的是pytorch2paddle 还是 onnx2paddle,官方您推荐哪个? BR

使用X2Paddle即可。 使用Pytorch->Script转还是ONNX->Script转,两者都是可以的,如有问题可在X2Paddle的Repo下反馈,会有负责的同学跟进

jiangjiajun avatar Apr 21 '22 03:04 jiangjiajun

hi, 请问下,split算子 缺少了 一个 split 字段的问题,有人在帮忙看吗? BR

2050airobert avatar Apr 21 '22 07:04 2050airobert

hi, 请问下,split算子 缺少了 一个 split 字段的问题,有人在帮忙看吗? BR

split丢失,有影响模型转换结果吗?split丢失问题是,因为当num_or_sections为int的时候,split是可以默认不设置的(虽然onnx文档没有提示为可选)@2050airobert

neonhuang avatar Apr 21 '22 08:04 neonhuang

hi, 请问下,split算子 缺少了 一个 split 字段的问题,有人在帮忙看吗? BR

我不知道你到底使用哪个模型转的,你可以描述清楚点吗

neonhuang avatar Apr 21 '22 08:04 neonhuang

我再发一遍完整的信息吧,麻烦您仔细看下

paddle2onnx 版本: 最新 release 版本

模型信息 1)tinypose 官方发布的 两种尺寸都试过 paddle lite官网链接下载的 2)模型链接 [https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/configs/keypoint/tiny_pose](https://github.com/PaddlePaddle/PaddleDetection/tree/release/2.3/configs/keypoint/tiny_pose%5B%5D(https://user-images.githubusercontent.com/8407513/164242103-b54ea03b-8566-4fca-9c2b-d1d8788c5190.png)%5B%5D(https://user-images.githubusercontent.com/8407513/164242280-9c57a068-e28e-4b62-aace-d61926f0dad9.png))

复现信息:采用opt10 opt11 opt12 以及以上版本都可以转换出 相应的onnx ,采用opt9以及一下版本不行! 重点来了,转换出来的模型split op ,明显缺少了一个 attribute 字段 “split” ,这说明在转的时候丢失了,具体如下图 image

正常的如上图,但是用paddle2onnx转换出来的,虽然没有错误,但是如下图 image 可以看出,缺少了 一个 split 字段,这明显不对!!! 属于严重bug吧? 备注: paddle2onnx 用的也是最新版本 release的,以及上一个版本,基本都尝试过,结果一样。 麻烦,请帮忙看下这个问题,感觉应该蛮重要的!!!多谢

2050airobert avatar Apr 21 '22 09:04 2050airobert

附件备注: 模型信息 实际上就是paddle 官网的两个模型 都试过了 image

2050airobert avatar Apr 21 '22 09:04 2050airobert

附件备注: 模型信息 实际上就是paddle 官网的两个模型 都试过了 image

我修复了,你看一下,https://github.com/PaddlePaddle/Paddle2ONNX/pull/706

neonhuang avatar Apr 21 '22 09:04 neonhuang

附件备注: 模型信息 实际上就是paddle 官网的两个模型 都试过了 image

缺失split,对你使用有啥影响?

neonhuang avatar Apr 21 '22 09:04 neonhuang

当前node如何知道自己该split成啥样给下个node,总之缺少了个重要attribute是不够完善的。 另外,上面说修复好的neonhuang,是啥意思啊,没看懂。 没有详细点的步骤,我重新下版本,哪个版本的?

2050airobert avatar Apr 21 '22 09:04 2050airobert

当前node如何知道自己该split成啥样给下个node,总之缺少了个重要attribute是不够完善的。 另外,上面说修复好的neonhuang,是啥意思啊,没看懂。 没有详细点的步骤,我重新下版本,哪个版本的?

你下载我修复的版本,安装paddle2onnx试试,https://github.com/neonhuang/Paddle2ONNX/tree/new_split, pip3.7 uninstall paddle2onnx python setup.py install

neonhuang avatar Apr 21 '22 11:04 neonhuang

1 麻烦您看下这个long正常吗?neonhuang image 2 您知道如何让转出onnx模型的identity 模块不存在,或者去掉还不影响结果呢?paddle2onnx可以吗,有这个分支可用吗?

2050airobert avatar Apr 21 '22 11:04 2050airobert

    1. 上面的日志提示没有问题,是由于依赖的部分库函数即将deprecated给出的警告信息,忽略即可
    1. 试一下在转换时,在命令后添加--enable_dev_version True,我们在新的版本中添加了一些优策略。需要安装0.9.4的paddle2onnx

jiangjiajun avatar Apr 21 '22 14:04 jiangjiajun