Beispiel #1
0
 def run(self, dataset, results, mask=None, positions=None, info=None):
     self.save_metadata(dataset)
     self.dataset = dataset
     self.results = results
     self.mask = mask
     self.positions = positions
     return af.Result(af.ModelInstance(), 1)
Beispiel #2
0
def test_projected_model():
    model = af.Model(
        af.Gaussian,
        centre=af.UniformPrior()
    )
    samples = af.Samples(
        model,
        [
            af.Sample(
                -1.0, -1.0,
                weight=random(),
                kwargs={
                    ("centre",): random(),
                    ("normalization",): random(),
                    ("sigma",): random(),
                }
            )
            for _ in range(100)
        ]
    )
    result = af.Result(
        samples=samples,
        model=model
    )
    projected_model = result.projected_model

    assert projected_model.prior_count == 3
    assert projected_model.centre is not model.centre
    assert projected_model.centre.id == model.centre.id
    assert isinstance(
        projected_model.centre,
        af.UniformPrior
    )
 def run(self, data, results, mask=None, positions=None):
     self.data = data
     self.results = results
     self.mask = mask
     self.positions = positions
     self.assert_and_save_pickle()
     return af.Result(af.ModelInstance(), 1)
Beispiel #4
0
def test_unpickle_result():
    result = af.GridSearchResult(
        [af.Result(samples=None, model=None)],
        lower_limit_lists=[[1]],
        physical_lower_limits_lists=[[1]],
    )
    result = pickle.loads(pickle.dumps(result))
    assert result is not None
def test_unpickle_result():
    # noinspection PyTypeChecker
    result = af.GridSearchResult(
        results=[af.Result(samples=None, model=None)],
        lower_limits_lists=[[1]],
        grid_priors=[],
    )
    result = pickle.loads(pickle.dumps(result))
    assert result is not None
Beispiel #6
0
def make_result():
    mapper = af.ModelMapper()
    mapper.component = af.m.MockClassx2Tuple
    # noinspection PyTypeChecker
    return af.Result(
        samples=af.m.MockSamples(gaussian_tuples=[(0, 0), (1, 0)]),
        model=mapper,
        search=af.m.MockSearch(),
    )
Beispiel #7
0
def make_result(
        model,
        samples
):
    return af.Result(
        samples,
        model,
        af.m.MockSearch()
    )
Beispiel #8
0
def make_modified_result(
        model,
        samples
):
    model.gaussian.sigma = af.GaussianPrior(
        mean=0.5,
        sigma=1
    )
    model.gaussian.centre = af.GaussianPrior(
        mean=0.5,
        sigma=1
    )
    return af.Result(
        samples,
        model,
        af.m.MockSearch()
    )
Beispiel #9
0
    def fit(self, model: af.AbstractPriorModel, analysis: af.Analysis):
        best_likelihood = float("-inf")
        best_instance = None

        likelihoods = list()

        for list_ in make_lists(no_dimensions=model.prior_count,
                                step_size=self.step_size):
            instance = model.instance_from_unit_vector(list_)
            likelihood = analysis.log_likelihood_function(instance)
            likelihoods.append(likelihood)
            if likelihood > best_likelihood:
                best_likelihood = likelihood
                best_instance = instance

        return af.Result(samples=MockSamples(
            max_log_likelihood_instance=best_instance,
            log_likelihoods=likelihoods,
            gaussian_tuples=None),
                         previous_model=model)
def test_higher_dimensions(
        n_dimensions,
        n_steps
):
    shape = n_dimensions * (n_steps,)
    total = n_steps ** n_dimensions
    model = af.Model(
        af.Gaussian
    )
    result = af.GridSearchResult(
        results=total * [
            af.Result(
                af.NestSamples(
                    model,
                    [
                        af.Sample(
                            1.0,
                            1.0,
                            1.0,
                            {
                                "centre": 1.0,
                                "sigma": 1.0,
                                "normalization": 1.0
                            }
                        )
                    ]
                ),
                model=model
            )
        ],
        grid_priors=[],
        lower_limits_lists=total * [
            n_dimensions * [0.0]
        ]
    )
    assert result.shape == shape
    assert result.results_native.shape == shape
    assert result.log_likelihoods_native.shape == shape
