Skip to content

Commit 5b3d33b

Browse files
authored
test=release/1.5, fix problem that get_attr method can't using default mode when we call has_attr in dygraph (#19328) (#19414)
* add default getItem * test=develop, fix has_attr disabled error in Layer * test=develop, fix GroupNorm and deepcf bug on attrs
1 parent 07e7ebe commit 5b3d33b

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

python/paddle/fluid/dygraph/layers.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,6 +212,8 @@ def __getattr__(self, name):
212212
return self._parameters[name]
213213
elif name in self._sub_layers:
214214
return self._sub_layers[name]
215+
else:
216+
return object.__getattribute__(self, name)
215217

216218
def __setattr__(self, name, value):
217219
if isinstance(value, framework.Parameter):

python/paddle/fluid/dygraph/nn.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2403,9 +2403,9 @@ def _build_once(self, input):
24032403

24042404
def forward(self, input):
24052405
inputs = {'X': input}
2406-
if self._bias:
2406+
if self._bias_attr:
24072407
inputs['Bias'] = self._bias
2408-
if self._scale:
2408+
if self._param_attr:
24092409
inputs['Scale'] = self._scale
24102410

24112411
# create output

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,13 @@ def test_rnn(self):
405405
self.assertTrue(np.allclose(dy_grad_h2h2, static_grad_h2h))
406406
self.assertTrue(np.allclose(dy_grad_i2h2, static_grad_i2h))
407407

408+
def test_layer_attrs(self):
409+
layer = fluid.dygraph.Layer("test")
410+
layer.test_attr = 1
411+
self.assertFalse(hasattr(layer, "whatever"))
412+
self.assertTrue(hasattr(layer, "test_attr"))
413+
self.assertEqual(layer.test_attr, 1)
414+
408415

409416
if __name__ == '__main__':
410417
unittest.main()

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

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ def __init__(self, name_scope):
7373
self.add_sublayer(
7474
'match_layer_%d' % i,
7575
fluid.FC(self.full_name(), self._hid_sizes[i], act='relu')))
76-
self._mat
7776

7877
def forward(self, users, items):
7978
users = self._user_latent(users)

0 commit comments

Comments
 (0)