Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
2fb65e44
P
Paddle
项目概览
BaiXuePrincess
/
Paddle
与 Fork 源项目一致
Fork自
PaddlePaddle / Paddle
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
2fb65e44
编写于
8月 16, 2022
作者:
W
Wangzheee
提交者:
GitHub
8月 16, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix new quant (#45155)
上级
ab583173
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
15 addition
and
16 deletion
+15
-16
paddle/fluid/framework/ir/delete_quant_dequant_linear_op_pass.cc
...fluid/framework/ir/delete_quant_dequant_linear_op_pass.cc
+13
-11
paddle/fluid/framework/ir/graph_pattern_detector.cc
paddle/fluid/framework/ir/graph_pattern_detector.cc
+2
-4
paddle/fluid/framework/ir/graph_pattern_detector.h
paddle/fluid/framework/ir/graph_pattern_detector.h
+0
-1
未找到文件。
paddle/fluid/framework/ir/delete_quant_dequant_linear_op_pass.cc
浏览文件 @
2fb65e44
...
...
@@ -31,8 +31,7 @@ namespace ir {
GET_IR_NODE(quantize_linear_op); \
GET_IR_NODE(quantize_linear_op_out); \
GET_IR_NODE(dequantize_linear_op); \
GET_IR_NODE(dequantize_linear_op_out); \
GET_IR_NODE(any_op2);
GET_IR_NODE(dequantize_linear_op_out);
DeleteQuantDequantLinearOpPass
::
DeleteQuantDequantLinearOpPass
()
{
AddOpCompat
(
OpCompat
(
"quantize_linear"
))
...
...
@@ -127,21 +126,24 @@ void DeleteQuantDequantLinearOpPass::ApplyImpl(ir::Graph* graph) const {
const
float
*
input_scale_data
=
input_scale_tensor
.
data
<
float
>
();
float
input_scale
=
input_scale_data
[
0
]
/
range
;
auto
*
any_op2_desc
=
any_op2
->
Op
();
any_op2_desc
->
SetAttr
(
"Input_scale_"
+
quantize_linear_op_x
->
Var
()
->
Name
(),
input_scale
);
int
nums_any_ops
=
dequantize_linear_op_out
->
outputs
.
size
();
for
(
int
i
=
0
;
i
<
nums_any_ops
;
++
i
)
{
auto
*
any_op_desc
=
dequantize_linear_op_out
->
outputs
[
i
]
->
Op
();
any_op_desc
->
SetAttr
(
"Input_scale_"
+
quantize_linear_op_x
->
Var
()
->
Name
(),
input_scale
);
// link x to any_op2
any_op_desc
->
RenameInput
(
dequantize_linear_op_out
->
Var
()
->
Name
(),
quantize_linear_op_x
->
Var
()
->
Name
());
any_op_desc
->
Flush
();
IR_NODE_LINK_TO
(
quantize_linear_op_x
,
dequantize_linear_op_out
->
outputs
[
i
]);
}
nodes2rm
.
insert
(
quantize_linear_op_scale
);
nodes2rm
.
insert
(
quantize_linear_op
);
nodes2rm
.
insert
(
quantize_linear_op_out
);
nodes2rm
.
insert
(
dequantize_linear_op
);
nodes2rm
.
insert
(
dequantize_linear_op_out
);
// link x to any_op2
any_op2_desc
->
RenameInput
(
dequantize_linear_op_out
->
Var
()
->
Name
(),
quantize_linear_op_x
->
Var
()
->
Name
());
any_op2_desc
->
Flush
();
IR_NODE_LINK_TO
(
quantize_linear_op_x
,
any_op2
);
GraphSafeRemoveNodes
(
graph
,
nodes2rm
);
found_count
++
;
};
...
...
paddle/fluid/framework/ir/graph_pattern_detector.cc
浏览文件 @
2fb65e44
...
...
@@ -2992,16 +2992,14 @@ void patterns::DeleteQuantDequantLinearOpPattern::operator()() {
auto
dequantize_linear_op_out
=
pattern
->
NewNode
(
dequantize_linear_op_out_repr
())
->
AsIntermediate
()
->
assert_is_op_output
(
"dequantize_linear"
,
"Y"
);
auto
any_op2
=
pattern
->
NewNode
(
any_op2_repr
())
->
assert_is_op
()
->
AsOutput
();
->
assert_is_op_output
(
"dequantize_linear"
,
"Y"
)
->
AsOutput
();
quantize_linear_op
->
LinksFrom
({
quantize_linear_op_x
,
quantize_linear_op_scale
})
.
LinksTo
({
quantize_linear_op_out
});
dequantize_linear_op
->
LinksFrom
({
quantize_linear_op_out
})
.
LinksTo
({
dequantize_linear_op_out
});
any_op2
->
LinksFrom
({
dequantize_linear_op_out
});
}
PDNode
*
patterns
::
ReshapeTransposeMatmulPattern
::
operator
()(
...
...
paddle/fluid/framework/ir/graph_pattern_detector.h
浏览文件 @
2fb65e44
...
...
@@ -1709,7 +1709,6 @@ struct DeleteQuantDequantLinearOpPattern : public PatternBase {
// PATTERN_DECL_NODE(dequantize_linear_op_scale); // Can not add this node.
// Todo: Wangzheee
PATTERN_DECL_NODE
(
dequantize_linear_op_out
);
PATTERN_DECL_NODE
(
any_op2
);
};
// Reshape + Transpose + Matmul
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录