示例#1
0
    def __init__(self, input_file):
        # Load info
        self.info = info(input_file)
        # Setup likelihood
        self.likelihood = likelihood_dict(self.info["likelihoods"])

        # DEBUG
        from plots import plot_likelihood_pdf
        plot_likelihood_pdf(self.likelihood, self.info["params"])
        
        # Setup samples_set and sampler
        self.samples = samples_set(self.info["params"])
        self.sampler = initialise_sampler(self.likelihood.loglik,
                                          lambda x: 1,
                                          self.samples, self.info["params"],
                                          self.info["sampler"],
                                          self.show_updated_info)

        # Room for parallelisation
#        n_processes = 1
#        n_times_pool = 2

        # Fire sampler
        status = self.sampler.run()

        self.final_report()
        return
示例#2
0
    def __init__(self, params_file):
        # Load info
        self.info = info(params_file)
        # Setup prior
        self.prior = prior(self.info["params"])
        # Setup likelihood
        self.likelihood = likelihood_dict(self.info["likelihoods"])
        # Consistency checks
        assert self.likelihood.dimension() == self.prior.dimension(), (
            "The dimensionalities of prior and likelihood do not match.")
        plot_likelihood(self.likelihood, self.prior)
        # Setup sample_set and sampler
        self.samples = samples_set(self.info["params"])
        # Setup sampler
        self.sampler = get_sampler(self.info["sampler"])(self.info["sampler"], self.prior, self.likelihood)
#        n_processes = 1
#        n_times_pool = 2
        # ERASE THE FORMER LINE!!!! And remove the corresponding paramenters
        n_diagnosis = 10
        # Fire sampler
        while not(self.sampler.check_convergence()):
            self.sampler.next_iteration()
            if not(self.sampler.i_iter%n_diagnosis):
                self.sampler.diagnosis(prepare_axes)