def test_ncg_rosen(): obj = Rosenbrock() opt = NonlinearConjugateGradient(obj.pars, obj.f, obj.fprime) for i, info in enumerate(opt): if i > 14: break assert obj.solved(), 'did not find solution'
def test_bfgs_rosen(): obj = Rosenbrock() opt = Bfgs(obj.pars, obj.f, obj.fprime) for i, info in enumerate(opt): if i > 50: break assert obj.solved(), 'did not find solution'
def test_xnes_rosen(): obj = Rosenbrock() opt = Xnes(obj.pars, obj.f) for i, info in enumerate(opt): if i > 10000: break assert obj.solved(0.3), 'did not find solution'
def test_lbfgs_rosen(): obj = Rosenbrock() opt = Lbfgs(obj.pars, obj.f, obj.fprime) for i, info in enumerate(opt): if i > 50: break assert obj.solved(), 'did not find solution'
def test_xnes_rosen(): obj = Rosenbrock() opt = Xnes(obj.pars, obj.f) for i, info in enumerate(opt): if i > 10000: break assert obj.solved(0.3), "did not find solution"
def test_rprop_rosen(): obj = Rosenbrock() opt = Rprop(obj.pars, obj.f, obj.fprime, step_shrink=0.1, step_grow=1.2, min_step=1e-6, max_step=0.1) for i, info in enumerate(opt): if i > 5000: break assert obj.solved(), 'did not find solution'
def test_rprop_rosen(): obj = Rosenbrock() opt = Rprop(obj.pars, obj.fprime, step_shrink=0.1, step_grow=1.2, min_step=1e-6, max_step=0.1) for i, info in enumerate(opt): if i > 5000: break assert obj.solved(), 'did not find solution'
def test_smd_rosen(): obj = Rosenbrock() opt = Smd(obj.pars, obj.f, obj.fprime, obj.f_Hp, eta0=2e-3, lmbd=0.9) for i, info in enumerate(opt): if i > 5000: break assert ((1 - obj.pars) < 0.01).all(), 'did not find solution'
def test_gd_rosen(): obj = Rosenbrock() opt = GradientDescent(obj.pars, obj.fprime, step_rate=0.01, momentum=.9) for i, info in enumerate(opt): if i > 5000: break assert ((1 - obj.pars) < 0.01).all(), 'did not find solution'
def test_asgd_rosen(): obj = Rosenbrock() opt = Asgd(obj.pars, obj.fprime, eta0=2e-3, t0=1) for i, info in enumerate(opt): if i > 100000: break assert ((1 - obj.pars) < 0.01).all(), 'did not find solution'