diff --git a/python/paddle/fluid/initializer.py b/python/paddle/fluid/initializer.py index 5e99007031ece399d476eed3157983cd8d2829ec..4f434328e47df4363b304ff55f587018d3157c5e 100644 --- a/python/paddle/fluid/initializer.py +++ b/python/paddle/fluid/initializer.py @@ -734,7 +734,7 @@ class NumpyArrayInitializer(Initializer): outputs={'Out': var}, attrs={ 'dtype': dtype, - 'shape': list(input.shape), + 'shape': list(self._value.shape), value_name: values }, stop_gradient=True) diff --git a/python/paddle/fluid/tests/unittests/test_initializer.py b/python/paddle/fluid/tests/unittests/test_initializer.py index 2e70175d4392156f239f4e887b2bd7dbe3437633..2d98b063d10e2bb9071c4b8dc4ac9373f63df387 100644 --- a/python/paddle/fluid/tests/unittests/test_initializer.py +++ b/python/paddle/fluid/tests/unittests/test_initializer.py @@ -427,8 +427,8 @@ class TestNumpyArrayInitializer(unittest.TestCase): import numpy program = framework.Program() block = program.global_block() + np_array = numpy.random.random((10000)).astype("float32") for _ in range(2): - np_array = numpy.array([1, 2, 3, 4]).astype('float32') block.create_parameter( dtype=np_array.dtype, shape=np_array.shape, @@ -438,6 +438,7 @@ class TestNumpyArrayInitializer(unittest.TestCase): self.assertEqual(len(block.ops), 1) init_op = block.ops[0] self.assertEqual(init_op.type, 'assign_value') + assert (init_op.attr('fp32_values') == np_array).all() if __name__ == '__main__':