for i in range(999): d.set_realisation(i) if 4 in d.fit_poles: fitter.add_model_and_dataset(model4, d, name=d.name + " " + str(i), realisation=i) else: fitter.add_model_and_dataset(model, d, name=d.name + " " + str(i), realisation=i) fitter.set_sampler(sampler) fitter.set_num_walkers(1) fitter.set_num_concurrent(100) fitter.fit(file) # Everything below is nasty plotting code ########################################################### if fitter.should_plot(): from os import path import matplotlib.pyplot as plt import logging logging.info("Creating plots") plt.rc("text", usetex=True) plt.rc("font", family="serif") res = [] if path.exists(pfn + "_alphameans.pkl"): logging.info("Found alphameans.pkl, reading from existing file")
# If run on NERSC, this will actually submit 128/num_per_task jobs, and each job will # do num_per_task. if __name__ == "__main__": pfn, dir_name, file = setup(__file__) data = PowerSpectrum_SDSS_DR12(isotropic=True, recon="iso") model = PowerBeutler2017(isotropic=data.isotropic, recon=data.recon, marg="full") sampler = EnsembleSampler(num_walkers=16, num_steps=5000, num_burn=300, temp_dir=dir_name) fitter = Fitter(dir_name) for i in range(128): data.set_realisation(i) fitter.add_model_and_dataset(model, data, realisation=i) fitter.set_sampler(sampler) fitter.set_num_walkers(1) fitter.set_num_concurrent(128) fitter.fit(file) if fitter.should_plot(): from chainconsumer import ChainConsumer posterior, weight, chain, evidence, model, data, extra = fitter.load()[0] model_results, summary = get_model_comparison_dataframe(fitter) c = ChainConsumer() c.add_chain(chain, weights=weight, parameters=model.get_labels()) c.plotter.plot(filename=pfn + "_contour.pdf")