Exemplo n.º 1
0
def test_min_ntr_noble_atoms_lsr1():
    for irep in xrange(10):
        with numpy_random_seed(irep):
            fn = Atoms(1.0, 1.0, 1, 10, np.random.normal(0, 2, 30))
            hm = LSR1HessianModel(7)
            wr = HessianModelWrapper(fn, hm)
            minimize_objective_ntr(wr, maxiter=5125)
            assert rms(fn.gradient()) < 1e-7
Exemplo n.º 2
0
def test_min_ntr_noble_atoms_lsr1():
    for irep in xrange(10):
        with numpy_random_seed(irep):
            fn = Atoms(1.0, 1.0, 1, 10, np.random.normal(0, 2, 30))
            hm = LSR1HessianModel(7)
            wr = HessianModelWrapper(fn, hm)
            minimize_objective_ntr(wr, maxiter=5125)
            assert rms(fn.gradient()) < 1e-7
Exemplo n.º 3
0
def test_multi_gauss_diis():
    completed = 0
    for irep in xrange(100):
        with numpy_random_seed(irep):
            reference, xs = get_problem(4)
            converged_a, counter_a, amps_a = run_mult_gauss_diis(reference, xs, 500, False)
            converged_b, counter_b, amps_b = run_mult_gauss_diis(reference, xs, 200, True)
            assert counter_a >= counter_b
            assert converged_b
            if converged_a and converged_b:
                completed += 1
                assert abs(amps_a - amps_b).max() < 1e-10
    assert completed > 50
Exemplo n.º 4
0
def test_multi_gauss_diis():
    completed = 0
    for irep in xrange(100):
        with numpy_random_seed(irep):
            reference, xs = get_problem(4)
            converged_a, counter_a, amps_a = run_mult_gauss_diis(
                reference, xs, 500, False)
            converged_b, counter_b, amps_b = run_mult_gauss_diis(
                reference, xs, 200, True)
            assert counter_a >= counter_b
            assert converged_b
            if converged_a and converged_b:
                completed += 1
                assert abs(amps_a - amps_b).max() < 1e-10
    assert completed > 50
Exemplo n.º 5
0
def test_compare_sr1_lsr1_constant():
    n = 5
    for irep1 in xrange(100):
        with numpy_random_seed(irep1):
            A = np.random.normal(0, 1, (n, n))
            A = (A + A.T)
            hm = SR1HessianModel(eps_skip=0.0)
            lhm = LSR1HessianModel(n, eps_skip=0.0)
            for i in xrange(3):
                delta_x = np.zeros(n)
                delta_x[i] = 1.0
                delta_g = np.dot(A, delta_x)
                hm.feed(delta_x, delta_g)
                lhm.feed(delta_x, delta_g)
            for irep2 in xrange(100):
                v = np.random.normal(0, 1, n)
                o1 = hm.dot_hessian(v)
                o2 = lhm.dot_hessian(v)
                assert abs(o1 - o2).max() < 1e-8
Exemplo n.º 6
0
def test_compare_sr1_lsr1_constant():
    n = 5
    for irep1 in xrange(100):
        with numpy_random_seed(irep1):
            A = np.random.normal(0, 1, (n, n))
            A = (A + A.T)
            hm = SR1HessianModel(eps_skip=0.0)
            lhm = LSR1HessianModel(n, eps_skip=0.0)
            for i in xrange(3):
                delta_x = np.zeros(n)
                delta_x[i] = 1.0
                delta_g = np.dot(A, delta_x)
                hm.feed(delta_x, delta_g)
                lhm.feed(delta_x, delta_g)
            for irep2 in xrange(100):
                v = np.random.normal(0, 1, n)
                o1 = hm.dot_hessian(v)
                o2 = lhm.dot_hessian(v)
                assert abs(o1 - o2).max() < 1e-8
Exemplo n.º 7
0
def test_gradient():
    fn = Atoms(1.0, 1.0, 6, 10, np.zeros(30, float))
    with numpy_random_seed(2):
        xs = [np.random.normal(0, 7, 30) for ix in xrange(100)]
        fn.test_gradient(xs, nrep=4)
Exemplo n.º 8
0
def test_gradient():
    fn = Atoms(1.0, 1.0, 6, 10, np.zeros(30, float))
    with numpy_random_seed(2):
        xs = [np.random.normal(0, 7, 30) for ix in xrange(100)]
        fn.test_gradient(xs, nrep=4)