mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-06 18:42:39 +02:00
Fixed bug in the product of kernels with tied parameters
This commit is contained in:
parent
a1568ca1c8
commit
b0f6495ed4
3 changed files with 10 additions and 3 deletions
|
|
@ -102,6 +102,11 @@ class parameterised(object):
|
|||
else:
|
||||
return expr
|
||||
|
||||
def Nparam_transformed(self):
|
||||
ties = 0
|
||||
for ar in self.tied_indices:
|
||||
ties += ar.size - 1
|
||||
return self.Nparam - len(self.constrained_fixed_indices) - ties
|
||||
|
||||
def constrain_positive(self, which):
|
||||
"""
|
||||
|
|
@ -149,8 +154,6 @@ class parameterised(object):
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
def constrain_negative(self,which):
|
||||
"""
|
||||
Set negative constraints.
|
||||
|
|
|
|||
|
|
@ -236,6 +236,8 @@ class kern(parameterised):
|
|||
X2 = X
|
||||
target = np.zeros(self.Nparam)
|
||||
[p.dK_dtheta(partial[s1,s2],X[s1,i_s],X2[s2,i_s],target[ps]) for p,i_s,ps,s1,s2 in zip(self.parts, self.input_slices, self.param_slices, slices1, slices2)]
|
||||
|
||||
#TODO: transform the gradients here!
|
||||
return target
|
||||
|
||||
def dK_dX(self,partial,X,X2=None,slices1=None,slices2=None):
|
||||
|
|
|
|||
|
|
@ -62,7 +62,9 @@ class GP(model):
|
|||
|
||||
def _set_params(self,p):
|
||||
self.kern._set_params_transformed(p[:self.kern.Nparam])
|
||||
self.likelihood._set_params(p[self.kern.Nparam:])
|
||||
#self.likelihood._set_params(p[self.kern.Nparam:]) # test by Nicolas
|
||||
self.likelihood._set_params(p[self.kern.Nparam_transformed():]) # test by Nicolas
|
||||
|
||||
|
||||
self.K = self.kern.K(self.X,slices1=self.Xslices)
|
||||
self.K += self.likelihood.covariance_matrix
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue