From 6be834f20968d80359037253a54f5c58c746594b Mon Sep 17 00:00:00 2001 From: Colm Talbot <colm.talbot@ligo.org> Date: Fri, 8 Jun 2018 10:12:00 +1000 Subject: [PATCH] fix evidence storage and printing when noise evidence is nan --- tupak/core/result.py | 19 ++++++++++++------- tupak/core/sampler.py | 6 ++++-- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/tupak/core/result.py b/tupak/core/result.py index d5da239e2..a5440ef10 100644 --- a/tupak/core/result.py +++ b/tupak/core/result.py @@ -54,13 +54,18 @@ class Result(dict): def __repr__(self): """Print a summary """ if hasattr(self, 'samples'): - return ("nsamples: {:d}\n" - "log_noise_evidence: {:6.3f}\n" - "log_evidence: {:6.3f} +/- {:6.3f}\n" - "log_bayes_factor: {:6.3f} +/- {:6.3f}\n" - .format(len(self.samples), self.log_noise_evidence, self.log_evidence, - self.log_evidence_err, self.log_bayes_factor, - self.log_evidence_err)) + if hasattr(self, 'log_noise_evidence'): + return ("nsamples: {:d}\n" + "log_noise_evidence: {:6.3f}\n" + "log_evidence: {:6.3f} +/- {:6.3f}\n" + "log_bayes_factor: {:6.3f} +/- {:6.3f}\n" + .format(len(self.samples), self.log_noise_evidence, self.log_evidence, + self.log_evidence_err, self.log_bayes_factor, + self.log_evidence_err)) + else: + return ("nsamples: {:d}\n" + "log_evidence: {:6.3f} +/- {:6.3f}\n" + .format(len(self.samples), self.log_evidence, self.log_evidence_err)) else: return '' diff --git a/tupak/core/sampler.py b/tupak/core/sampler.py index 2ea3ad08c..5e2d26e0f 100644 --- a/tupak/core/sampler.py +++ b/tupak/core/sampler.py @@ -574,12 +574,14 @@ def run_sampler(likelihood, priors=None, label='label', outdir='outdir', else: result = sampler._run_external_sampler() - result.log_noise_evidence = likelihood.noise_log_likelihood() if sampler.use_ratio: + result.log_noise_evidence = likelihood.noise_log_likelihood() result.log_bayes_factor = result.log_evidence result.log_evidence = result.log_bayes_factor + result.log_noise_evidence else: - result.log_bayes_factor = result.log_evidence - result.log_noise_evidence + if likelihood.noise_log_likelihood() is not np.nan: + result.log_noise_evidence = likelihood.noise_log_likelihood() + result.log_bayes_factor = result.log_evidence - result.log_noise_evidence if injection_parameters is not None: result.injection_parameters = injection_parameters if conversion_function is not None: -- GitLab