Esempio n. 1
0
 def test_constant_initializer_default_value(self):
     """Test the constant initializer with default value
     """
     program = framework.Program()
     block = program.global_block()
     block.create_parameter(dtype="float32",
                            shape=[5, 10],
                            lod_level=0,
                            name="param",
                            initializer=initializer.ConstantInitializer())
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'fill_constant')
     self.assertAlmostEqual(init_op.attr('value'), 0.0, delta=DELTA)
Esempio n. 2
0
def paddle_random_normal(shape, loc=.0, scale=1., seed=1, dtype="float32"):
    program = framework.Program()
    block = program.global_block()
    w = block.create_var(
        dtype="float32",
        shape=shape,
        lod_level=0,
        name="param",
        initializer=initializer.NormalInitializer(
            loc=.0, scale=scale, seed=seed))
    place = core.CPUPlace()
    exe = Executor(place)
    out = exe.run(program, fetch_list=[w])
    return np.array(out[0])
Esempio n. 3
0
 def test_uniform_initializer_default_value(self):
     """Test the uniform initializer with default value
     """
     program = framework.Program()
     block = program.global_block()
     block.create_parameter(dtype="float32",
                            shape=[5, 10],
                            lod_level=0,
                            name="param",
                            initializer=initializer.UniformInitializer())
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'uniform_random')
     self.assertAlmostEqual(init_op.attr('min'), -1.0, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('max'), 1.0, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 0)
Esempio n. 4
0
 def test_uniform_initializer(self):
     """Test uniform initializer with supplied attributes
     """
     program = framework.Program()
     block = program.global_block()
     block.create_parameter(dtype="float32",
                            shape=[5, 10],
                            lod_level=0,
                            name="param",
                            initializer=initializer.UniformInitializer(
                                -4.2, 3.1, 123))
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'uniform_random')
     self.assertAlmostEqual(init_op.attr('min'), -4.2, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('max'), 3.1, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 123)
Esempio n. 5
0
 def test_normal_initializer(self):
     """Test normal initializer with supplied attributes
     """
     program = framework.Program()
     block = program.global_block()
     block.create_parameter(dtype="float32",
                            shape=[5, 10],
                            lod_level=0,
                            name="param",
                            initializer=initializer.NormalInitializer(
                                2.3, 1.9, 123))
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'gaussian_random')
     self.assertAlmostEqual(init_op.attr('mean'), 2.3, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('std'), 1.9, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 123)
Esempio n. 6
0
 def test_msra_initializer_supplied_arguments(self):
     """Test the MSRA initializer with supplied arguments
     """
     program = framework.Program()
     block = program.global_block()
     block.create_parameter(dtype="float32",
                            shape=[5, 10],
                            lod_level=0,
                            name="param",
                            initializer=initializer.MSRAInitializer(
                                fan_in=12, seed=134))
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'uniform_random')
     limit = np.sqrt(6.0 / 12)
     self.assertAlmostEqual(init_op.attr('min'), -limit, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('max'), limit, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 134)
Esempio n. 7
0
 def test_l2decay_regularizer(self):
     program = framework.Program()
     block = program.global_block()
     mul_x = block.create_parameter(
         dtype="float32",
         shape=[5, 10],
         lod_level=0,
         name="mul.x",
         regularizer=regularizer.L1DecayRegularizer(0.5))
     self.assertTrue(mul_x.regularizer is not None)
     self.assertTrue(
         isinstance(mul_x.regularizer, regularizer.L1DecayRegularizer))
     mul_y = block.create_var(dtype="float32",
                              shape=[10, 8],
                              lod_level=0,
                              name="mul.y")
     mul_out = block.create_var(dtype="float32",
                                shape=[5, 8],
                                lod_level=0,
                                name="mul.out")
     block.append_op(type="mul",
                     inputs={
                         "X": mul_x,
                         "Y": mul_y
                     },
                     outputs={"Out": mul_out},
                     attrs={"x_num_col_dims": 1})
     mean_out = block.create_var(dtype="float32",
                                 shape=[1],
                                 lod_level=0,
                                 name="mean.out")
     block.append_op(type="mean",
                     inputs={"X": mul_out},
                     outputs={"Out": mean_out})
     params_grads = append_backward_ops(mean_out)
     self.assertEqual(len(params_grads), 1)
     count_ops = len(block.ops)
     params_grads = optimizer.append_regularization_ops(params_grads)
     self.assertEqual(len(params_grads), 1)
     self.assertEqual(len(block.ops), count_ops + 3)
     self.assertEqual(block.ops[-1].type, 'elementwise_add')
     self.assertEqual(block.ops[-2].type, 'scale')
     self.assertEqual(block.ops[-3].type, 'sign')
