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)
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)
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
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(), )
def make_result( model, samples ): return af.Result( samples, model, af.m.MockSearch() )
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() )
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
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)
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())
def fit(self, analysis, model): # noinspection PyTypeChecker return af.Result(None, analysis.fit(None), None)
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)
def _simple_fit(self, analysis, fitness_function): # noinspection PyTypeChecker return af.Result(None, analysis.fit(None), None)