picodet onnx转其它芯片支持格式时遇到

文章目录

报错信息

报错信息为:

Upsample(resize) Resize_0 not support attribute coordinate_transformation_mode:half_pixel.

解决方法

整个模型转换过程是:paddle 动态模型转成静态,再用paddle2onnx转成onnx,onnx再转成特定芯片的格式,这是最后一个环节出的问题,即onnx转特定AI芯片时,转换工具报出来错,下面找原因。

原代码中,用的paddle.nn.Upsample(scale_factor=2,mode="nearest"),在GPU上可以正常推理,但最终目的是为了上AI,所以必须把这个算子进行适配,好在该算子没有参数,无需对模型进行重新训练,只是说在转换上有地方有点问题。

经过多次尝试:解决方法就是升级paddle2onnx,从原来的0.90升到了1.03,对应的onnx1.9升级到1.12,paddle框架的版本都是2.3.2.所以不清楚是onnx的问题还是,paddle2onnx的问题;opset试过11和12,都解决不了问题;算子nn.Upsample改成 paddle.nn.functional.interpolate也不管用。

转换失败的算子如图:

转换成功的算子:

从图上来看,paddle2onnx这个工具的问题可能是最大的。

两模型精度对比

正常来说,要对比是需要将onnx与原始paddle的静态图模型做对比。同时也要对比两个onnx的结果的差异,为了简单,只要对onnx模型做相同输入下的输出即可,因为只是差一个算子,所以归根结底是对比这一个算子的。

相关推荐
cooldream2009几秒前
构建智能知识库问答助手:LangChain与大语言模型的深度融合实践
人工智能·语言模型·langchain·rag
antonytyler3 分钟前
机器学习实践项目(二)- 房价预测增强篇 - 模型训练与评估:从多模型对比到小网格微调
人工智能·机器学习
数据库安全10 分钟前
世界互联网大会|美创科技无侵入数据安全多智体治理技术首发
大数据·人工智能·科技·数据安全
海底的星星fly1 小时前
【Prompt学习技能树地图】生成知识提示技术的深度解析与应用
人工智能·学习·prompt
赵得C1 小时前
智能体的范式革命:华为全栈技术链驱动下一代AI Agent
人工智能·华为·ai·ai编程
嵌入式-老费2 小时前
自己动手写深度学习框架(感知机)
人工智能·深度学习
化作星辰2 小时前
使用 PyTorch来构建线性回归的实现
人工智能·pytorch·深度学习
mm-q29152227292 小时前
【天野学院5期】 第5期易语言半内存辅助培训班,主讲游戏——手游:仙剑奇侠传4,端游:神魔大陆2
人工智能·算法·游戏
谢景行^顾2 小时前
深度学习-损失函数
人工智能·深度学习
xier_ran2 小时前
关键词解释: LoRA(Low-Rank Adaptation)详解
人工智能