mirror of
https://github.com/SheffieldML/GPy.git
synced 2026-05-08 11:32:39 +02:00
[basis funcs] memory efficient posterior inference
This commit is contained in:
parent
be40318e0b
commit
a24853da6b
2 changed files with 4 additions and 2 deletions
|
|
@ -132,7 +132,9 @@ class SparseGP(GP):
|
||||||
if self.posterior.woodbury_inv.ndim == 2:
|
if self.posterior.woodbury_inv.ndim == 2:
|
||||||
var = Kxx - np.dot(Kx.T, np.dot(self.posterior.woodbury_inv, Kx))
|
var = Kxx - np.dot(Kx.T, np.dot(self.posterior.woodbury_inv, Kx))
|
||||||
elif self.posterior.woodbury_inv.ndim == 3:
|
elif self.posterior.woodbury_inv.ndim == 3:
|
||||||
var = Kxx[:,:,None] - np.tensordot(np.dot(np.atleast_3d(self.posterior.woodbury_inv).T, Kx).T, Kx, [1,0]).swapaxes(1,2)
|
var = np.empty((Kxx.shape[0],Kxx.shape[1],self.posterior.woodbury_inv.shape[2]))
|
||||||
|
for i in range(var.shape[1]):
|
||||||
|
var[:, :, i] = (Kxx - mdot(Kx.T, self.posterior.woodbury_inv[:, :, i], Kx))
|
||||||
var = var
|
var = var
|
||||||
else:
|
else:
|
||||||
Kxx = kern.Kdiag(Xnew)
|
Kxx = kern.Kdiag(Xnew)
|
||||||
|
|
|
||||||
|
|
@ -136,7 +136,7 @@ class DomainKernel(LinearSlopeBasisFuncKernel):
|
||||||
def _phi(self, X):
|
def _phi(self, X):
|
||||||
phi = np.where((X>self.start)*(X<self.stop), 1, 0)
|
phi = np.where((X>self.start)*(X<self.stop), 1, 0)
|
||||||
return phi#((phi-self.start)/(self.stop-self.start))-.5
|
return phi#((phi-self.start)/(self.stop-self.start))-.5
|
||||||
|
|
||||||
class LogisticBasisFuncKernel(BasisFuncKernel):
|
class LogisticBasisFuncKernel(BasisFuncKernel):
|
||||||
def __init__(self, input_dim, centers, variance=1., slope=1., active_dims=None, ARD=False, ARD_slope=True, name='logistic'):
|
def __init__(self, input_dim, centers, variance=1., slope=1., active_dims=None, ARD=False, ARD_slope=True, name='logistic'):
|
||||||
self.centers = np.atleast_2d(centers)
|
self.centers = np.atleast_2d(centers)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue