def test__ball__samples_sample_centre_of_priors(self): model = af.PriorModel(af.m.MockClassx4) model.one = af.UniformPrior(lower_limit=0.0, upper_limit=1.0) model.two = af.UniformPrior(lower_limit=0.0, upper_limit=2.0) model.three = af.UniformPrior(lower_limit=0.0, upper_limit=3.0) model.four = af.UniformPrior(lower_limit=0.0, upper_limit=4.0) initializer = af.InitializerBall(lower_limit=0.4999, upper_limit=0.5001) unit_parameter_lists, parameter_lists, figure_of_merit_list = initializer.samples_from_model( total_points=2, model=model, fitness_function=MockFitness()) assert 0.4999 < unit_parameter_lists[0][0] < 0.5001 assert 0.4999 < unit_parameter_lists[1][0] < 0.5001 assert 0.4999 < unit_parameter_lists[0][1] < 0.5001 assert 0.4999 < unit_parameter_lists[1][1] < 0.5001 assert 0.4999 < unit_parameter_lists[0][2] < 0.5001 assert 0.4999 < unit_parameter_lists[1][2] < 0.5001 assert 0.4999 < unit_parameter_lists[0][3] < 0.5001 assert 0.4999 < unit_parameter_lists[1][3] < 0.5001 assert 0.499 < parameter_lists[0][0] < 0.501 assert 0.499 < parameter_lists[1][0] < 0.501 assert 0.999 < parameter_lists[0][1] < 1.001 assert 0.999 < parameter_lists[1][1] < 1.001 assert 1.499 < parameter_lists[0][2] < 1.501 assert 1.499 < parameter_lists[1][2] < 1.501 assert 1.999 < parameter_lists[0][3] < 2.001 assert 1.999 < parameter_lists[1][3] < 2.001 initializer = af.InitializerBall(lower_limit=0.7999, upper_limit=0.8001) unit_parameter_lists, parameter_lists, figure_of_merit_list = initializer.samples_from_model( total_points=2, model=model, fitness_function=MockFitness()) assert 0.799 < parameter_lists[0][0] < 0.801 assert 0.799 < parameter_lists[1][0] < 0.801 assert 1.599 < parameter_lists[0][1] < 1.601 assert 1.599 < parameter_lists[1][1] < 1.601 assert 2.399 < parameter_lists[0][2] < 2.401 assert 2.399 < parameter_lists[1][2] < 2.401 assert 3.199 < parameter_lists[0][3] < 3.201 assert 3.199 < parameter_lists[1][3] < 3.201 assert figure_of_merit_list == 2 * [1.0]
def test__loads_from_config_file_correct(self): drawer = af.Drawer( total_draws=5, prior_passer=af.PriorPasser(sigma=2.0, use_errors=False, use_widths=False), initializer=af.InitializerBall(lower_limit=0.2, upper_limit=0.8), ) assert drawer.prior_passer.sigma == 2.0 assert drawer.prior_passer.use_errors is False assert drawer.prior_passer.use_widths is False assert drawer.config_dict_search["total_draws"] == 5 assert isinstance(drawer.initializer, af.InitializerBall) assert drawer.initializer.lower_limit == 0.2 assert drawer.initializer.upper_limit == 0.8 assert drawer.number_of_cores == 1 drawer = af.Drawer() assert drawer.prior_passer.sigma == 3.0 assert drawer.prior_passer.use_errors is True assert drawer.prior_passer.use_widths is True assert drawer.config_dict_search["total_draws"] == 10 assert isinstance(drawer.initializer, af.InitializerPrior)
def test__loads_from_config_file_correct(self): lbfgs = af.LBFGS( prior_passer=af.PriorPasser(sigma=2.0, use_errors=False, use_widths=False), tol=0.2, disp=True, maxcor=11, ftol=2., gtol=3., eps=4., maxfun=25000, maxiter=26000, iprint=-2, maxls=21, initializer=af.InitializerBall(lower_limit=0.2, upper_limit=0.8), iterations_per_update=10, number_of_cores=2, ) assert lbfgs.prior_passer.sigma == 2.0 assert lbfgs.prior_passer.use_errors is False assert lbfgs.prior_passer.use_widths is False assert lbfgs.config_dict_search["tol"] == 0.2 assert lbfgs.config_dict_options["maxcor"] == 11 assert lbfgs.config_dict_options["ftol"] == 2. assert lbfgs.config_dict_options["gtol"] == 3. assert lbfgs.config_dict_options["eps"] == 4. assert lbfgs.config_dict_options["maxfun"] == 25000 assert lbfgs.config_dict_options["maxiter"] == 26000 assert lbfgs.config_dict_options["iprint"] == -2 assert lbfgs.config_dict_options["maxls"] == 21 assert lbfgs.config_dict_options["disp"] == True assert isinstance(lbfgs.initializer, af.InitializerBall) assert lbfgs.initializer.lower_limit == 0.2 assert lbfgs.initializer.upper_limit == 0.8 assert lbfgs.iterations_per_update == 10 assert lbfgs.number_of_cores == 2 lbfgs = af.LBFGS() assert lbfgs.prior_passer.sigma == 3.0 assert lbfgs.prior_passer.use_errors is True assert lbfgs.prior_passer.use_widths is True assert lbfgs.config_dict_search["tol"] == None assert lbfgs.config_dict_options["maxcor"] == 10 assert lbfgs.config_dict_options["ftol"] == 2.220446049250313e-09 assert lbfgs.config_dict_options["gtol"] == 1e-05 assert lbfgs.config_dict_options["eps"] == 1e-08 assert lbfgs.config_dict_options["maxfun"] == 15000 assert lbfgs.config_dict_options["maxiter"] == 15000 assert lbfgs.config_dict_options["iprint"] == -1 assert lbfgs.config_dict_options["maxls"] == 20 assert lbfgs.config_dict_options["maxiter"] == 15000 assert lbfgs.config_dict_options["disp"] == False assert isinstance(lbfgs.initializer, af.InitializerPrior) assert lbfgs.iterations_per_update == 11
def test__loads_from_config_file_correct(self): zeus = af.Zeus( prior_passer=af.PriorPasser(sigma=2.0, use_errors=False, use_widths=False), nwalkers=51, nsteps=2001, initializer=af.InitializerBall(lower_limit=0.2, upper_limit=0.8), auto_correlations_settings=af.AutoCorrelationsSettings( check_for_convergence=False, check_size=101, required_length=51, change_threshold=0.02), tune=False, number_of_cores=2, ) assert zeus.prior_passer.sigma == 2.0 assert zeus.prior_passer.use_errors is False assert zeus.prior_passer.use_widths is False assert zeus.config_dict_search["nwalkers"] == 51 assert zeus.config_dict_run["nsteps"] == 2001 assert zeus.config_dict_run["tune"] == False assert isinstance(zeus.initializer, af.InitializerBall) assert zeus.initializer.lower_limit == 0.2 assert zeus.initializer.upper_limit == 0.8 assert zeus.auto_correlations_settings.check_for_convergence is False assert zeus.auto_correlations_settings.check_size == 101 assert zeus.auto_correlations_settings.required_length == 51 assert zeus.auto_correlations_settings.change_threshold == 0.02 assert zeus.number_of_cores == 2 zeus = af.Zeus() assert zeus.prior_passer.sigma == 3.0 assert zeus.prior_passer.use_errors is True assert zeus.prior_passer.use_widths is True assert zeus.config_dict_search["nwalkers"] == 50 assert zeus.config_dict_run["nsteps"] == 2000 assert zeus.config_dict_run["tune"] == True assert isinstance(zeus.initializer, af.InitializerPrior) assert zeus.auto_correlations_settings.check_for_convergence is True assert zeus.auto_correlations_settings.check_size == 100 assert zeus.auto_correlations_settings.required_length == 50 assert zeus.auto_correlations_settings.change_threshold == 0.01 assert zeus.number_of_cores == 1
We create the Analysis as per using. """ analysis = al.AnalysisImaging(dataset=imaging) """ __Search__ Below we use zeus to fit the lens model, using the model with start points as described above. See the Zeus docs for a description of what the input parameters below do. """ search = af.Zeus( path_prefix=path.join("imaging", "searches"), name="Zeus", unique_tag=dataset_name, nwalkers=30, nsteps=200, initializer=af.InitializerBall(lower_limit=0.49, upper_limit=0.51), auto_correlations_settings=af.AutoCorrelationsSettings( check_for_convergence=True, check_size=100, required_length=50, change_threshold=0.01, ), tune=False, tolerance=0.05, patience=5, maxsteps=10000, mu=1.0, maxiter=10000, vectorize=False, check_walkers=True, shuffle_ensemble=True,
def test__loads_from_config_file_correct(self): pso = af.PySwarmsGlobal( prior_passer=af.PriorPasser(sigma=2.0, use_errors=False, use_widths=False), n_particles=51, iters=2001, cognitive=0.4, social=0.5, inertia=0.6, initializer=af.InitializerBall(lower_limit=0.2, upper_limit=0.8), iterations_per_update=10, number_of_cores=2, ) assert pso.prior_passer.sigma == 2.0 assert pso.prior_passer.use_errors is False assert pso.prior_passer.use_widths is False assert pso.config_dict_search["n_particles"] == 51 assert pso.config_dict_search["cognitive"] == 0.4 assert pso.config_dict_run["iters"] == 2001 assert isinstance(pso.initializer, af.InitializerBall) assert pso.initializer.lower_limit == 0.2 assert pso.initializer.upper_limit == 0.8 assert pso.iterations_per_update == 10 assert pso.number_of_cores == 2 pso = af.PySwarmsGlobal() assert pso.prior_passer.sigma == 3.0 assert pso.prior_passer.use_errors is True assert pso.prior_passer.use_widths is True assert pso.config_dict_search["n_particles"] == 50 assert pso.config_dict_search["cognitive"] == 0.1 assert pso.config_dict_run["iters"] == 2000 assert isinstance(pso.initializer, af.InitializerPrior) assert pso.iterations_per_update == 11 assert pso.number_of_cores == 1 pso = af.PySwarmsLocal( prior_passer=af.PriorPasser(sigma=2.0, use_errors=False, use_widths=False), n_particles=51, iters=2001, cognitive=0.4, social=0.5, inertia=0.6, number_of_k_neighbors=4, minkowski_p_norm=1, initializer=af.InitializerBall(lower_limit=0.2, upper_limit=0.8), iterations_per_update=10, number_of_cores=2, ) assert pso.prior_passer.sigma == 2.0 assert pso.prior_passer.use_errors is False assert pso.prior_passer.use_widths is False assert pso.config_dict_search["n_particles"] == 51 assert pso.config_dict_search["cognitive"] == 0.4 assert pso.config_dict_run["iters"] == 2001 assert isinstance(pso.initializer, af.InitializerBall) assert pso.initializer.lower_limit == 0.2 assert pso.initializer.upper_limit == 0.8 assert pso.iterations_per_update == 10 assert pso.number_of_cores == 2 pso = af.PySwarmsLocal() assert pso.prior_passer.sigma == 3.0 assert pso.prior_passer.use_errors is True assert pso.prior_passer.use_widths is True assert pso.config_dict_search["n_particles"] == 50 assert pso.config_dict_search["cognitive"] == 0.1 assert pso.config_dict_run["iters"] == 2000 assert isinstance(pso.initializer, af.InitializerPrior) assert pso.iterations_per_update == 11 assert pso.number_of_cores == 1