Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
magicwindyyd
mindspore
提交
038bd6cb
M
mindspore
项目概览
magicwindyyd
/
mindspore
与 Fork 源项目一致
Fork自
MindSpore / mindspore
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
mindspore
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
038bd6cb
编写于
8月 08, 2020
作者:
L
lvliang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enable-the-identity-op-can-be-eliminated-in-pynative-mode
上级
641601f7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
9 addition
and
10 deletion
+9
-10
mindspore/ccsrc/frontend/optimizer/irpass/arithmetic_simplify.cc
...re/ccsrc/frontend/optimizer/irpass/arithmetic_simplify.cc
+9
-10
未找到文件。
mindspore/ccsrc/frontend/optimizer/irpass/arithmetic_simplify.cc
浏览文件 @
038bd6cb
...
...
@@ -20,9 +20,6 @@ namespace mindspore {
namespace
opt
{
namespace
irpass
{
AnfNodePtr
ArithmeticSimplify
::
operator
()(
const
OptimizerPtr
&
,
const
AnfNodePtr
&
node
)
{
if
(
MsContext
::
GetInstance
()
->
execution_mode
()
==
kPynativeMode
)
{
return
nullptr
;
}
PatternNode
x
,
y
,
z
,
xs
;
PConstant
one_
(
node
,
false
,
1
);
PConstant
one_scalar_
(
node
,
false
,
1
,
true
);
...
...
@@ -32,14 +29,16 @@ AnfNodePtr ArithmeticSimplify::operator()(const OptimizerPtr &, const AnfNodePtr
PConstant
const_2
(
node
);
PConstant
any_const
(
node
);
MATCH_REPLACE
(
node
,
x
+
zero_
,
x
);
// Add by zero
MATCH_REPLACE
(
node
,
x
+
zero_scalar_
,
x
);
// Add by zero
MATCH_REPLACE
(
node
,
PBinOperation
(
prim
::
kPrimScalarAdd
,
x
,
zero_scalar_
,
true
),
x
);
// Scalar Add by zero
MATCH_REPLACE_IF
(
node
,
x
*
one_
,
any_const
.
WithValueOf
(
x
),
!
one_
.
CheckFunc
(
IsParam
,
node
));
// Multiply by one
MATCH_REPLACE
(
node
,
PBinOperation
(
prim
::
kPrimScalarMul
,
x
,
one_scalar_
,
true
),
x
);
// Scalar Mul by one
if
(
MsContext
::
GetInstance
()
->
execution_mode
()
!=
kPynativeMode
)
{
MATCH_REPLACE
(
node
,
x
+
zero_
,
x
);
// Add by zero
MATCH_REPLACE
(
node
,
x
+
zero_scalar_
,
x
);
// Add by zero
MATCH_REPLACE
(
node
,
PBinOperation
(
prim
::
kPrimScalarAdd
,
x
,
zero_scalar_
,
true
),
x
);
// Scalar Add by zero
MATCH_REPLACE_IF
(
node
,
x
*
one_
,
any_const
.
WithValueOf
(
x
),
!
one_
.
CheckFunc
(
IsParam
,
node
));
// Multiply by one
MATCH_REPLACE
(
node
,
PBinOperation
(
prim
::
kPrimScalarMul
,
x
,
one_scalar_
,
true
),
x
);
// Scalar Mul by one
// Scalar Mul by zero
MATCH_REPLACE
(
node
,
PBinOperation
(
prim
::
kPrimScalarMul
,
x
,
zero_scalar_
,
true
),
zero_scalar_
.
NewValue
());
// Scalar Mul by zero
MATCH_REPLACE
(
node
,
PBinOperation
(
prim
::
kPrimScalarMul
,
x
,
zero_scalar_
,
true
),
zero_scalar_
.
NewValue
());
}
// Prim Eliminate (identity)
MATCH_REPLACE
(
node
,
PPrimitive
(
prim
::
kPrimIdentity
,
x
),
x
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录