def test_L2NormPenaltyNode(self):
     max_allowed_rel_err = 1e-5
     l2_reg = np.array(4.0)
     w = nodes.ValueNode("w")
     l2_norm_node = nodes.L2NormPenaltyNode(l2_reg, w, "l2 norm node")
     d = (5)
     init_vals = {"w":np.array(np.random.standard_normal(d))}
     max_rel_err = test_utils.test_node_backward(l2_norm_node, init_vals, delta=1e-7)
     self.assertTrue(max_rel_err < max_allowed_rel_err)
Esempio n. 2
0
 def test_backward_SquaredL2DistanceNode_2d_array(self):
     dims = (10, 10)
     init_vals = {
         "a": np.array(np.random.standard_normal(dims)),
         "b": np.array(np.random.standard_normal(dims)),
     }
     max_rel_err = test_utils.test_node_backward(self.l2_node,
                                                 init_vals,
                                                 delta=1e-7)
     self.assertTrue(max_rel_err < self.max_allowed_rel_err)
Esempio n. 3
0
    def test_TanhNode(self):
        a = nodes.ValueNode(node_name="a")
        tanh_node = nodes.TanhNode(a, "tanh")
        m = 8
        d = 5
        init_vals = {"a":np.random.randn(m,d)}

        max_rel_err = test_utils.test_node_backward(tanh_node, init_vals, delta=1e-7)
        max_allowed_rel_err = 1e-5
        self.assertTrue(max_rel_err < max_allowed_rel_err)
Esempio n. 4
0
 def test_backward_VectorScalarAffineNode(self):
     n_ftrs = 5
     init_vals = {
         "w": np.random.randn(n_ftrs),
         "x": np.random.randn(n_ftrs),
         "b": np.array(np.random.randn()),
     }
     max_rel_err = test_utils.test_node_backward(self.affine_node,
                                                 init_vals,
                                                 delta=1e-7)
     self.assertTrue(max_rel_err < self.max_allowed_rel_err)
Esempio n. 5
0
 def test_backward_SquaredL2DistanceNode_1d_array(self):
     # Not used for linear regression, but can also apply the
     # node to higher dimensional arrays
     dims = 10
     init_vals = {
         "a": np.array(np.random.standard_normal(dims)),
         "b": np.array(np.random.standard_normal(dims)),
     }
     max_rel_err = test_utils.test_node_backward(self.l2_node,
                                                 init_vals,
                                                 delta=1e-7)
     self.assertTrue(max_rel_err < self.max_allowed_rel_err)
    def test_SumNode(self):
        max_allowed_rel_err = 1e-5
        a = nodes.ValueNode("a")
        b = nodes.ValueNode("b")
        dims = ()
        a_val = np.array(np.random.standard_normal(dims))
        b_val = np.array(np.random.standard_normal(dims))
        sum_node = nodes.SumNode(a, b, "sum node")

        init_vals = {"a":a_val, "b":b_val}
        max_rel_err = test_utils.test_node_backward(sum_node, init_vals, delta=1e-7)
        self.assertTrue(max_rel_err < max_allowed_rel_err)
Esempio n. 7
0
    def test_AffineNode(self):
        W = nodes.ValueNode(node_name="W")
        x = nodes.ValueNode(node_name="x")
        b = nodes.ValueNode(node_name="b")
        affine_node = nodes.AffineNode(W, x, b, "affine")
        m = 8
        d = 5
        init_vals = {"W":np.random.randn(m,d),
                     "b":np.random.randn(m),
                     "x":np.random.randn(d)}

        max_rel_err = test_utils.test_node_backward(affine_node, init_vals, delta=1e-7)
        max_allowed_rel_err = 1e-5
        self.assertTrue(max_rel_err < max_allowed_rel_err)
    def test_backward_SquaredL2DistanceNode(self):
        max_allowed_rel_err = 1e-5
        a = nodes.ValueNode("a")
        b = nodes.ValueNode("b")
        node = nodes.SquaredL2DistanceNode(a, b, "L2 dist node")
        dims = ()
        init_vals = {
            "a": np.array(np.random.standard_normal(dims)),
            "b": np.array(np.random.standard_normal(dims))
        }
        max_rel_err = test_utils.test_node_backward(node,
                                                    init_vals,
                                                    delta=1e-7)
        self.assertTrue(max_rel_err < max_allowed_rel_err)

        # Not used for linear regression, but can also apply the
        # node to higher dimensional arrays
        dims = (10)
        init_vals = {
            "a": np.array(np.random.standard_normal(dims)),
            "b": np.array(np.random.standard_normal(dims))
        }
        max_rel_err = test_utils.test_node_backward(node,
                                                    init_vals,
                                                    delta=1e-7)
        self.assertTrue(max_rel_err < max_allowed_rel_err)

        dims = (10, 10)
        init_vals = {
            "a": np.array(np.random.standard_normal(dims)),
            "b": np.array(np.random.standard_normal(dims))
        }
        max_rel_err = test_utils.test_node_backward(node,
                                                    init_vals,
                                                    delta=1e-7)
        self.assertTrue(max_rel_err < max_allowed_rel_err)
 def test_backward_VectorScalarAffineNode(self):
     max_allowed_rel_err = 1e-5
     w = nodes.ValueNode("w")
     x = nodes.ValueNode("x")
     b = nodes.ValueNode("b")
     affine_node = nodes.VectorScalarAffineNode(x, w, b, "affine node")
     num_ftrs = 5
     init_vals = {
         "w": np.random.randn(num_ftrs),
         "x": np.random.randn(num_ftrs),
         "b": np.array(np.random.randn())
     }
     max_rel_err = test_utils.test_node_backward(affine_node,
                                                 init_vals,
                                                 delta=1e-7)
     self.assertTrue(max_rel_err < max_allowed_rel_err)