diff --git a/python/paddle/fluid/dygraph/layers.py b/python/paddle/fluid/dygraph/layers.py index eca8d060b0f2f79d30ec8abda57aeeb2677d8c16..afb18ed505bd6f31c4aa2a0ad4feafdaa1da28f1 100644 --- a/python/paddle/fluid/dygraph/layers.py +++ b/python/paddle/fluid/dygraph/layers.py @@ -212,6 +212,8 @@ class Layer(core.Layer): return self._parameters[name] elif name in self._sub_layers: return self._sub_layers[name] + else: + return object.__getattribute__(self, name) def __setattr__(self, name, value): if isinstance(value, framework.Parameter): diff --git a/python/paddle/fluid/dygraph/nn.py b/python/paddle/fluid/dygraph/nn.py index f933e22ddfa552d0e997bfeb16ac2b0c597d949d..8e78d8d0089c0d7f3b9baa8d320145ef3223cc06 100644 --- a/python/paddle/fluid/dygraph/nn.py +++ b/python/paddle/fluid/dygraph/nn.py @@ -2403,9 +2403,9 @@ class GroupNorm(layers.Layer): def forward(self, input): inputs = {'X': input} - if self._bias: + if self._bias_attr: inputs['Bias'] = self._bias - if self._scale: + if self._param_attr: inputs['Scale'] = self._scale # create output diff --git a/python/paddle/fluid/tests/unittests/test_imperative_basic.py b/python/paddle/fluid/tests/unittests/test_imperative_basic.py index afa21a375a4da29c1ea964eb66f792f0cc7a0356..dd721f6671fd3fcfea690a4b820240a50b3c2b23 100644 --- a/python/paddle/fluid/tests/unittests/test_imperative_basic.py +++ b/python/paddle/fluid/tests/unittests/test_imperative_basic.py @@ -405,6 +405,13 @@ class TestImperative(unittest.TestCase): self.assertTrue(np.allclose(dy_grad_h2h2, static_grad_h2h)) self.assertTrue(np.allclose(dy_grad_i2h2, static_grad_i2h)) + def test_layer_attrs(self): + layer = fluid.dygraph.Layer("test") + layer.test_attr = 1 + self.assertFalse(hasattr(layer, "whatever")) + self.assertTrue(hasattr(layer, "test_attr")) + self.assertEqual(layer.test_attr, 1) + if __name__ == '__main__': unittest.main() diff --git a/python/paddle/fluid/tests/unittests/test_imperative_deepcf.py b/python/paddle/fluid/tests/unittests/test_imperative_deepcf.py index daf8cc00d434e6843b224a5ef8de4176105bbf73..579b073d0829435a98b01ffb7ca4be46b2a272a7 100644 --- a/python/paddle/fluid/tests/unittests/test_imperative_deepcf.py +++ b/python/paddle/fluid/tests/unittests/test_imperative_deepcf.py @@ -73,7 +73,6 @@ class MLP(fluid.Layer): self.add_sublayer( 'match_layer_%d' % i, fluid.FC(self.full_name(), self._hid_sizes[i], act='relu'))) - self._mat def forward(self, users, items): users = self._user_latent(users)