Skip to content

Commit cc9d22c

Browse files
author
Elizabeth
committed
Fixing broken kernels due to the add_parameter --> link_parameter rename
1 parent bb1bc50 commit cc9d22c

File tree

3 files changed

+23
-23
lines changed

3 files changed

+23
-23
lines changed

GPy/kern/src/splitKern.py

+19-19
Original file line numberDiff line numberDiff line change
@@ -14,25 +14,25 @@ def __init__(self, kernel, idx_p, Xp, index_dim=-1, name='DiffGenomeKern'):
1414
self.index_dim=index_dim
1515
self.kern = SplitKern(kernel,Xp, index_dim=index_dim)
1616
super(DEtime, self).__init__(input_dim=kernel.input_dim+1, active_dims=None, name=name)
17-
self.add_parameter(self.kern)
18-
17+
self.link_parameter(self.kern)
18+
1919
def K(self, X, X2=None):
2020
assert X2==None
2121
K = self.kern.K(X,X2)
22-
22+
2323
if self.idx_p<=0 or self.idx_p>X.shape[0]/2:
2424
return K
25-
25+
2626
slices = index_to_slices(X[:,self.index_dim])
2727
idx_start = slices[1][0].start
2828
idx_end = idx_start+self.idx_p
2929
K_c = K[idx_start:idx_end,idx_start:idx_end].copy()
3030
K[idx_start:idx_end,:] = K[:self.idx_p,:]
3131
K[:,idx_start:idx_end] = K[:,:self.idx_p]
3232
K[idx_start:idx_end,idx_start:idx_end] = K_c
33-
33+
3434
return K
35-
35+
3636
def Kdiag(self,X):
3737
Kdiag = self.kern.Kdiag(X)
3838

@@ -43,19 +43,19 @@ def Kdiag(self,X):
4343
idx_start = slices[1][0].start
4444
idx_end = idx_start+self.idx_p
4545
Kdiag[idx_start:idx_end] = Kdiag[:self.idx_p]
46-
46+
4747
return Kdiag
48-
48+
4949
def update_gradients_full(self,dL_dK,X,X2=None):
5050
assert X2==None
5151
if self.idx_p<=0 or self.idx_p>X.shape[0]/2:
5252
self.kern.update_gradients_full(dL_dK, X)
5353
return
54-
54+
5555
slices = index_to_slices(X[:,self.index_dim])
5656
idx_start = slices[1][0].start
5757
idx_end = idx_start+self.idx_p
58-
58+
5959
self.kern.update_gradients_full(dL_dK[idx_start:idx_end,:], X[:self.idx_p],X)
6060
grad_p1 = self.kern.gradient.copy()
6161
self.kern.update_gradients_full(dL_dK[:,idx_start:idx_end], X, X[:self.idx_p])
@@ -108,7 +108,7 @@ def K(self,X ,X2=None):
108108
if len(slices)>1:
109109
[target.__setitem__((s,s2), self.kern_cross.K(X[s,:],X2[s2,:])) for s,s2 in itertools.product(slices[1], slices2[0])]
110110
if len(slices2)>1:
111-
[target.__setitem__((s,s2), self.kern_cross.K(X[s,:],X2[s2,:])) for s,s2 in itertools.product(slices[0], slices2[1])]
111+
[target.__setitem__((s,s2), self.kern_cross.K(X[s,:],X2[s2,:])) for s,s2 in itertools.product(slices[0], slices2[1])]
112112
return target
113113

