コード例 #1
0
    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]
コード例 #2
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)
コード例 #3
0
ファイル: test_lbfgs.py プロジェクト: rhayes777/PyAutoFit
    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
コード例 #4
0
ファイル: test_zeus.py プロジェクト: rhayes777/PyAutoFit
    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
コード例 #5
0
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,
コード例 #6
0
    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