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