2.4K Star 8.2K Fork 4.4K

GVPMindSpore / mindspore

 / 详情

[MSLITE]Arithmetic算子Resize()未复位scalar_opt导致连续推理精度异常

DONE
Bug-Report
创建于  
2023-01-03 15:11
name about labels
Bug Report Use this template for reporting a bug kind/bug

Describe the current behavior / 问题描述 (Mandatory / 必填)

使用Lite master代码执行端侧CPU推理,Arithmetic算子Resize()未复位scalar_opt导致连续推理精度异常。

Environment / 环境信息 (Mandatory / 必填)

  • Hardware Environment(Ascend/GPU/CPU) / 硬件环境:

Please delete the backend not involved / 请删除不涉及的后端:
/device ascend/GPU/CPU/kirin/等其他芯片

  • Software Environment / 软件环境 (Mandatory / 必填):
    -- MindSpore version (e.g., 1.7.0.Bxxx) :
    -- Python version (e.g., Python 3.7.5) :
    -- OS platform and distribution (e.g., Linux Ubuntu 16.04):
    -- GCC/Compiler version (if compiled from source):

  • Excute Mode / 执行模式 (Mandatory / 必填)(PyNative/Graph):

Please delete the mode not involved / 请删除不涉及的模式:
/mode pynative
/mode graph

Related testcase / 关联用例 (Mandatory / 必填)

Steps to reproduce the issue / 重现步骤 (Mandatory / 必填)

复现环境:x86 ubuntu服务器。
复现步骤:
1、设置Arithmetic SubFusion(dtype为int32)的两个输入shape均为[1],执行Resize()和Run(),第一轮推理结果正确;
2、在此基础上,继续使用前面的Model对象,设置SubFusion的输入shape均为[10],执行Resize()和Run(),第二轮推理结果精度异常。

Describe the expected behavior / 预期结果 (Mandatory / 必填)

预期结果:两次推理结果均正确。

Related log / screenshot / 日志 / 截图 (Mandatory / 必填)

Special notes for this issue/备注 (Optional / 选填)

评论 (3)

zhuguodong 创建了Bug-Report

Please assign maintainer to check this issue.
请为此issue分配处理人。
@zhuguodong

Please add labels (comp or sig), also you can visit https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md to find more.
为了让代码尽快被审核,请您为Pull Request打上 组件(comp)或兴趣组(sig) 标签,打上标签的PR可直接推送给责任人进行审核。
更多的标签可以查看https://gitee.com/mindspore/community/blob/master/sigs/dx/docs/labels.md
以组件相关代码提交为例,如果你提交的是data组件代码,你可以这样评论:
//comp/data
当然你也可以邀请data SIG组来审核代码,可以这样写:
//sig/data
另外你还可以给这个PR标记类型,例如是bugfix或者是特性需求:
//kind/bug or //kind/feature
恭喜你,你已经学会了使用命令来打标签,接下来就在下面的评论里打上标签吧!

zhuguodong 修改了描述
zhuguodong 修改了标题
zhuguodong 负责人设置为zhuguodong
zhuguodong 任务状态TODO 修改为WIP
fangwenyi 添加了
 
v2.0.0.rc1
标签
fangwenyi 优先级设置为主要
fangwenyi 添加了
 
v1.9.0
标签
fangwenyi 添加了
 
v1.10
标签
fangwenyi 里程碑设置为B-SIG-MSLite
zhuguodong 添加了
 
kind/bug
标签

问题根因:
1、Arithmetic算子内部使用了状态标志位scalar_opt_:为true时使用标量输入的优化计算函数ElementOptSubInt(),为false时使用一般的逐元素计算函数ElementSub()。
2、在Resize()阶段,一旦把scalar_opt_标志位设置为true后,后续Resize()并没有复位此标志位,无论输入是否为标量,都调的是ElementOptSubInt(),导致计算精度异常。

修复方案:
在Resize()中先复位scalar_opt_为false,再根据当前输入shape来更新。

开发自验:
修改后第2次推理精度正常。

zhuguodong 任务状态WIP 修改为DONE

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(2)
Python
1
https://gitee.com/mindspore/mindspore.git
git@gitee.com:mindspore/mindspore.git
mindspore
mindspore
mindspore

搜索帮助

344bd9b3 5694891 D2dac590 5694891