Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
dddc5d9d
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看板
未验证
提交
dddc5d9d
编写于
1月 31, 2023
作者:
Z
zhangkaihuo
提交者:
GitHub
1月 31, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[cherry-pick]BatchNorm use inplace (#49529)
att, cherry-pick#48254, and resolve conflict
上级
34fafb11
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
25 addition
and
23 deletion
+25
-23
paddle/phi/api/yaml/generator/generate_sparse_op.py
paddle/phi/api/yaml/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
+19
-19
python/paddle/sparse/nn/layer/norm.py
python/paddle/sparse/nn/layer/norm.py
+1
-1
未找到文件。
paddle/phi/api/yaml/generator/generate_sparse_op.py
浏览文件 @
dddc5d9d
...
...
@@ -84,6 +84,8 @@ def main(
backward_api_dict
=
to_named_dict
(
backward_apis
)
for
api
in
apis
:
if
api
[
'name'
][
-
1
]
==
'_'
:
api
[
'name'
]
=
api
[
'name'
][:
-
1
]
api
[
'op_name'
]
=
SPARSE_OP_PREFIX
+
api
[
'name'
]
api
[
'name'
]
=
api
[
'op_name'
]
if
api
[
"backward"
]
is
not
None
:
...
...
paddle/phi/api/yaml/sparse_backward.yaml
浏览文件 @
dddc5d9d
...
...
@@ -101,7 +101,7 @@
atanh_csr_grad {sparse_csr, sparse_csr -> sparse_csr}
-
backward_op
:
batch_norm_grad
forward
:
batch_norm (Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu) -> Tensor(out), Tensor(mean_out), Tensor(variance_out), Tensor(saved_mean), Tensor(saved_variance), Tensor(reserve_space)
forward
:
batch_norm
_
(Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu) -> 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, bool fuse_with_relu)
output
:
Tensor(x_grad), Tensor(scale_grad), Tensor(bias_grad)
infer_meta
:
...
...
paddle/phi/api/yaml/sparse_ops.yaml
浏览文件 @
dddc5d9d
...
...
@@ -87,7 +87,7 @@
layout
:
x
backward
:
atanh_grad
-
op
:
batch_norm
-
op
:
batch_norm
_
args
:
(Tensor x, Tensor scale, Tensor bias, Tensor mean, Tensor variance, float momentum, float epsilon, str data_layout, bool is_test, bool use_global_stats, bool trainable_statistics, bool fuse_with_relu)
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
浏览文件 @
dddc5d9d
...
...
@@ -23,25 +23,25 @@ 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_test
,
bool
use_global_stats
,
bool
trainable_statistics
,
bool
fuse_with_relu
,
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
&
scale
,
const
DenseTensor
&
bias
,
const
DenseTensor
&
mean
,
const
DenseTensor
&
variance
,
float
momentum
,
float
epsilon
,
const
std
::
string
&
data_layout
,
bool
is_test
,
bool
use_global_stats
,
bool
trainable_statistics
,
bool
fuse_with_relu
,
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
浏览文件 @
dddc5d9d
...
...
@@ -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
.
weight
,
self
.
bias
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录