def sample(self, x):
"""Summary
Args:
x (TYPE): Description
Returns:
TYPE: Description
"""
Su = self.Su
mu = self.mu
Lu = np.linalg.cholesky(Su)
epsilon = np.random.randn(self.Dout, self.M)
u_sample = mu + np.einsum('dab,db->da', Lu, epsilon)
kff = compute_kernel(2 * self.ls, 2 * self.sf, x, x)
kff += np.diag(JITTER * np.ones(x.shape[0]))
kfu = compute_kernel(2 * self.ls, 2 * self.sf, x, self.zu)
qfu = np.dot(kfu, self.Kuuinv)
mf = np.einsum('nm,dm->nd', qfu, u_sample)
vf = kff - np.dot(qfu, kfu.T)
Lf = np.linalg.cholesky(vf)
epsilon = np.random.randn(x.shape[0], self.Dout)
f_sample = mf + np.einsum('ab,bd->ad', Lf, epsilon)
return f_sample
评论列表
文章目录