Ejemplo n.º 1
0
 def test_differentiate_compound_add(self):
     self.assertEqual(differentiate(add(3, add('x', 4)), {'x': 2}), 1)
     self.assertEqual(
         differentiate(add('x', add('y', 3)), {
             'x': 2,
             'y': 5
         }), 1)
Ejemplo n.º 2
0
 def test_add_var_diff(self):
     x = add(3, 'x')
     self.assertEqual(3, x.in1)
     self.assertEqual('x', x.in2)
     self.assertEqual(x.diff({'x': 2}), 1)
     self.assertEqual(0, x.local_grad1)
     self.assertEqual(1, x.local_grad2)
Ejemplo n.º 3
0
 def test_add_var_evaluate(self):
     x = add(3, 'x')
     self.assertEqual(3, x.in1)
     self.assertEqual('x', x.in2)
     self.assertEqual(x.evaluate({'x': 2}), 5)
     self.assertEqual(3, x.in1)
     self.assertEqual(2, x.in2)
Ejemplo n.º 4
0
 def test_add_const_diff(self):
     x = add(3, 4)
     self.assertEqual(3, x.in1)
     self.assertEqual(4, x.in2)
     self.assertEqual(x.diff({}), 0)
     self.assertEqual(0, x.local_grad1)
     self.assertEqual(0, x.local_grad2)
Ejemplo n.º 5
0
 def test_add_const_evaluate(self):
     x = add(3, 4)
     self.assertIsInstance(x, add)
     self.assertEqual(3, x.in1)
     self.assertEqual(4, x.in2)
     self.assertEqual(x.evaluate({}), 7)
     self.assertEqual(3, x.in1)
     self.assertEqual(4, x.in2)
Ejemplo n.º 6
0
 def test_differentiate_compount_ops(self):
     self.assertEqual(
         differentiate(add(3, multiply('x', 'x')), {
             'x': 2,
             'y': 5
         }), 4)
     self.assertEqual(
         differentiate(
             add(3, add(multiply(2, 'x'),
                        multiply('x', multiply('x', 'x')))), {'x': 2}), 14)
     self.assertEqual(
         differentiate(
             add(
                 3,
                 add(multiply(2, multiply('x', 'x')),
                     multiply(4, multiply('x', multiply('x', 'x'))))),
             {'x': 2}), 56)
Ejemplo n.º 7
0
 def test_evaluate_compound_ops(self):
     self.assertEqual(
         evaluate(add(3, multiply('x', 'x')), {
             'x': 2,
             'y': 5
         }), 7)
     self.assertEqual(
         evaluate(
             add(3, add(multiply(2, 'x'),
                        multiply('x', multiply('x', 'x')))), {'x': 2}), 15)
     self.assertEqual(
         evaluate(
             add(
                 3,
                 add(multiply(2, multiply('x', 'x')),
                     multiply(4, multiply('x', multiply('x', 'x'))))),
             {'x': 2}), 43)
Ejemplo n.º 8
0
 def loss_func(self, feed_dict={}):
     batch_size = feed_dict["predicted_y"].shape[0]
     return ad.add(
         ad.negative(
             ad.__getitem__(
                 ad.Placeholder(feed_dict["predicted_y"]),
                 ad.Constant(
                     tuple([range(batch_size),
                            feed_dict["true_y"].ravel()])))),
         ad.log(
             ad.sum(ad.exp(ad.Placeholder(feed_dict["predicted_y"])),
                    axis=1)))
Ejemplo n.º 9
0
 def test_evaluate_compound_add(self):
     self.assertEqual(evaluate(add(3, add('x', 4)), {'x': 2}), 9)
     self.assertEqual(evaluate(add('x', add('y', 3)), {'x': 2, 'y': 5}), 10)
Ejemplo n.º 10
0
 def test_evaluate_simple_add(self):
     self.assertEqual(evaluate(add(3, 'x'), {'x': 2}), 5)
     self.assertEqual(evaluate(add(3, 3), {}), 6)
     self.assertEqual(evaluate(add('x', 'y'), {'x': 1, 'y': 2}), 3)
Ejemplo n.º 11
0
 def test_differentiate_simple_add(self):
     self.assertEqual(differentiate(add(3, 'x'), {'x': 2}), 1)
     self.assertEqual(differentiate(add(3, 3), {}), 0)
     self.assertEqual(differentiate(add('x', 'y'), {'x': 1, 'y': 2}), 1)
Ejemplo n.º 12
0
def test2(x, y, z):
    return ad.multiply(ad.add(ad.Variable(x), ad.Variable(y)),
                       ad.maximum(ad.Variable(y), ad.Variable(z)))
Ejemplo n.º 13
0
def test(x, y, z, w):
    return ad.multiply(
        ad.add(ad.multiply(ad.Variable(x), ad.Variable(y)),
               ad.maximum(ad.Variable(z), ad.Variable(w))), ad.Constant(2))
Ejemplo n.º 14
0
def tanh(x):
    return ad.divide(
        ad.subtract(ad.Constant(1), ad.exp(ad.negative(ad.Variable(x)))),
        ad.add(ad.Constant(1), ad.exp(ad.negative(ad.Variable(x)))))