Esempio n. 8
0
 def test_normal_msra_initializer(self):
     """Test MSRA initializer with normal distribution on
        for matrix multiply.
     """
     program = framework.Program()
     block = program.global_block()
     param = block.create_parameter(
         dtype="float32",
         shape=[5, 10],
         lod_level=0,
         name="param",
         initializer=initializer.MSRAInitializer(uniform=False))
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'gaussian_random')
     std = np.sqrt(2.0 / param.shape[0])
     self.assertAlmostEqual(init_op.attr('mean'), 0.0, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('std'), std, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 0)
Esempio n. 9
0
 def test_uniform_msra_initializer(self):
     """Test MSRA initializer with uniform distribution on
        for matrix multiply.
     """
     program = framework.Program()
     block = program.global_block()
     param = block.create_parameter(
         dtype="float32",
         shape=[5, 10],
         lod_level=0,
         name="param",
         initializer=initializer.MSRAInitializer())
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'uniform_random')
     limit = np.sqrt(6.0 / param.shape[0])
     self.assertAlmostEqual(init_op.attr('min'), -limit, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('max'), limit, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 0)
Esempio n. 10
0
 def test_uniform_msra_initializer_conv(self):
     """Test MSRA initializer with uniform distribution on
        for convolutions.
     """
     program = framework.Program()
     block = program.global_block()
     param = block.create_parameter(
         dtype="float32",
         shape=[5, 10, 15, 20],
         lod_level=0,
         name="param",
         initializer=initializer.MSRAInitializer())
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'uniform_random')
     receptive_field_size = float(15 * 20)
     limit = np.sqrt(6.0 / (param.shape[1] * receptive_field_size))
     self.assertAlmostEqual(init_op.attr('min'), -limit, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('max'), limit, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 0)
Esempio n. 11
0
 def test_uniform_initializer_random_seed(self):
     """Test the uniform initializer with manually setting seed
     """
     program = framework.Program()
     program.random_seed = 123
     block = program.global_block()
     block.create_parameter(dtype="float32",
                            shape=[5, 10],
                            lod_level=0,
                            name="param",
                            initializer=initializer.UniformInitializer())
     block.create_parameter(
         dtype="float32",
         shape=[5, 10],
         lod_level=0,
         name="param",
         initializer=initializer.UniformInitializer(seed=456))
     init_op = block.ops[1]
     self.assertEqual(init_op.attr("seed"), 123)
     init_op1 = block.ops[0]
     self.assertEqual(init_op1.attr("seed"), 456)
Esempio n. 12
0
 def test_normal_xavier_initializer_conv(self):
     """Test Xavier initializer with normal distribution on
        for convolutions.
     """
     program = framework.Program()
     block = program.global_block()
     param = block.create_parameter(
         dtype="float32",
         shape=[5, 10, 15, 20],
         lod_level=0,
         name="param",
         initializer=initializer.XavierInitializer(uniform=False))
     self.assertEqual(len(block.ops), 1)
     init_op = block.ops[0]
     self.assertEqual(init_op.type, 'gaussian_random')
     receptive_field_size = float(15 * 20)
     std = np.sqrt(
         2.0 / ((param.shape[0] + param.shape[1]) * receptive_field_size))
     self.assertAlmostEqual(init_op.attr('mean'), 0.0, delta=DELTA)
     self.assertAlmostEqual(init_op.attr('std'), std, delta=DELTA)
     self.assertEqual(init_op.attr('seed'), 0)