예제 #1
0
def test_pickle_controller():
    names = ["CMAESOptimizer", "REPSOptimizer"]
    optimizers = [CMAESOptimizer, REPSOptimizer]
    for name, Optimizer in zip(names, optimizers):
        opt = Optimizer(initial_params=np.zeros(2))
        ctrl = Controller(environment=ObjectiveFunction(),
                          behavior_search=JustOptimizer(opt))
        assert_pickle(name, ctrl)
예제 #2
0
def test_save_black_box_search():
    bs = BlackBoxSearch(ConstantBehavior(), NoOptimizer())
    bs.init(5, 5)

    assert_pickle("BlackBoxSearch", bs)

    path = "." + os.sep
    bs.write_results(path)
    bs.get_behavior_from_results(path)
    filename = path + "BlackBoxSearch.pickle"
    assert_true(os.path.exists(filename))
    if os.path.exists(filename):
        os.remove(filename)
예제 #3
0
def test_optimizers_follow_standard_protocol():
    for name, Optimizer in ALL_OPTIMIZERS:
        opt = Optimizer()
        n_params = 2
        opt.init(n_params)
        assert_false(opt.is_behavior_learning_done())
        params = np.empty(n_params)
        opt.get_next_parameters(params)
        assert_true(np.isfinite(params).all())
        opt.set_evaluation_feedback(np.array([0.0]))
        params = opt.get_best_parameters()
        assert_equal(len(params), n_params)
        assert_true(np.isfinite(params).all())

        assert_pickle(name, opt)
예제 #4
0
def test_contextual_optimizers_follow_standard_protocol():
    for name, ContextualOptimizer in ALL_CONTEXTUALOPTIMIZERS:
        opt = ContextualOptimizer()
        n_params = 1
        n_context_dims = 1
        opt.init(n_params, n_context_dims)
        context = opt.get_desired_context()
        if context is None:
            context = np.zeros(n_context_dims)
        opt.set_context(context)
        assert_false(opt.is_behavior_learning_done())
        params = np.empty(n_params)
        opt.get_next_parameters(params)
        assert_true(np.isfinite(params).all())
        opt.set_evaluation_feedback(np.array([0.0]))

        policy = opt.best_policy()
        assert_true(np.isfinite(policy(context)).all())

        assert_pickle(name, opt)