From fe60812f7d4d0356efbae93c3e2dc1fdfad73bb2 Mon Sep 17 00:00:00 2001 From: James Hensman Date: Fri, 31 May 2013 12:00:02 +0100 Subject: [PATCH] modified EP code, should be more stable I hope --- GPy/likelihoods/EP.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/GPy/likelihoods/EP.py b/GPy/likelihoods/EP.py index 4e1e0c5b..efca0649 100644 --- a/GPy/likelihoods/EP.py +++ b/GPy/likelihoods/EP.py @@ -319,7 +319,8 @@ class EP(likelihood): Iplus_Dprod_i = 1./(1.+ Diag0 * self.tau_tilde) Diag = Diag0 * Iplus_Dprod_i P = Iplus_Dprod_i[:,None] * P0 - L = jitchol(np.eye(M) + np.dot(RPT0,((1. - Iplus_Dprod_i)/Diag0)[:,None]*RPT0.T)) + safe_diag = np.where(Diag0 < self.tau_tilde, self.tau_tilde/(1.+Diag0*self.tau_tilde), (1. - Iplus_Dprod_i)/Diag0) + L = jitchol(np.eye(M) + np.dot(RPT0,safe_diag[:,None]*RPT0.T)) R,info = linalg.lapack.flapack.dtrtrs(L,R0,lower=1) RPT = np.dot(R,P.T) Sigma_diag = Diag + np.sum(RPT.T*RPT.T,-1)