Skip to content

Commit 587f3dd

Browse files
authored
Merge pull request #14027 from PaddlePaddle/revert-13960-fix_1_release_1.0.0
Revert "Bug fix in release 1.0.0"
2 parents fded6ea + ca4f4b6 commit 587f3dd

File tree

6 files changed

+24
-122
lines changed

6 files changed

+24
-122
lines changed

paddle/fluid/operators/fill_constant_op.cc

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,12 +70,6 @@ class FillConstantOp : public framework::OperatorBase {
7070
}
7171
};
7272

73-
class FillConstantOpVarTypeInference : public framework::VarTypeInference {
74-
public:
75-
void operator()(const framework::OpDesc &op_desc,
76-
framework::BlockDesc *block) const override {}
77-
};
78-
7973
class FillConstantOpMaker : public framework::OpProtoAndCheckerMaker {
8074
public:
8175
void Make() override {
@@ -108,5 +102,4 @@ Fill up a variable with specified constant value.
108102
namespace ops = paddle::operators;
109103
REGISTER_OPERATOR(fill_constant, ops::FillConstantOp,
110104
ops::FillConstantInferShape, ops::FillConstantOpMaker,
111-
paddle::framework::EmptyGradOpMaker,
112-
ops::FillConstantOpVarTypeInference);
105+
paddle::framework::EmptyGradOpMaker);

python/paddle/fluid/framework.py

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1522,17 +1522,13 @@ def _lr_schedule_guard(self):
15221522
>>> with program.lr_schedule_guard():
15231523
>>> lr = lr * decay
15241524
"""
1525-
1526-
tmp_role = self._current_role
1527-
tmp_var = self._op_role_var
1528-
15291525
OpRole = core.op_proto_and_checker_maker.OpRole
15301526
self._current_role = OpRole.LRSched
15311527
# TODO(typhoonzero): how to set target learning rate var
15321528
self._op_role_var = []
15331529
yield
1534-
self._op_role_var = tmp_var
1535-
self._current_role = tmp_role
1530+
self._op_role_var = []
1531+
self._current_role = OpRole.Forward
15361532

15371533
def __str__(self):
15381534
"""

python/paddle/fluid/optimizer.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
from __future__ import print_function
1616
import re
1717
from collections import defaultdict
18-
from paddle.fluid.framework import Program, Variable, name_scope, default_main_program
18+
from paddle.fluid.framework import Program, Variable, name_scope
1919
from . import framework
2020
from . import layers
2121
from .backward import append_backward
@@ -111,8 +111,7 @@ def _create_param_lr(self, param_and_grad):
111111
if param_lr == 1.0:
112112
return self._global_learning_rate()
113113
else:
114-
with default_main_program()._lr_schedule_guard():
115-
return self._global_learning_rate() * param_lr
114+
return self._global_learning_rate() * param_lr
116115

117116
def _create_accumulators(self, block, parameters):
118117
"""Create all accumulators needed by the parameters

python/paddle/fluid/tests/unittests/dist_simnet_bow.py

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,7 @@ def get_optimizer():
8181
return optimizer
8282

8383

84-
def train_network(batch_size,
85-
is_distributed=False,
86-
is_sparse=False,
87-
is_self_contained_lr=False):
84+
def train_network(batch_size, is_distributed=False, is_sparse=False):
8885
# query
8986
q = fluid.layers.data(
9087
name="query_ids", shape=[1], dtype="int64", lod_level=1)
@@ -96,9 +93,7 @@ def train_network(batch_size,
9693
param_attr=fluid.ParamAttr(
9794
initializer=fluid.initializer.Constant(value=0.01),
9895
name="__emb__",
99-
learning_rate=emb_lr) if is_self_contained_lr else fluid.ParamAttr(
100-
initializer=fluid.initializer.Constant(value=0.01),
101-
name="__emb__"),
96+
learning_rate=emb_lr),
10297
is_sparse=is_sparse)
10398
## vsum
10499
q_sum = fluid.layers.sequence_pool(input=q_emb, pool_type='sum')
@@ -124,9 +119,7 @@ def train_network(batch_size,
124119
param_attr=fluid.ParamAttr(
125120
initializer=fluid.initializer.Constant(value=0.01),
126121
name="__emb__",
127-
learning_rate=emb_lr) if is_self_contained_lr else fluid.ParamAttr(
128-
initializer=fluid.initializer.Constant(value=0.01),
129-
name="__emb__"),
122+
learning_rate=emb_lr),
130123
is_sparse=is_sparse)
131124
## vsum
132125
pt_sum = fluid.layers.sequence_pool(input=pt_emb, pool_type='sum')
@@ -151,9 +144,7 @@ def train_network(batch_size,
151144
param_attr=fluid.ParamAttr(
152145
initializer=fluid.initializer.Constant(value=0.01),
153146
name="__emb__",
154-
learning_rate=emb_lr) if is_self_contained_lr else fluid.ParamAttr(
155-
initializer=fluid.initializer.Constant(value=0.01),
156-
name="__emb__"),
147+
learning_rate=emb_lr),
157148
is_sparse=is_sparse)
158149
## vsum
159150
nt_sum = fluid.layers.sequence_pool(input=nt_emb, pool_type='sum')
@@ -229,10 +220,7 @@ class TestDistSimnetBow2x2(TestDistRunnerBase):
229220
def get_model(self, batch_size=2):
230221
# Train program
231222
avg_cost, acc, predict = \
232-
train_network(batch_size,
233-
bool(int(os.environ["IS_DISTRIBUTED"])),
234-
bool(int(os.environ["IS_SPARSE"])),
235-
bool(int(os.environ["IS_SELF_CONTAINED_LR"])))
223+
train_network(batch_size, bool(int(os.environ["IS_DISTRIBUTED"])), bool(int(os.environ["IS_SPARSE"])))
236224

237225
inference_program = fluid.default_main_program().clone()
238226

python/paddle/fluid/tests/unittests/test_dist_simnet_bow.py

Lines changed: 4 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,7 @@ def _setup_config(self):
2525
self._enforce_place = "CPU"
2626

2727
def test_simnet_bow(self):
28-
need_envs = {
29-
"IS_DISTRIBUTED": '0',
30-
"IS_SPARSE": '0',
31-
'IS_SELF_CONTAINED_LR': '1'
32-
}
28+
need_envs = {"IS_DISTRIBUTED": '0', "IS_SPARSE": '0'}
3329
self.check_with_place(
3430
"dist_simnet_bow.py",
3531
delta=1e-5,
@@ -43,11 +39,7 @@ def _setup_config(self):
4339
self._enforce_place = "CPU"
4440

4541
def test_simnet_bow(self):
46-
need_envs = {
47-
"IS_DISTRIBUTED": '0',
48-
"IS_SPARSE": '0',
49-
'IS_SELF_CONTAINED_LR': '1'
50-
}
42+
need_envs = {"IS_DISTRIBUTED": '0', "IS_SPARSE": '0'}
5143
self.check_with_place(
5244
"dist_simnet_bow.py",
5345
delta=100,
@@ -61,11 +53,7 @@ def _setup_config(self):
6153
self._enforce_place = "CPU"
6254

6355
def test_simnet_bow(self):
64-
need_envs = {
65-
"IS_DISTRIBUTED": '0',
66-
"IS_SPARSE": '1',
67-
'IS_SELF_CONTAINED_LR': '1'
68-
}
56+
need_envs = {"IS_DISTRIBUTED": '0', "IS_SPARSE": '1'}
6957
self.check_with_place(
7058
"dist_simnet_bow.py",
7159
delta=1e-5,
@@ -79,71 +67,13 @@ def _setup_config(self):
7967
self._enforce_place = "CPU"
8068

8169
def test_simnet_bow(self):
82-
need_envs = {
83-
"IS_DISTRIBUTED": '0',
84-
"IS_SPARSE": '1',
85-
'IS_SELF_CONTAINED_LR': '1'
86-
}
70+
need_envs = {"IS_DISTRIBUTED": '0', "IS_SPARSE": '1'}
8771
self.check_with_place(
8872
"dist_simnet_bow.py",
8973
delta=100,
9074
check_error_log=False,
9175
need_envs=need_envs)
9276

9377

94-
class TestDistSimnetBow2x2LookupTableSync(TestDistBase):
95-
def _setup_config(self):
96-
self._sync_mode = True
97-
self._enforce_place = "CPU"
98-
99-
def test_simnet_bow(self):
100-
need_envs = {
101-
"IS_DISTRIBUTED": '1',
102-
"IS_SPARSE": '1',
103-
'IS_SELF_CONTAINED_LR': '1'
104-
}
105-
self.check_with_place(
106-
"dist_simnet_bow.py",
107-
delta=1e-5,
108-
check_error_log=False,
109-
need_envs=need_envs)
110-
111-
112-
class TestDistSimnetBow2x2LookupTableAsync(TestDistBase):
113-
def _setup_config(self):
114-
self._sync_mode = False
115-
self._enforce_place = "CPU"
116-
117-
def test_simnet_bow(self):
118-
need_envs = {
119-
"IS_DISTRIBUTED": '1',
120-
"IS_SPARSE": '1',
121-
'IS_SELF_CONTAINED_LR': '1'
122-
}
123-
self.check_with_place(
124-
"dist_simnet_bow.py",
125-
delta=100,
126-
check_error_log=False,
127-
need_envs=need_envs)
128-
129-
130-
class TestDistSimnetBow2x2LookupTableNotContainLRSync(TestDistBase):
131-
def _setup_config(self):
132-
self._sync_mode = True
133-
self._enforce_place = "CPU"
134-
135-
def test_simnet_bow(self):
136-
need_envs = {
137-
"IS_DISTRIBUTED": '1',
138-
"IS_SPARSE": '1',
139-
'IS_SELF_CONTAINED_LR': '0'
140-
}
141-
self.check_with_place(
142-
"dist_simnet_bow.py",
143-
delta=1e-5,
144-
check_error_log=False,
145-
need_envs=need_envs)
146-
147-
14878
if __name__ == "__main__":
14979
unittest.main()

python/paddle/fluid/transpiler/distribute_transpiler.py

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,7 +1118,6 @@ def _replace_lookup_table_op_with_prefetch(self, program,
11181118

11191119
def _split_table_grad_and_add_send_vars(self, program, pserver_endpoints):
11201120
# 2. add split_ids_op and send_op to send gradient to pservers
1121-
11221121
# there should only be one table_name
11231122
all_ops = program.global_block().ops
11241123
table_grad_name = grad_var_name(self.table_name)
@@ -1143,7 +1142,7 @@ def _split_table_grad_and_add_send_vars(self, program, pserver_endpoints):
11431142
if self.sync_mode else []
11441143
},
11451144
attrs={
1146-
"sync_mode": not self.sync_mode,
1145+
"sync_mode": self.sync_mode,
11471146
"epmap": pserver_endpoints,
11481147
RPC_OP_ROLE_ATTR_NAME: RPC_OP_ROLE_ATTR_VALUE,
11491148
OP_ROLE_VAR_ATTR_NAME: [
@@ -1189,15 +1188,7 @@ def _create_prefetch_block(self, pserver_index, pserver_program,
11891188
def _create_table_optimize_block(self, pserver_index, pserver_program,
11901189
pre_block_idx, grad_to_block_id):
11911190
# STEP: create table optimize block
1192-
table_opt_block = pserver_program._create_block(pre_block_idx)
11931191
# create table param and grad var in pserver program
1194-
# create table optimize block in pserver program
1195-
table_opt_op = [
1196-
op for op in self.optimize_ops
1197-
if 'Param' in op.input_names and op.input("Param")[0] ==
1198-
self.table_name
1199-
][0]
1200-
12011192
origin_param_var = self.origin_program.global_block().vars[
12021193
self.table_name]
12031194

@@ -1213,16 +1204,19 @@ def _create_table_optimize_block(self, pserver_index, pserver_program,
12131204
dtype=origin_param_var.dtype,
12141205
type=core.VarDesc.VarType.SELECTED_ROWS,
12151206
persistable=True)
1216-
12171207
# parameter must be selected rows
12181208
param_var.desc.set_type(core.VarDesc.VarType.SELECTED_ROWS)
12191209
grad_var = pserver_program.global_block()._clone_variable(
12201210
self.origin_program.global_block().vars[grad_var_name(
12211211
self.table_name)])
12221212

1223-
lr_var = pserver_program.global_block()._clone_variable(
1224-
self.origin_program.global_block().vars[table_opt_op.input(
1225-
"LearningRate")[0]])
1213+
# create table optimize block in pserver program
1214+
table_opt_op = [
1215+
op for op in self.optimize_ops
1216+
if 'Param' in op.input_names and op.input("Param")[0] ==
1217+
self.table_name
1218+
][0]
1219+
table_opt_block = pserver_program._create_block(pre_block_idx)
12261220

12271221
if self.sync_mode:
12281222
# create grad vars in pserver program
@@ -1254,6 +1248,8 @@ def _create_table_optimize_block(self, pserver_index, pserver_program,
12541248
grad_var = pserver_program.global_block()._rename_var(
12551249
origin_grad_name, splited_grad_name)
12561250

1251+
lr_var = pserver_program.global_block().vars[table_opt_op.input(
1252+
"LearningRate")[0]]
12571253
inputs = {
12581254
"Param": [param_var],
12591255
"Grad": [grad_var],

0 commit comments

Comments
 (0)