Beispiel #11
0
def test__identifier_description__after_model_and_instance():

    model = af.CollectionPriorModel(gaussian=af.PriorModel(
        af.Gaussian,
        centre=af.UniformPrior(lower_limit=0.0, upper_limit=1.0),
        normalization=af.LogUniformPrior(lower_limit=0.001, upper_limit=0.01),
        sigma=af.GaussianPrior(
            mean=0.5, sigma=2.0, lower_limit=-1.0, upper_limit=1.0),
    ))

    max_log_likelihood_instance = model.instance_from_prior_medians()

    samples = af.m.MockSamples(
        max_log_likelihood_instance=max_log_likelihood_instance,
        gaussian_tuples=[(1.0, 2.0), (3.0, 4.0), (5.0, 6.0)])
    search = af.m.MockSearch(prior_passer=af.PriorPasser(
        sigma=1.0, use_errors=True, use_widths=False))

    result = af.Result(samples=samples, model=model, search=search)

    model.gaussian.centre = result.model.gaussian.centre
    model.gaussian.normalization = result.instance.gaussian.normalization

    identifier = Identifier([model])

    description = identifier.description.splitlines()

    # THIS TEST FAILS DUE TO THE BUG DESCRIBED IN A GITHUB ISSUE.

    i = 0

    assert description[i] == "CollectionPriorModel"
    i += 1
    assert description[i] == "item_number"
    i += 1
    assert description[i] == "0"
    i += 1
    assert description[i] == "gaussian"
    i += 1
    assert description[i] == "PriorModel"
    i += 1
    assert description[i] == "cls"
    i += 1
    assert description[i] == "autofit.example.model.Gaussian"
    i += 1
    assert description[i] == "centre"
    i += 1
    assert description[i] == "GaussianPrior"
    i += 1
    assert description[i] == "lower_limit"
    i += 1
    assert description[i] == "0.0"
    i += 1
    assert description[i] == "upper_limit"
    i += 1
    assert description[i] == "1.0"
    i += 1
    assert description[i] == "mean"
    i += 1
    assert description[i] == "1.0"
    i += 1
    assert description[i] == "sigma"
    i += 1
    assert description[i] == "2.0"
    i += 1
    assert description[i] == "normalization"
    i += 1
    assert description[i] == "0.00316228"
    i += 1
    assert description[i] == "sigma"
    i += 1
    assert description[i] == "GaussianPrior"
    i += 1
    assert description[i] == "lower_limit"
    i += 1
    assert description[i] == "-1.0"
    i += 1
    assert description[i] == "upper_limit"
    i += 1
    assert description[i] == "1.0"
    i += 1
    assert description[i] == "mean"
    i += 1
    assert description[i] == "0.5"
    i += 1
    assert description[i] == "sigma"
    i += 1
    assert description[i] == "2.0"
    i += 1
 def run(self, positions, pixel_scales, results):
     self.save_metadata(MockImagingData())
     self.positions = positions
     self.pixel_scales = pixel_scales
     self.results = results
     return af.Result(af.ModelInstance(), 1)
Beispiel #13
0
 def run(self, positions, pixel_scale, results):
     self.positions = positions
     self.pixel_scale = pixel_scale
     self.results = results
     return af.Result(af.ModelInstance(), 1)
def make_result():
    model = af.Mapper()
    model.one = af.PriorModel(mock.MockComponents, component=mock.MockClassx2)
    return af.Result(model=model,
                     samples=mock.MockSamples(),
                     search=mock.MockSearch())
Beispiel #15
0
 def fit(self, analysis, model):
     # noinspection PyTypeChecker
     return af.Result(None, analysis.fit(None), None)
Beispiel #16
0
 def run(self, dataset, results, mask=None):
     self.dataset = dataset
     self.results = results
     self.mask = mask
     self.assert_and_save_pickle()
     return af.Result(af.ModelInstance(), 1)
Beispiel #17
0
 def _simple_fit(self, analysis, fitness_function):
     # noinspection PyTypeChecker
     return af.Result(None, analysis.fit(None), None)