114114
def Kdiag(self,X):
@@ -125,7 +125,7 @@ def collate_grads(dL, X, X2, cross=False):
125125
else:
126126
self.kern.update_gradients_full(dL,X,X2)
127127
target[:] += self.kern.gradient
128-
128+
129129
if X2 is None:
130130
assert dL_dK.shape==(X.shape[0],X.shape[0])
131131
[[collate_grads(dL_dK[s,ss], X[s], X[ss]) for s,ss in itertools.product(slices_i, slices_i)] for slices_i in slices]
@@ -154,20 +154,20 @@ def __init__(self, kernel, Xp, name='SplitKern_cross'):
154154
Xp = np.array([[Xp]])
155155
self.Xp = Xp
156156
super(SplitKern_cross, self).__init__(input_dim=kernel.input_dim, active_dims=None, name=name)
157-
157+
158158
def K(self, X, X2=None):
159159
if X2 is None:
160160
return np.dot(self.kern.K(X,self.Xp),self.kern.K(self.Xp,X))/self.kern.K(self.Xp,self.Xp)
161161
else:
162162
return np.dot(self.kern.K(X,self.Xp),self.kern.K(self.Xp,X2))/self.kern.K(self.Xp,self.Xp)
163-
163+
164164
def Kdiag(self, X):
165165
return np.inner(self.kern.K(X,self.Xp),self.kern.K(self.Xp,X).T)/self.kern.K(self.Xp,self.Xp)
166166

167167
def update_gradients_full(self, dL_dK, X, X2=None):
168168
if X2 is None:
169169
X2 = X
170-
170+
171171
k1 = self.kern.K(X,self.Xp)
172172
k2 = self.kern.K(self.Xp,X2)
173173
k3 = self.kern.K(self.Xp,self.Xp)
@@ -181,7 +181,7 @@ def update_gradients_full(self, dL_dK, X, X2=None):
181181
grad += self.kern.gradient.copy()
182182
self.kern.update_gradients_full(np.array([[dL_dk3]]),self.Xp,self.Xp)
183183
grad += self.kern.gradient.copy()
184-
184+
185185
self.kern.gradient = grad
186186

187187
def update_gradients_diag(self, dL_dKdiag, X):
@@ -191,14 +191,14 @@ def update_gradients_diag(self, dL_dKdiag, X):
191191
dL_dk1 = dL_dKdiag*k2[0]/k3
192192
dL_dk2 = dL_dKdiag*k1[:,0]/k3
193193
dL_dk3 = -dL_dKdiag*(k1[:,0]*k2[0]).sum()/(k3*k3)
194-
194+
195195
self.kern.update_gradients_full(dL_dk1[:,None],X,self.Xp)
196196
grad1 = self.kern.gradient.copy()
197197
self.kern.update_gradients_full(dL_dk2[None,:],self.Xp,X)
198198
grad2 = self.kern.gradient.copy()
199199
self.kern.update_gradients_full(np.array([[dL_dk3]]),self.Xp,self.Xp)
200200
grad3 = self.kern.gradient.copy()
201-
201+
202202
self.kern.gradient = grad1+grad2+grad3
203-
203+
204204

GPy/kern/src/todo/symmetric.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def __init__(self,k,transform=None):
2424
self.num_params = k.num_params
2525
self.name = k.name + '_symm'
2626
self.k = k
27-
self.add_parameter(k)
27+
self.link_parameter(k)
2828
#self._set_params(k._get_params())
2929

3030
def K(self,X,X2,target):

GPy/kern/src/trunclinear.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def __init__(self, input_dim, variances=None, delta=None, ARD=False, active_dims
5151

5252
self.variances = Param('variances', variances, Logexp())
5353
self.delta = Param('delta', delta)
54-
self.add_parameter(self.variances)
55-
self.add_parameter(self.delta)
54+
self.link_parameter(self.variances)
55+
self.link_parameter(self.delta)
5656

5757
@Cache_this(limit=3)
5858
def K(self, X, X2=None):
@@ -146,7 +146,7 @@ def __init__(self, input_dim, interval, variances=None, ARD=False, active_dims=N
146146
variances = np.ones(self.input_dim)
147147

148148
self.variances = Param('variances', variances, Logexp())
149-
self.add_parameter(self.variances)
149+
self.link_parameter(self.variances)
150150

151151

152152
# @Cache_this(limit=3)

0 commit comments

Comments
 (0)