def test_normal_gp_mll_forward():
covar = torch.Tensor([
[5, -3, 0],
[-3, 5, 0],
[0, 0, 2],
])
y = torch.randn(3)
actual = y.dot(covar.inverse().mv(y))
actual += math.log(np.linalg.det(covar.numpy()))
actual += math.log(2 * math.pi) * len(y)
actual *= -0.5
covarvar = Variable(covar)
yvar = Variable(y)
res = gpytorch.exact_gp_marginal_log_likelihood(covarvar, yvar)
assert(all(torch.abs(actual - res.data).div(res.data) < 0.1))
评论列表
文章目录