Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
X2Paddle
提交
adfd0c08
X
X2Paddle
项目概览
PaddlePaddle
/
X2Paddle
大约 1 年 前同步成功
通知
328
Star
698
Fork
167
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
26
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
X2Paddle
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
26
Issue
26
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
adfd0c08
编写于
1月 19, 2021
作者:
J
Jason
提交者:
GitHub
1月 19, 2021
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #490 from SunAhong1993/tf
fix the tf bn fuser
上级
f5fdb41b
4ed14de2
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
42 addition
and
6 deletion
+42
-6
x2paddle/op_mapper/dygraph/tf2paddle/tf_op_mapper.py
x2paddle/op_mapper/dygraph/tf2paddle/tf_op_mapper.py
+18
-0
x2paddle/op_mapper/static/tf2paddle/tf_op_mapper.py
x2paddle/op_mapper/static/tf2paddle/tf_op_mapper.py
+18
-0
x2paddle/optimizer/fusion/dygraph/tf_batchnorm_fuser.py
x2paddle/optimizer/fusion/dygraph/tf_batchnorm_fuser.py
+3
-3
x2paddle/optimizer/fusion/static/tf_batchnorm_fuser.py
x2paddle/optimizer/fusion/static/tf_batchnorm_fuser.py
+3
-3
未找到文件。
x2paddle/op_mapper/dygraph/tf2paddle/tf_op_mapper.py
浏览文件 @
adfd0c08
...
@@ -1065,6 +1065,24 @@ class TFOpMapper(OpMapper):
...
@@ -1065,6 +1065,24 @@ class TFOpMapper(OpMapper):
],
],
num_or_sections
=
num_split
,
num_or_sections
=
num_split
,
axis
=
dim
)
axis
=
dim
)
def
SplitV
(
self
,
node
):
input
=
self
.
graph
.
get_input_node
(
node
,
0
)
size_splits
=
self
.
graph
.
get_input_node
(
node
,
1
)
assert
size_splits
.
layer_type
==
"Const"
,
"size_splits of SplitV OP should be Const"
size_splits
=
size_splits
.
value
.
tolist
()
dim
=
self
.
graph
.
get_input_node
(
node
,
2
)
assert
dim
.
layer_type
==
"Const"
,
"dim of SplitV OP should be Const"
dim
=
dim
.
value
self
.
paddle_graph
.
add_layer
(
kernel
=
"paddle.split"
,
inputs
=
{
"x"
:
input
.
name
},
outputs
=
[
"{}_p{}"
.
format
(
node
.
layer_name
,
i
)
for
i
in
range
(
len
(
size_splits
))
],
num_or_sections
=
size_splits
,
axis
=
dim
)
def
Slice
(
self
,
node
):
def
Slice
(
self
,
node
):
input
=
self
.
graph
.
get_input_node
(
node
,
0
)
input
=
self
.
graph
.
get_input_node
(
node
,
0
)
...
...
x2paddle/op_mapper/static/tf2paddle/tf_op_mapper.py
浏览文件 @
adfd0c08
...
@@ -1042,6 +1042,24 @@ class TFOpMapper(OpMapper):
...
@@ -1042,6 +1042,24 @@ class TFOpMapper(OpMapper):
],
],
num_or_sections
=
num_split
,
num_or_sections
=
num_split
,
axis
=
dim
)
axis
=
dim
)
def
SplitV
(
self
,
node
):
input
=
self
.
graph
.
get_input_node
(
node
,
0
)
size_splits
=
self
.
graph
.
get_input_node
(
node
,
1
)
assert
size_splits
.
layer_type
==
"Const"
,
"size_splits of SplitV OP should be Const"
size_splits
=
size_splits
.
value
.
tolist
()
dim
=
self
.
graph
.
get_input_node
(
node
,
2
)
assert
dim
.
layer_type
==
"Const"
,
"dim of SplitV OP should be Const"
dim
=
dim
.
value
self
.
paddle_graph
.
add_layer
(
kernel
=
"paddle.split"
,
inputs
=
{
"x"
:
input
.
name
},
outputs
=
[
"{}_p{}"
.
format
(
node
.
layer_name
,
i
)
for
i
in
range
(
len
(
size_splits
))
],
num_or_sections
=
size_splits
,
axis
=
dim
)
def
Slice
(
self
,
node
):
def
Slice
(
self
,
node
):
input
=
self
.
graph
.
get_input_node
(
node
,
0
)
input
=
self
.
graph
.
get_input_node
(
node
,
0
)
...
...
x2paddle/optimizer/fusion/dygraph/tf_batchnorm_fuser.py
浏览文件 @
adfd0c08
...
@@ -74,7 +74,7 @@ class DygraphTFBatchNormFuser(FuseBase):
...
@@ -74,7 +74,7 @@ class DygraphTFBatchNormFuser(FuseBase):
inputs
=
{},
inputs
=
{},
outputs
=
[
gen_name
(
8
)])
outputs
=
[
gen_name
(
8
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
"
fluid.layers.elementwise_sub
"
,
"
paddle.subtract
"
,
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
outputs
=
[
gen_name
(
9
)])
outputs
=
[
gen_name
(
9
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
...
@@ -131,7 +131,7 @@ class DygraphTFBatchNormFuser(FuseBase):
...
@@ -131,7 +131,7 @@ class DygraphTFBatchNormFuser(FuseBase):
inputs
=
{},
inputs
=
{},
outputs
=
[
gen_name
(
8
)])
outputs
=
[
gen_name
(
8
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
"
fluid.layers.elementwise_sub
"
,
"
paddle.subtract
"
,
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
outputs
=
[
gen_name
(
9
)])
outputs
=
[
gen_name
(
9
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
...
@@ -180,7 +180,7 @@ class DygraphTFBatchNormFuser(FuseBase):
...
@@ -180,7 +180,7 @@ class DygraphTFBatchNormFuser(FuseBase):
if
matches
[
out_layer_id
].
kernel
==
"paddle.multiply"
:
if
matches
[
out_layer_id
].
kernel
==
"paddle.multiply"
:
gamma_layer_id
=
graph
.
edges_in
[
out_layer_id
][
1
]
gamma_layer_id
=
graph
.
edges_in
[
out_layer_id
][
1
]
gamma_layer
=
matches
[
gamma_layer_id
]
gamma_layer
=
matches
[
gamma_layer_id
]
if
layer
.
kernel
==
"
fluid.layers.elementwise_sub
"
:
if
layer
.
kernel
==
"
paddle.subtract
"
:
in_layer_id
=
graph
.
edges_in
[
layer_id
][
0
]
in_layer_id
=
graph
.
edges_in
[
layer_id
][
0
]
beta_layer
=
matches
[
in_layer_id
]
beta_layer
=
matches
[
in_layer_id
]
in_layer_id
=
graph
.
edges_in
[
layer_id
][
1
]
in_layer_id
=
graph
.
edges_in
[
layer_id
][
1
]
...
...
x2paddle/optimizer/fusion/static/tf_batchnorm_fuser.py
浏览文件 @
adfd0c08
...
@@ -73,7 +73,7 @@ class StaticTFBatchNormFuser(FuseBase):
...
@@ -73,7 +73,7 @@ class StaticTFBatchNormFuser(FuseBase):
inputs
=
{},
inputs
=
{},
outputs
=
[
gen_name
(
8
)])
outputs
=
[
gen_name
(
8
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
"
fluid.layers.elementwise_sub
"
,
"
paddle.subtract
"
,
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
outputs
=
[
gen_name
(
9
)])
outputs
=
[
gen_name
(
9
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
...
@@ -130,7 +130,7 @@ class StaticTFBatchNormFuser(FuseBase):
...
@@ -130,7 +130,7 @@ class StaticTFBatchNormFuser(FuseBase):
inputs
=
{},
inputs
=
{},
outputs
=
[
gen_name
(
8
)])
outputs
=
[
gen_name
(
8
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
"
fluid.layers.elementwise_sub
"
,
"
paddle.subtract
"
,
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
inputs
=
{
"x"
:
gen_name
(
8
),
"y"
:
gen_name
(
7
)},
outputs
=
[
gen_name
(
9
)])
outputs
=
[
gen_name
(
9
)])
pattern
.
add_layer
(
pattern
.
add_layer
(
...
@@ -179,7 +179,7 @@ class StaticTFBatchNormFuser(FuseBase):
...
@@ -179,7 +179,7 @@ class StaticTFBatchNormFuser(FuseBase):
if
matches
[
out_layer_id
].
kernel
==
"paddle.multiply"
:
if
matches
[
out_layer_id
].
kernel
==
"paddle.multiply"
:
gamma_layer_id
=
graph
.
edges_in
[
out_layer_id
][
1
]
gamma_layer_id
=
graph
.
edges_in
[
out_layer_id
][
1
]
gamma_layer
=
matches
[
gamma_layer_id
]
gamma_layer
=
matches
[
gamma_layer_id
]
if
layer
.
kernel
==
"
fluid.layers.elementwise_sub
"
:
if
layer
.
kernel
==
"
paddle.subtract
"
:
in_layer_id
=
graph
.
edges_in
[
layer_id
][
0
]
in_layer_id
=
graph
.
edges_in
[
layer_id
][
0
]
beta_layer
=
matches
[
in_layer_id
]
beta_layer
=
matches
[
in_layer_id
]
in_layer_id
=
graph
.
edges_in
[
layer_id
][
1
]
in_layer_id
=
graph
.
edges_in
[
layer_id
][
1
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录