Skip to content
Snippets Groups Projects
Commit eada0054 authored by Gregory Ashton's avatar Gregory Ashton
Browse files

Merge branch 'hyper_fix' into 'master'

Hyper fix

See merge request Monash/tupak!114
parents 3dc14798 af1429ad
No related branches found
No related tags found
1 merge request!114Hyper fix
Pipeline #
......@@ -21,9 +21,11 @@ from __future__ import print_function, division, absolute_import
# import local files, core utils should be imported first
from tupak.core import utils, likelihood, prior, result, sampler
from tupak.gw import detector, conversion, source, waveform_generator
from tupak.hyper import likelihood, model
# import a few often-used functions and classes to simplify scripts
from tupak.core.likelihood import Likelihood
from tupak.gw.likelihood import GravitationalWaveTransient
from tupak.gw.waveform_generator import WaveformGenerator
from tupak.core.sampler import run_sampler
from tupak.hyper.likelihood import HyperparameterLikelihood
......@@ -65,9 +65,7 @@ class GaussianLikelihood(Likelihood):
This can either be a single float, or an array with length equal
to that for `x` and `y`.
"""
# These lines of code infer the parameters from the provided function
parameters = inspect.getargspec(function).args
parameters.pop(0)
parameters = self._infer_parameters_from_model(function)
Likelihood.__init__(self, dict.fromkeys(parameters))
self.x = x
......@@ -75,22 +73,21 @@ class GaussianLikelihood(Likelihood):
self.sigma = sigma
self.function = function
@property
def function_keys(self):
return self.parameters.keys()
self.parameters = dict.fromkeys(parameters)
self.function_keys = self.parameters.keys()
if self.sigma is None:
self.parameters['sigma'] = None
@staticmethod
def _infer_parameters_from_model(model):
parameters = inspect.getargspec(model).args
parameters.pop(0)
return parameters
@property
def N(self):
return len(self.x)
@property
def sigma(self):
return self.parameters.get('sigma', None)
@sigma.setter
def sigma(self, sigma):
self.parameters['sigma'] = sigma
def log_likelihood(self):
model_parameters = {k: self.parameters[k] for k in self.function_keys}
res = self.y - self.function(self.x, **model_parameters)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment