mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-18 13:55:14 +02:00
Merge branch 'params' of github.com:SheffieldML/GPy into params
This commit is contained in:
commit
ca40b9803a
2 changed files with 12 additions and 13 deletions
|
|
@ -62,13 +62,18 @@ class RBF(Stationary):
|
||||||
|
|
||||||
#from psi1
|
#from psi1
|
||||||
self.variance.gradient += np.sum(dL_dpsi1 * _dpsi1_dvariance)
|
self.variance.gradient += np.sum(dL_dpsi1 * _dpsi1_dvariance)
|
||||||
self.lengthscale.gradient = (dL_dpsi1[:,:,None]*_dpsi1_dlengthscale).reshape(-1,self.input_dim).sum(axis=0)
|
if self.ARD:
|
||||||
|
self.lengthscale.gradient = (dL_dpsi1[:,:,None]*_dpsi1_dlengthscale).reshape(-1,self.input_dim).sum(axis=0)
|
||||||
|
else:
|
||||||
|
self.lengthscale.gradient = (dL_dpsi1[:,:,None]*_dpsi1_dlengthscale).sum()
|
||||||
|
|
||||||
|
|
||||||
#from psi2
|
#from psi2
|
||||||
self.variance.gradient += (dL_dpsi2 * _dpsi2_dvariance).sum()
|
self.variance.gradient += (dL_dpsi2 * _dpsi2_dvariance).sum()
|
||||||
self.lengthscale.gradient += (dL_dpsi2[:,:,:,None] * _dpsi2_dlengthscale).reshape(-1,self.input_dim).sum(axis=0)
|
if self.ARD:
|
||||||
return
|
self.lengthscale.gradient += (dL_dpsi2[:,:,:,None] * _dpsi2_dlengthscale).reshape(-1,self.input_dim).sum(axis=0)
|
||||||
|
else:
|
||||||
|
self.lengthscale.gradient += (dL_dpsi2[:,:,:,None] * _dpsi2_dlengthscale).sum()
|
||||||
|
|
||||||
elif isinstance(variational_posterior, variational.NormalPosterior):
|
elif isinstance(variational_posterior, variational.NormalPosterior):
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,22 +6,15 @@ The package for the psi statistics computation
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import numpy as np
|
import numpy as np
|
||||||
|
from GPy.util.caching import Cache_this
|
||||||
|
|
||||||
|
@Cache_this(limit=1)
|
||||||
def _Z_distances(Z):
|
def _Z_distances(Z):
|
||||||
Zhat = 0.5 * (Z[:, None, :] + Z[None, :, :]) # M,M,Q
|
Zhat = 0.5 * (Z[:, None, :] + Z[None, :, :]) # M,M,Q
|
||||||
Zdist = 0.5 * (Z[:, None, :] - Z[None, :, :]) # M,M,Q
|
Zdist = 0.5 * (Z[:, None, :] - Z[None, :, :]) # M,M,Q
|
||||||
return Zhat, Zdist
|
return Zhat, Zdist
|
||||||
|
|
||||||
# def _psi1computations(self, Z, vp):
|
@Cache_this(limit=1)
|
||||||
# mu, S = vp.mean, vp.variance
|
|
||||||
# l2 = lengthscale **2
|
|
||||||
# denom = S[:, None, :] / l2 + 1. # N,1,Q
|
|
||||||
# dist = Z[None, :, :] - mu[:, None, :] # N,M,Q
|
|
||||||
# dist_sq = np.square(dist) / l2 / denom # N,M,Q
|
|
||||||
# exponent = -0.5 * np.sum(dist_sq + np.log(denom), -1)#N,M
|
|
||||||
# psi1 = self.variance * np.exp(exponent) # N,M
|
|
||||||
# return denom, dist, dist_sq, psi1
|
|
||||||
|
|
||||||
def _psi1computations(variance, lengthscale, Z, mu, S, gamma):
|
def _psi1computations(variance, lengthscale, Z, mu, S, gamma):
|
||||||
"""
|
"""
|
||||||
Z - MxQ
|
Z - MxQ
|
||||||
|
|
@ -64,6 +57,7 @@ def _psi1computations(variance, lengthscale, Z, mu, S, gamma):
|
||||||
|
|
||||||
return _psi1, _dpsi1_dvariance, _dpsi1_dgamma, _dpsi1_dmu, _dpsi1_dS, _dpsi1_dZ, _dpsi1_dlengthscale
|
return _psi1, _dpsi1_dvariance, _dpsi1_dgamma, _dpsi1_dmu, _dpsi1_dS, _dpsi1_dZ, _dpsi1_dlengthscale
|
||||||
|
|
||||||
|
@Cache_this(limit=1)
|
||||||
def _psi2computations(variance, lengthscale, Z, mu, S, gamma):
|
def _psi2computations(variance, lengthscale, Z, mu, S, gamma):
|
||||||
"""
|
"""
|
||||||
Z - MxQ
|
Z - MxQ
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue