def test_load_save(self): cov_main = GPCov(wfn_params=[1.0,], dfn_params=[ 2.5,], wfn_str="compact0", dfn_str="euclidean") cov_fic = GPCov(wfn_params=[1.0,], dfn_params=[ 1.5,], wfn_str="se", dfn_str="euclidean", Xu = self.u) noise_var = 1.0 gp1 = GP(X=self.X, y=self.y1, noise_var = noise_var, cov_main = cov_main, cov_fic = cov_fic, compute_ll=True, sparse_threshold=0, build_tree=False) gp1.save_trained_model("test_csfic.npz") gp2 = GP(fname="test_csfic.npz", build_tree=False) pts = np.reshape(np.linspace(-5, 5, 20), (-1, 1)) p1 = gp1.predict(pts) v1 = gp1.variance(pts) p2 = gp2.predict(pts) v2 = gp2.variance(pts) self.assertTrue((p1 == p2).all()) self.assertTrue((v1 == v2).all())
def test_predict(self): cov_main = GPCov(wfn_params=[1.0,], dfn_params=[ 2.5,], wfn_str="compact0", dfn_str="euclidean") cov_fic = GPCov(wfn_params=[1.0,], dfn_params=[ 1.5,], wfn_str="se", dfn_str="euclidean", Xu = self.u) noise_var = 1.0 gp = GP(X=self.X, y=self.y1, noise_var = noise_var, cov_main = cov_main, cov_fic = cov_fic, compute_ll=True, sparse_threshold=0, build_tree=False) x_test = np.reshape(np.linspace(-6,6,20), (-1, 1)) pred = gp.predict(x_test) true_pred = [-0.408347998350141, -0.562026829764370, -0.495194901764167, -0.221325067983013, -0.108486527530546, -0.382362268970377, -1.048794656436814, -1.603860074325163, -1.642537462422822, -1.301189117082765, -0.590641591880188, 0.013777393473535, 0.078987024190573, -0.060588451482957, -0.779405572439649, -1.566025186126343, -1.839795343563452, -1.918702553019862, -1.422525401522495, -0.783325324315960] self.assertTrue( ( np.abs(pred-true_pred) < 1e-7 ).all() ) var = gp.variance(x_test) true_var = [1.845225336549096, 1.656486150287482, 1.467352884081546, 1.383325051904399, 1.238510769551563, 0.823748649278482, 0.390452316432541, 0.493252719187497, 0.988398813692138, 1.290702032271763, 1.290702032271763, 0.988398813692137, 0.493252719187498, 0.390452316432541, 0.823748649278483, 1.238510769551562, 1.383325051904399, 1.467352884081546, 1.656486150287482, 1.845225336549096] self.assertTrue( ( np.abs(var-true_var) < 1e-7 ).all() ) true_ll = -45.986450666568985 self.assertAlmostEqual(true_ll, gp.ll, places=8)
def test_load_save(self): gp1 = self.gp gp1.save_trained_model("test_semi.npz") gp2 = GP(fname="test_semi.npz", build_tree=False) pts = np.reshape(np.linspace(-5, 5, 20), (-1, 1)) p1 = gp1.predict(pts) v1 = gp1.variance(pts) p2 = gp2.predict(pts) v2 = gp2.variance(pts) self.assertTrue((p1 == p2).all()) self.assertTrue((v1 == v2).all())