登录
注册
开源
企业版
高校版
搜索
帮助中心
使用条款
关于我们
开源
企业版
高校版
私有云
模力方舟
AI 队友
登录
注册
轻量养虾,开箱即用!低 Token + 稳定算力,Gitee & 模力方舟联合出品的 PocketClaw 正式开售!点击了解详情
代码拉取完成,页面将自动刷新
开源项目
>
人工智能
>
AI-人工智能
&&
捐赠
捐赠前请先登录
取消
前往登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
Watch
不关注
关注所有动态
仅关注版本发行动态
关注但不提醒动态
224
Star
1.3K
Fork
1.1K
Ascend
/
samples
代码
Issues
41
Pull Requests
99
Wiki
统计
流水线
服务
JavaDoc
PHPDoc
质量分析
Jenkins for Gitee
腾讯云托管
腾讯云 Serverless
悬镜安全
阿里云 SAE
Codeblitz
SBOM
我知道了,不再自动展开
更新失败,请稍后重试!
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
atc转换onnx模型,om网络结构极度变形,精度大大下降【AICC】【重要】
DONE
#I6HBF9
推理问题
cuibaobao
创建于
2023-02-23 17:13
一、问题现象(附报错日志上下文): 计算中心的客户提供的onnx模型使用atc转换成om,发现 1、加入动态batch的设置后,om模型的网络结构极度变形;不加入动态batch设置项后,经过atc转换的om模型网络结构是正常的。 2、加入aipp配置文件后的om模型,在使用精度对比工具对比余弦相似度后发现,跟原始的onnx模型的算子相差甚远;不加入aipp配置的om模型跑出的余弦相似度跟原始onnx模型几乎一致,精度不变。 二、软件版本: -- CANN 版本 (CANN 5.1.RC1): --训练框架Pytorch 版本:1.10 --Python 版本 (Python 3.7.5): --操作系统版本 (Ubuntu 18.04): --昇腾芯片版本310P3和310 三、测试步骤: 客户的onnx原始模型的部分结构展示:  客户的atc转换命令: atc --model=./20221116192437_Pedestrian_MS288-896_2022-1116-Pedestrian_ig0.5_iouv0.5-0.95_yolov5m_ep4-best_map.onnx --framework=5 --output=20221205090611_Pedestrian_576x576_fp16_csc_true_buv_false --soc_version=Ascend310 --insert_op_conf=./aipp_ok_yuv.cfg --input_shape="images:-1,3,576,576" --dynamic_batch_size="1,2,4" --output_type=FP16 --input_format=NCHW --out_nodes="output" atc转换后发现om模型网络结构不对:  于是,去掉动态batch的设置项测试验证。atc转换命令如下 atc --model=./20221116192437_Pedestrian_MS288-896_2022-1116-Pedestrian_ig0.5_iouv0.5-0.95_yolov5m_ep4-best_map.onnx --framework=5 --output=1batch_fp16 --soc_version=Ascend310 --insert_op_conf=./aipp_ok_yuv.cfg --input_shape="images:1,3,576,576" --output_type=FP16 --input_format=NCHW --out_nodes="output" 发现转换后的om模型结构变的正常了:  但是对这个om模型使用精度比对工具比对算子精度发现,精度下降很厉害,跟原始的onnx网络的算子余弦相似度相差甚远。  又于是尝试在atc转换的时候去掉aipp配置项,经过atc转换后的om模型跟原始的onnx模型跑精度比对,发现余弦相似度很高,精度没有丢失。 去掉aipp配置项的atc转换命令如下: atc --model=./20221116192437_Pedestrian_MS288-896_2022-1116-Pedestrian_ig0.5_iouv0.5-0.95_yolov5m_ep4-best_map.onnx --framework=5 --output=1batch_fp16_noaipp --soc_version=Ascend310 --input_shape="images:4,3,576,576" --output_type=FP16 --input_format=NCHW --out_nodes="output" 对这个转换后的om模型跟原始的onnx做精度比对,发现余弦相似度很高,精度很好没有损失。  通过以上测试验证总结发现: 1)atc转换的时候,加入动态batch的设置会使om模型网络结构极度变形,不设置动态batch,om网络结构正常。 2)atc转换的时候加入aipp配置文件会使om模型精度大大降低,而且会使om模型的输入从float32莫名的变成uint8(原始onnx网络的输入数据类型是float32);不加入aipp配置文件,atc转换后的om精度对比没问题,而且om的输入会跟onnx的输入的数据类型保持一致float32。 以上2点问题的原因还请大佬帮忙深度分析定位一下,感谢~~ 这个是计算中心的客户,他们适配的Atlas300V Pro视频解析推理卡,适配完是有希望替代英伟达的产品并采购这款产品。 他们在跑推理的时候,发现推理精度不高,性能方面前处理+推理+后处理的时间在50ms一张,而在英伟达上这样的推理流程一张在5ms左右,所以才会去查看om模型的精度问题,才会有如上两个问题。 四、日志信息: xxxx 请根据自己的运行环境参考以下方式搜集日志信息,如果涉及到算子开发相关的问题,建议也提供UT/ST测试和单算子集成测试相关的日志。 日志提供方式: 将日志打包后作为附件上传。若日志大小超出附件限制,则可上传至外部网盘后提供链接。 获取方法请参考wiki: https://gitee.com/ascend/modelzoo/wikis/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%97%A5%E5%BF%97%E5%92%8C%E8%AE%A1%E7%AE%97%E5%9B%BE?sort_id=4097825
一、问题现象(附报错日志上下文): 计算中心的客户提供的onnx模型使用atc转换成om,发现 1、加入动态batch的设置后,om模型的网络结构极度变形;不加入动态batch设置项后,经过atc转换的om模型网络结构是正常的。 2、加入aipp配置文件后的om模型,在使用精度对比工具对比余弦相似度后发现,跟原始的onnx模型的算子相差甚远;不加入aipp配置的om模型跑出的余弦相似度跟原始onnx模型几乎一致,精度不变。 二、软件版本: -- CANN 版本 (CANN 5.1.RC1): --训练框架Pytorch 版本:1.10 --Python 版本 (Python 3.7.5): --操作系统版本 (Ubuntu 18.04): --昇腾芯片版本310P3和310 三、测试步骤: 客户的onnx原始模型的部分结构展示:  客户的atc转换命令: atc --model=./20221116192437_Pedestrian_MS288-896_2022-1116-Pedestrian_ig0.5_iouv0.5-0.95_yolov5m_ep4-best_map.onnx --framework=5 --output=20221205090611_Pedestrian_576x576_fp16_csc_true_buv_false --soc_version=Ascend310 --insert_op_conf=./aipp_ok_yuv.cfg --input_shape="images:-1,3,576,576" --dynamic_batch_size="1,2,4" --output_type=FP16 --input_format=NCHW --out_nodes="output" atc转换后发现om模型网络结构不对:  于是,去掉动态batch的设置项测试验证。atc转换命令如下 atc --model=./20221116192437_Pedestrian_MS288-896_2022-1116-Pedestrian_ig0.5_iouv0.5-0.95_yolov5m_ep4-best_map.onnx --framework=5 --output=1batch_fp16 --soc_version=Ascend310 --insert_op_conf=./aipp_ok_yuv.cfg --input_shape="images:1,3,576,576" --output_type=FP16 --input_format=NCHW --out_nodes="output" 发现转换后的om模型结构变的正常了:  但是对这个om模型使用精度比对工具比对算子精度发现,精度下降很厉害,跟原始的onnx网络的算子余弦相似度相差甚远。  又于是尝试在atc转换的时候去掉aipp配置项,经过atc转换后的om模型跟原始的onnx模型跑精度比对,发现余弦相似度很高,精度没有丢失。 去掉aipp配置项的atc转换命令如下: atc --model=./20221116192437_Pedestrian_MS288-896_2022-1116-Pedestrian_ig0.5_iouv0.5-0.95_yolov5m_ep4-best_map.onnx --framework=5 --output=1batch_fp16_noaipp --soc_version=Ascend310 --input_shape="images:4,3,576,576" --output_type=FP16 --input_format=NCHW --out_nodes="output" 对这个转换后的om模型跟原始的onnx做精度比对,发现余弦相似度很高,精度很好没有损失。  通过以上测试验证总结发现: 1)atc转换的时候,加入动态batch的设置会使om模型网络结构极度变形,不设置动态batch,om网络结构正常。 2)atc转换的时候加入aipp配置文件会使om模型精度大大降低,而且会使om模型的输入从float32莫名的变成uint8(原始onnx网络的输入数据类型是float32);不加入aipp配置文件,atc转换后的om精度对比没问题,而且om的输入会跟onnx的输入的数据类型保持一致float32。 以上2点问题的原因还请大佬帮忙深度分析定位一下,感谢~~ 这个是计算中心的客户,他们适配的Atlas300V Pro视频解析推理卡,适配完是有希望替代英伟达的产品并采购这款产品。 他们在跑推理的时候,发现推理精度不高,性能方面前处理+推理+后处理的时间在50ms一张,而在英伟达上这样的推理流程一张在5ms左右,所以才会去查看om模型的精度问题,才会有如上两个问题。 四、日志信息: xxxx 请根据自己的运行环境参考以下方式搜集日志信息,如果涉及到算子开发相关的问题,建议也提供UT/ST测试和单算子集成测试相关的日志。 日志提供方式: 将日志打包后作为附件上传。若日志大小超出附件限制,则可上传至外部网盘后提供链接。 获取方法请参考wiki: https://gitee.com/ascend/modelzoo/wikis/%E5%A6%82%E4%BD%95%E8%8E%B7%E5%8F%96%E6%97%A5%E5%BF%97%E5%92%8C%E8%AE%A1%E7%AE%97%E5%9B%BE?sort_id=4097825
评论 (
2
)
登录
后才可以发表评论
状态
DONE
TODO
WIP
Analysing
Feedback
ACCEPTED
DONE
CLOSED
Replied
REJECTED
负责人
未设置
许业涛
xyttaotao
负责人
协作者
+负责人
+协作者
标签
未设置
项目
未立项任务
未立项任务
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (
-
)
标签 (
-
)
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
预计工期
(小时)
参与者(2)
1
https://gitee.com/ascend/samples.git
git@gitee.com:ascend/samples.git
ascend
samples
samples
点此查找更多帮助
搜索帮助
Git 命令在线学习
如何在 Gitee 导入 GitHub 仓库
Git 仓库基础操作
企业版和社区版功能对比
SSH 公钥设置
如何处理代码冲突
仓库体积过大,如何减小?
如何找回被删除的仓库数据
Gitee 产品配额说明
GitHub仓库快速导入Gitee及同步更新
什么是 Release(发行版)
将 PHP 项目自动发布到 packagist.org
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册