示例#1
0
    def testProblemGradients(self):
        param_shapes = [(1, 1)]
        random_seed = 200
        noise_stdev = 1.0
        problem = pg.Problem(param_shapes, random_seed, noise_stdev)

        x = tf.constant(2.)
        y = tf.constant(20.)
        parameters = [x, y]
        objective = x**2 + y**2
        grads = problem.gradients(objective, parameters)
        self.assertLen(grads, len(parameters))
        self.assertNotEqual(grads[0], grads[1])
示例#2
0
    def testProblem(self):
        param_shapes = [(5, 1), (2, 2)]
        random_seed = 200
        noise_stdev = 1.0
        problem = pg.Problem(param_shapes, random_seed, noise_stdev)

        init = problem.init_tensors()
        self.assertLen(init, len(param_shapes))
        for i, ps in enumerate(param_shapes):
            self.assertEqual(list(ps), init[i].get_shape().as_list())

        init = problem.init_variables()
        self.assertLen(init, len(param_shapes))
        for i, ps in enumerate(param_shapes):
            self.assertSequenceEqual(ps, init[i].get_shape())
            self.assertIsInstance(init[i], tf.Variable)