Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
BaiXuePrincess
Paddle
提交
a9533953
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看板
未验证
提交
a9533953
编写于
12月 27, 2022
作者:
Z
zhaoyingli
提交者:
GitHub
12月 27, 2022
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[AutoParallel] fix input order (#49329)
* fix input order * add unittest * update cmakelist
上级
4634f0ff
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
117 addition
and
1 deletion
+117
-1
python/paddle/distributed/auto_parallel/dist_saver.py
python/paddle/distributed/auto_parallel/dist_saver.py
+3
-1
python/paddle/fluid/tests/unittests/auto_parallel/CMakeLists.txt
...paddle/fluid/tests/unittests/auto_parallel/CMakeLists.txt
+1
-0
python/paddle/fluid/tests/unittests/auto_parallel/test_dist_saver.py
...le/fluid/tests/unittests/auto_parallel/test_dist_saver.py
+113
-0
未找到文件。
python/paddle/distributed/auto_parallel/dist_saver.py
浏览文件 @
a9533953
...
...
@@ -202,7 +202,9 @@ class DistributedSaver:
if
var_name
not
in
used_outputs
:
fetch_vars_names
.
pop
(
idx
)
dist_feed_vars
=
[
global_block
.
vars
[
name
]
for
name
in
feed_vars_names
]
dist_feed_vars
=
list
(
reversed
([
global_block
.
vars
[
name
]
for
name
in
feed_vars_names
])
)
dist_fetch_vars
=
[
global_block
.
vars
[
name
]
for
name
in
fetch_vars_names
]
dist_filename
=
filename
+
"_dist"
+
str
(
rank_id
)
...
...
python/paddle/fluid/tests/unittests/auto_parallel/CMakeLists.txt
浏览文件 @
a9533953
...
...
@@ -128,4 +128,5 @@ if(WITH_DISTRIBUTE AND WITH_GPU)
py_test_modules
(
test_cluster_partition MODULES test_cluster_partition
)
py_test_modules
(
test_convert_to_process_meshes MODULES
test_convert_to_process_meshes
)
py_test_modules
(
test_dist_saver MODULES test_dist_saver
)
endif
()
python/paddle/fluid/tests/unittests/auto_parallel/test_dist_saver.py
0 → 100644
浏览文件 @
a9533953
# Copyright (c) 2022 PaddlePaddle Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import
os
import
tempfile
import
unittest
import
paddle
import
paddle.nn
as
nn
import
paddle.nn.functional
as
F
from
paddle.distributed.fleet
import
auto
paddle
.
enable_static
()
class
MLPLayer
(
nn
.
Layer
):
def
__init__
(
self
,
hidden_size
=
1024
,
intermediate_size
=
4
*
1024
,
dropout_ratio
=
0.1
,
initializer_range
=
0.02
,
):
super
().
__init__
()
d_model
=
hidden_size
dim_feedforward
=
intermediate_size
weight_attr
=
paddle
.
ParamAttr
(
initializer
=
nn
.
initializer
.
Normal
(
mean
=
0.0
,
std
=
initializer_range
)
)
bias_attr
=
None
self
.
linear0
=
nn
.
Linear
(
d_model
,
dim_feedforward
,
weight_attr
,
bias_attr
=
bias_attr
)
self
.
linear1
=
nn
.
Linear
(
dim_feedforward
,
d_model
,
weight_attr
,
bias_attr
=
bias_attr
)
self
.
linear2
=
nn
.
Linear
(
d_model
,
1
,
weight_attr
,
bias_attr
=
bias_attr
)
self
.
norm
=
nn
.
LayerNorm
(
d_model
,
epsilon
=
1e-5
)
self
.
dropout
=
nn
.
Dropout
(
dropout_ratio
,
mode
=
"upscale_in_train"
)
def
forward
(
self
,
input0
,
input1
):
out
=
self
.
norm
(
input0
)
out
=
self
.
linear0
(
out
)
out
=
out
+
input1
out
=
F
.
gelu
(
out
,
approximate
=
True
)
out
=
self
.
linear1
(
out
)
out
=
self
.
dropout
(
out
)
out
=
self
.
linear2
(
out
)
return
out
class
TestDistSaver
(
unittest
.
TestCase
):
def
test_dist_saver
(
self
):
mlp
=
MLPLayer
()
loss
=
paddle
.
nn
.
CrossEntropyLoss
()
optimizer
=
paddle
.
optimizer
.
Adam
(
learning_rate
=
0.00001
,
beta1
=
0.9
,
beta2
=
0.999
,
epsilon
=
1e-08
,
grad_clip
=
None
,
)
metric
=
paddle
.
metric
.
Accuracy
()
strategy
=
auto
.
Strategy
()
strategy
.
auto_mode
=
"semi"
engine
=
auto
.
Engine
(
mlp
,
loss
,
optimizer
,
metric
,
strategy
=
strategy
)
inputs_spec
=
[
paddle
.
static
.
InputSpec
(
shape
=
[
2
,
1024
],
dtype
=
"float32"
,
name
=
"input0"
),
paddle
.
static
.
InputSpec
(
shape
=
[
2
,
4096
],
dtype
=
"float32"
,
name
=
"input1"
),
]
engine
.
prepare
(
inputs_spec
,
mode
=
"predict"
)
temp_dir
=
tempfile
.
TemporaryDirectory
()
model_filename
=
os
.
path
.
join
(
temp_dir
.
name
,
'mlp'
)
engine
.
save
(
model_filename
,
training
=
False
)
with
open
(
model_filename
+
"_dist0.pdmodel"
,
'rb'
)
as
f
:
data
=
f
.
read
()
program
=
paddle
.
static
.
io
.
deserialize_program
(
data
)
input_vars
=
[]
for
op
in
program
.
global_block
().
ops
:
if
op
.
type
==
"feed"
:
input_vars
.
append
(
op
.
output_arg_names
[
0
])
else
:
break
assert
input_vars
==
[
"input0"
,
"input1"
]
if
__name__
==
"__main__"
:
unittest
.
main
()
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录