Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PARL
提交
7c950aae
P
PARL
项目概览
PaddlePaddle
/
PARL
通知
67
Star
3
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PARL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
7c950aae
编写于
6月 23, 2020
作者:
H
Hongsheng Zeng
提交者:
GitHub
6月 23, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix compatibility of batch_norm layer (#310)
* fix compatibility of batch_norm layer * fix yapf
上级
f5ee9a1f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
115 addition
and
56 deletion
+115
-56
parl/core/fluid/layers/layer_wrappers.py
parl/core/fluid/layers/layer_wrappers.py
+114
-55
parl/utils/utils.py
parl/utils/utils.py
+1
-1
未找到文件。
parl/core/fluid/layers/layer_wrappers.py
浏览文件 @
7c950aae
...
...
@@ -46,6 +46,7 @@ from paddle.fluid.framework import Variable
from
paddle.fluid.layers
import
*
from
paddle.fluid.param_attr
import
ParamAttr
from
parl.core.fluid.layers.attr_holder
import
AttrHolder
from
parl.utils
import
get_fluid_version
def
update_attr_name
(
name
,
default_name
,
attr
,
is_bias
):
...
...
@@ -497,61 +498,119 @@ def layer_norm(**kwargs):
raise
NotImplementedError
()
def
batch_norm
(
act
=
None
,
momentum
=
0.9
,
epsilon
=
1e-05
,
param_attr
=
None
,
bias_attr
=
None
,
data_layout
=
'NCHW'
,
in_place
=
False
,
name
=
None
,
moving_mean_name
=
None
,
moving_variance_name
=
None
,
do_model_average_for_mean_and_var
=
False
,
fuse_with_relu
=
False
,
use_global_stats
=
False
):
"""
Return a function that creates a paddle.fluid.layers.batch_norm.
"""
default_name
=
"batch_norm"
param_attr
=
update_attr_name
(
name
,
default_name
,
param_attr
,
False
)
bias_attr
=
update_attr_name
(
name
,
default_name
,
bias_attr
,
True
)
moving_mean_attr
=
update_attr_name
(
name
,
default_name
+
"_moving_mean"
,
None
,
False
)
moving_variance_attr
=
update_attr_name
(
name
,
default_name
+
"_moving_variance"
,
None
,
False
)
class
BatchNorm_
(
LayerFunc
):
def
__init__
(
self
):
super
(
BatchNorm_
,
self
).
__init__
(
AttrHolder
(
param_attr
=
param_attr
,
bias_attr
=
bias_attr
,
moving_mean_attr
=
moving_mean_attr
,
moving_variance_attr
=
moving_variance_attr
))
def
__call__
(
self
,
input
,
is_test
=
False
):
return
layers
.
batch_norm
(
input
=
input
,
act
=
act
,
is_test
=
is_test
,
momentum
=
momentum
,
epsilon
=
epsilon
,
param_attr
=
self
.
attr_holder
.
param_attr
,
bias_attr
=
self
.
attr_holder
.
bias_attr
,
data_layout
=
data_layout
,
in_place
=
in_place
,
name
=
name
,
moving_mean_name
=
self
.
attr_holder
.
moving_mean_attr
.
name
,
moving_variance_name
=
self
.
attr_holder
.
moving_variance_attr
.
name
,
do_model_average_for_mean_and_var
=
do_model_average_for_mean_and_var
,
fuse_with_relu
=
fuse_with_relu
,
use_global_stats
=
use_global_stats
)
return
BatchNorm_
()
fluid_version
=
get_fluid_version
()
if
fluid_version
>=
162
or
fluid_version
==
0
:
def
batch_norm
(
act
=
None
,
momentum
=
0.9
,
epsilon
=
1e-05
,
param_attr
=
None
,
bias_attr
=
None
,
data_layout
=
'NCHW'
,
in_place
=
False
,
name
=
None
,
moving_mean_name
=
None
,
moving_variance_name
=
None
,
do_model_average_for_mean_and_var
=
False
,
use_global_stats
=
False
):
"""
Return a function that creates a paddle.fluid.layers.batch_norm.
"""
default_name
=
"batch_norm"
param_attr
=
update_attr_name
(
name
,
default_name
,
param_attr
,
False
)
bias_attr
=
update_attr_name
(
name
,
default_name
,
bias_attr
,
True
)
moving_mean_attr
=
update_attr_name
(
name
,
default_name
+
"_moving_mean"
,
None
,
False
)
moving_variance_attr
=
update_attr_name
(
name
,
default_name
+
"_moving_variance"
,
None
,
False
)
class
BatchNorm_
(
LayerFunc
):
def
__init__
(
self
):
super
(
BatchNorm_
,
self
).
__init__
(
AttrHolder
(
param_attr
=
param_attr
,
bias_attr
=
bias_attr
,
moving_mean_attr
=
moving_mean_attr
,
moving_variance_attr
=
moving_variance_attr
))
def
__call__
(
self
,
input
,
is_test
=
False
):
return
layers
.
batch_norm
(
input
=
input
,
act
=
act
,
is_test
=
is_test
,
momentum
=
momentum
,
epsilon
=
epsilon
,
param_attr
=
self
.
attr_holder
.
param_attr
,
bias_attr
=
self
.
attr_holder
.
bias_attr
,
data_layout
=
data_layout
,
in_place
=
in_place
,
name
=
name
,
moving_mean_name
=
self
.
attr_holder
.
moving_mean_attr
.
name
,
moving_variance_name
=
self
.
attr_holder
.
moving_variance_attr
.
name
,
do_model_average_for_mean_and_var
=
do_model_average_for_mean_and_var
,
use_global_stats
=
use_global_stats
)
return
BatchNorm_
()
else
:
def
batch_norm
(
act
=
None
,
momentum
=
0.9
,
epsilon
=
1e-05
,
param_attr
=
None
,
bias_attr
=
None
,
data_layout
=
'NCHW'
,
in_place
=
False
,
name
=
None
,
moving_mean_name
=
None
,
moving_variance_name
=
None
,
do_model_average_for_mean_and_var
=
False
,
fuse_with_relu
=
False
,
use_global_stats
=
False
):
"""
Return a function that creates a paddle.fluid.layers.batch_norm.
"""
default_name
=
"batch_norm"
param_attr
=
update_attr_name
(
name
,
default_name
,
param_attr
,
False
)
bias_attr
=
update_attr_name
(
name
,
default_name
,
bias_attr
,
True
)
moving_mean_attr
=
update_attr_name
(
name
,
default_name
+
"_moving_mean"
,
None
,
False
)
moving_variance_attr
=
update_attr_name
(
name
,
default_name
+
"_moving_variance"
,
None
,
False
)
class
BatchNorm_
(
LayerFunc
):
def
__init__
(
self
):
super
(
BatchNorm_
,
self
).
__init__
(
AttrHolder
(
param_attr
=
param_attr
,
bias_attr
=
bias_attr
,
moving_mean_attr
=
moving_mean_attr
,
moving_variance_attr
=
moving_variance_attr
))
def
__call__
(
self
,
input
,
is_test
=
False
):
return
layers
.
batch_norm
(
input
=
input
,
act
=
act
,
is_test
=
is_test
,
momentum
=
momentum
,
epsilon
=
epsilon
,
param_attr
=
self
.
attr_holder
.
param_attr
,
bias_attr
=
self
.
attr_holder
.
bias_attr
,
data_layout
=
data_layout
,
in_place
=
in_place
,
name
=
name
,
moving_mean_name
=
self
.
attr_holder
.
moving_mean_attr
.
name
,
moving_variance_name
=
self
.
attr_holder
.
moving_variance_attr
.
name
,
do_model_average_for_mean_and_var
=
do_model_average_for_mean_and_var
,
fuse_with_relu
=
fuse_with_relu
,
use_global_stats
=
use_global_stats
)
return
BatchNorm_
()
def
create_parameter
(
shape
,
...
...
parl/utils/utils.py
浏览文件 @
7c950aae
...
...
@@ -20,7 +20,7 @@ import numpy as np
__all__
=
[
'has_func'
,
'action_mapping'
,
'to_str'
,
'to_byte'
,
'is_PY2'
,
'is_PY3'
,
'MAX_INT32'
,
'_HAS_FLUID'
,
'_HAS_TORCH'
,
'_IS_WINDOWS'
,
'_IS_MAC'
,
'kill_process'
'kill_process'
,
'get_fluid_version'
]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录