enable gpu switch in RBF

This commit is contained in:
Zhenwen Dai 2014-10-22 16:14:02 +01:00
parent 7d5b4f2769
commit c7ea906763
2 changed files with 20 additions and 2 deletions

View file

@ -83,7 +83,16 @@ class Inference_X(Model):
X_grad = self.kern.gradients_qX_expectations(variational_posterior=self.X, Z=self.Z, dL_dpsi0=self.dL_dpsi0, dL_dpsi1=self.dL_dpsi1, dL_dpsi2=self.dL_dpsi2) X_grad = self.kern.gradients_qX_expectations(variational_posterior=self.X, Z=self.Z, dL_dpsi0=self.dL_dpsi0, dL_dpsi1=self.dL_dpsi1, dL_dpsi2=self.dL_dpsi2)
self.X.set_gradients(X_grad) self.X.set_gradients(X_grad)
self._log_marginal_likelihood -= self.variational_prior.KL_divergence(self.X) from ...core.parameterization.variational import SpikeAndSlabPrior
if isinstance(self.variational_prior, SpikeAndSlabPrior):
# Update Log-likelihood
KL_div = self.variational_prior.KL_divergence(self.X, N=self.Y.shape[0])
# update for the KL divergence
self.variational_prior.update_gradients_KL(self.X, N=self.Y.shape[0])
else:
# Update Log-likelihood
KL_div = self.variational_prior.KL_divergence(self.X)
# update for the KL divergence
self.variational_prior.update_gradients_KL(self.X) self.variational_prior.update_gradients_KL(self.X)
def log_likelihood(self): def log_likelihood(self):

View file

@ -26,6 +26,15 @@ class RBF(Stationary):
else: else:
self.psicomp = PSICOMP_RBF() self.psicomp = PSICOMP_RBF()
def useGPU(self,flag=True):
if flag:
if isinstance(self.psicomp,PSICOMP_RBF):
self.useGPU = True
self.psicomp = PSICOMP_RBF_GPU()
else:
if isinstance(self.psicomp,PSICOMP_RBF_GPU):
self.psicomp = PSICOMP_RBF()
def K_of_r(self, r): def K_of_r(self, r):
return self.variance * np.exp(-0.5 * r**2) return self.variance * np.exp(-0.5 * r**2)