This commit is contained in:
Max Zwiessele 2013-05-02 17:21:43 +01:00
parent 83bde47d55
commit 7529eee5ca

View file

@ -172,9 +172,15 @@ class linear(kernpart):
self._psi_computations(Z, mu, S)
tmp = self.ZZ * np.square(self.variances) # M,M,Q
dS_old = (dL_dpsi2[:, :, :, None] * tmp).sum(1).sum(1)
import ipdb;ipdb.set_trace()
# import ipdb;ipdb.set_trace()
target_S += dS_old
target_mu += (dL_dpsi2[:, :, :, None] * tmp * 2.*mu[:, None, None, :]).sum(1).sum(1)
# target_mu += (dL_dpsi2[:, :, :, None] * tmp * 2.*mu[:, None, None, :]).sum(1).sum(1)
AZZA = np.dot(self.ZA.T, self.ZA)
AZZA += AZZA.T
dpsi2_dmu = (dL_dpsi2[:, :, :, None] * (AZZA[None, None, None, :, :] * mu[:, None, None, None, :]).sum(-1)).sum(1).sum(1)
# twomu = mu[:,None,None,:,None] + mu[:,None,None,None,:]
# t = (dL_dpsi2[:, :, :, None, None] * tmp[None, :, :, :, None] * twomu).sum(1).sum(1).sum(1)
target_mu += dpsi2_dmu
def dpsi2_dZ(self, dL_dpsi2, Z, mu, S, target):
self._psi_computations(Z, mu, S)