Loading peak_integration.py +8 −0 Original line number Diff line number Diff line Loading @@ -1152,7 +1152,13 @@ class Histogram(object): elif loss=='mle': gaussian_peak = Gaussian(ndims=3, covariance_parameterization=covariance_parameterization) class MLELoss(object): def __init__(self): self.func_calls = 0 self.grad_calls = 0 self.hess_calls = 0 def __call__(self, params): self.func_calls+=1 self.func_params = np.asarray(params).copy() # background Loading @@ -1167,6 +1173,7 @@ class Histogram(object): return (self.fit-fit_data*np.log(self.fit)).sum() def gradient(self, params, *args, **kwargs): self.grad_calls += 1 self.grad_params = np.asarray(params).copy() if not np.all(self.grad_params==self.func_params): g = self.__call__(params) Loading @@ -1178,6 +1185,7 @@ class Histogram(object): return np.concatenate((dloss_dbkgr,dloss_dpeak)) def hessian(self, params, *args, **kwargs): self.hess_calls += 1 self.hess_params = np.asarray(params).copy() if not np.all(self.hess_params==self.func_params): g = self.__call__(params) if not np.all(self.hess_params==self.grad_params): dg = self.gradient(params) Loading Loading
peak_integration.py +8 −0 Original line number Diff line number Diff line Loading @@ -1152,7 +1152,13 @@ class Histogram(object): elif loss=='mle': gaussian_peak = Gaussian(ndims=3, covariance_parameterization=covariance_parameterization) class MLELoss(object): def __init__(self): self.func_calls = 0 self.grad_calls = 0 self.hess_calls = 0 def __call__(self, params): self.func_calls+=1 self.func_params = np.asarray(params).copy() # background Loading @@ -1167,6 +1173,7 @@ class Histogram(object): return (self.fit-fit_data*np.log(self.fit)).sum() def gradient(self, params, *args, **kwargs): self.grad_calls += 1 self.grad_params = np.asarray(params).copy() if not np.all(self.grad_params==self.func_params): g = self.__call__(params) Loading @@ -1178,6 +1185,7 @@ class Histogram(object): return np.concatenate((dloss_dbkgr,dloss_dpeak)) def hessian(self, params, *args, **kwargs): self.hess_calls += 1 self.hess_params = np.asarray(params).copy() if not np.all(self.hess_params==self.func_params): g = self.__call__(params) if not np.all(self.hess_params==self.grad_params): dg = self.gradient(params) Loading