예제 #1
0
 def test_finite_differences(self):
     Y = np.zeros((4, 3, 2)) + 0.5
     T = create_targets_object(np.ones((4, 3, 2)))
     for err in self.error_funcs:
         def f(X):
             return err(X.reshape(*Y.shape), T)[0]
         delta_approx = approx_fprime(Y.flatten().copy(), f, 1e-7)
         delta_calc = err(Y, T)[1].flatten()
         np.testing.assert_array_almost_equal(delta_approx, delta_calc)
예제 #2
0
 def test_finite_differences(self):
     Y = np.zeros((4, 3, 2)) + 0.5
     T = SequencewiseTargets(np.array([0, 1, 0]), binarize_to=2)
     for err in self.error_funcs:
         print(err)
         def f(X):
             return err(X.reshape(*Y.shape), T)[0]
         delta_approx = approx_fprime(Y.flatten().copy(), f, 1e-7)
         delta_calc = err(Y, T)[1].flatten()
         np.testing.assert_array_almost_equal(delta_approx, delta_calc)
예제 #3
0
    def test_finite_diff(self):
        # finite differences testing
        def f(X):
            return CTC(X.reshape(4, 1, 3), LabelingTargets([self.T], binarize_to=3))[0]

        e, d = CTC(self.Y, LabelingTargets([self.T], binarize_to=3))
        print("delta_calc\n", d.reshape(4, 1, 3).T)
        delta_approx = approx_fprime(self.Y.copy().flatten(), f, 1e-5)
        print("delta_approx\n", delta_approx.reshape(4, 1, 3).T)

        self.assertLess(np.sum((delta_approx.reshape(4, 1, 3) - d) ** 2), 1e-4)