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])
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)