Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
d33d6db0
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看板
未验证
提交
d33d6db0
编写于
11月 29, 2022
作者:
Z
zhangkaihuo
提交者:
GitHub
11月 29, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Sparse]BatchNorm use inplace (#48254)
上级
41ba2722
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
24 addition
and
22 deletion
+24
-22
paddle/fluid/operators/generator/generate_sparse_op.py
paddle/fluid/operators/generator/generate_sparse_op.py
+2
-0
paddle/phi/api/yaml/sparse_backward.yaml
paddle/phi/api/yaml/sparse_backward.yaml
+1
-1
paddle/phi/api/yaml/sparse_ops.yaml
paddle/phi/api/yaml/sparse_ops.yaml
+2
-2
paddle/phi/kernels/sparse/batch_norm_kernel.h
paddle/phi/kernels/sparse/batch_norm_kernel.h
+18
-18
python/paddle/sparse/nn/layer/norm.py
python/paddle/sparse/nn/layer/norm.py
+1
-1
未找到文件。
paddle/fluid/operators/generator/generate_sparse_op.py
浏览文件 @
d33d6db0
...
...
@@ -82,6 +82,8 @@ def main(op_yaml_path, backward_yaml_path, output_op_path, output_arg_map_path):
backward_op_dict
=
to_named_dict
(
backward_ops
)
for
op
in
ops
:
if
op
[
'name'
][
-
1
]
==
'_'
:
op
[
'name'
]
=
op
[
'name'
][:
-
1
]
op
[
'op_name'
]
=
SPARSE_OP_PREFIX
+
op
[
'name'
]
op
[
'name'
]
=
op
[
'op_name'
]
if
op
[
"backward"
]
is
not
None
:
...
...
paddle/phi/api/yaml/sparse_backward.yaml
浏览文件 @
d33d6db0
...
...
@@ -101,7 +101,7 @@
atanh_csr_grad {sparse_csr, sparse_csr -> sparse_csr}
-
backward_op
:
batch_norm_grad
forward
:
batch_norm (Tensor x, Tensor mean, Tensor variance, Tensor scale, Tensor bias, bool is_test, float momentum, float epsilon, str data_layout, bool use_global_stats, bool trainable_statistics) -> Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
forward
:
batch_norm
_
(Tensor x, Tensor mean, Tensor variance, Tensor scale, Tensor bias, bool is_test, float momentum, float epsilon, str data_layout, bool use_global_stats, bool trainable_statistics) -> Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
args
:
(Tensor x, Tensor scale, Tensor bias, Tensor mean_out, Tensor variance_out, Tensor saved_mean, Tensor saved_variance, Tensor reserve_space, Tensor out_grad, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics)
output
:
Tensor(x_grad), Tensor(scale_grad), Tensor(bias_grad)
infer_meta
:
...
...
paddle/phi/api/yaml/sparse_ops.yaml
浏览文件 @
d33d6db0
...
...
@@ -87,7 +87,7 @@
layout
:
x
backward
:
atanh_grad
-
op
:
batch_norm
-
op
:
batch_norm
_
args
:
(Tensor x, Tensor mean, Tensor variance, Tensor scale, Tensor bias, bool is_test, float momentum, float epsilon, str data_layout, bool use_global_stats, bool trainable_statistics)
output
:
Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
infer_meta
:
...
...
@@ -95,7 +95,7 @@
kernel
:
func
:
batch_norm_coo {sparse_coo, dense, dense, dense, dense -> sparse_coo, dense, dense, dense, dense, dense}
data_type
:
x
view
:
(mean -> mean_out), (variance -> variance_out)
inplace
:
(mean -> mean_out), (variance -> variance_out)
backward
:
batch_norm_grad
-
op
:
cast
...
...
paddle/phi/kernels/sparse/batch_norm_kernel.h
浏览文件 @
d33d6db0
...
...
@@ -23,24 +23,24 @@ namespace phi {
namespace
sparse
{
template
<
typename
T
,
typename
Context
>
void
BatchNormKernel
(
const
Context
&
dev_ctx
,
const
SparseCooTensor
&
x
,
const
DenseTensor
&
scale
,
const
DenseTensor
&
bias
,
const
DenseTensor
&
mean
,
const
DenseTensor
&
variance
,
float
momentum
,
float
epsilon
,
const
std
::
string
&
data_layout
,
bool
is_tes
t
,
bool
use_global_stats
,
bool
trainable_statistics
,
SparseCooTensor
*
y
,
DenseTensor
*
mean_out
,
DenseTensor
*
variance_out
,
DenseTensor
*
saved_mean
,
DenseTensor
*
saved_variance
,
DenseTensor
*
reserve_space
);
void
BatchNorm
Coo
Kernel
(
const
Context
&
dev_ctx
,
const
SparseCooTensor
&
x
,
const
DenseTensor
&
mean
,
const
DenseTensor
&
variance
,
const
DenseTensor
&
scale
,
const
DenseTensor
&
bias
,
bool
is_test
,
float
momentum
,
float
epsilon
,
const
std
::
string
&
data_layou
t
,
bool
use_global_stats
,
bool
trainable_statistics
,
SparseCooTensor
*
y
,
DenseTensor
*
mean_out
,
DenseTensor
*
variance_out
,
DenseTensor
*
saved_mean
,
DenseTensor
*
saved_variance
,
DenseTensor
*
reserve_space
);
}
// namespace sparse
}
// namespace phi
python/paddle/sparse/nn/layer/norm.py
浏览文件 @
d33d6db0
...
...
@@ -138,7 +138,7 @@ class BatchNorm(paddle.nn.BatchNorm1D):
data_format
=
'NCHW'
if
self
.
_data_format
[
1
]
==
'C'
else
'NHWC'
if
in_dynamic_mode
():
batch_norm_out
,
_
,
_
,
_
,
_
,
_
=
_C_ops
.
sparse_batch_norm
(
batch_norm_out
,
_
,
_
,
_
,
_
,
_
=
_C_ops
.
sparse_batch_norm
_
(
input
,
self
.
_mean
,
self
.
_variance
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录