mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-08 03:22:38 +02:00
Support non-symmetric dL_dKmm for stationary kernel
This commit is contained in:
parent
8eaa0bbf8a
commit
6119c33078
1 changed files with 7 additions and 4 deletions
|
|
@ -168,11 +168,14 @@ class Stationary(Kern):
|
|||
|
||||
#the lower memory way with a loop
|
||||
tmp = invdist*dL_dr
|
||||
if X2 is None:
|
||||
tmp *= 2.
|
||||
X2 = X
|
||||
ret = np.empty(X.shape, dtype=np.float64)
|
||||
[np.einsum('ij,ij->i', tmp, X[:,q][:,None]-X2[:,q][None,:], out=ret[:,q]) for q in xrange(self.input_dim)]
|
||||
if X2 is None:
|
||||
[np.einsum('ij,ij->i', tmp, X[:,q][:,None]-X[:,q][None,:], out=ret[:,q]) for q in xrange(self.input_dim)]
|
||||
ret2 = np.empty(X.shape, dtype=np.float64)
|
||||
[np.einsum('ij,ji->j', tmp, X[:,q][:,None]-X[:,q][None,:], out=ret2[:,q]) for q in xrange(self.input_dim)]
|
||||
ret += ret2
|
||||
else:
|
||||
[np.einsum('ij,ij->i', tmp, X[:,q][:,None]-X2[:,q][None,:], out=ret[:,q]) for q in xrange(self.input_dim)]
|
||||
ret /= self.lengthscale**2
|
||||
return ret
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue