|
1 | 1 | import unittest
|
2 | 2 |
|
3 | 3 | import torch
|
| 4 | +from botorch.optim.optimize import optimize_acqf |
4 | 5 | from botorch_community.acquisition.latent_information_gain import LatentInformationGain
|
5 | 6 | from botorch_community.models.np_regression import NeuralProcessModel
|
6 | 7 |
|
@@ -32,16 +33,22 @@ def test_initialization(self):
|
32 | 33 | self.assertEqual(self.acquisition_function.num_samples, 10)
|
33 | 34 | self.assertEqual(self.acquisition_function.model, self.model)
|
34 | 35 |
|
35 |
| - def test_acquisition_shape(self): |
36 |
| - self.model(self.model.train_X, self.model.train_Y) |
37 |
| - lig_score = self.acquisition_function.forward(candidate_x=self.candidate_x) |
38 |
| - self.assertTrue(torch.is_tensor(lig_score)) |
39 |
| - self.assertEqual(lig_score.shape, (1, 5)) |
40 |
| - |
41 |
| - def test_acquisition_kl(self): |
42 |
| - self.model(self.model.train_X, self.model.train_Y) |
43 |
| - lig_score = self.acquisition_function.forward(candidate_x=self.candidate_x) |
44 |
| - self.assertGreaterEqual(lig_score.mean().item(), 0) |
| 36 | + def test_acqf(self): |
| 37 | + bounds = torch.tensor([[0.0] * self.x_dim, [1.0] * self.x_dim]) |
| 38 | + q = 3 |
| 39 | + raw_samples = 8 |
| 40 | + num_restarts = 2 |
| 41 | + |
| 42 | + candidate = optimize_acqf( |
| 43 | + acq_function=self.acquisition_function, |
| 44 | + bounds=bounds, |
| 45 | + q=q, |
| 46 | + raw_samples=raw_samples, |
| 47 | + num_restarts=num_restarts, |
| 48 | + ) |
| 49 | + self.assertTrue(isinstance(candidate, tuple)) |
| 50 | + self.assertEqual(candidate[0].shape, (q, self.x_dim)) |
| 51 | + self.assertTrue(torch.all(candidate[1] >= 0)) |
45 | 52 |
|
46 | 53 |
|
47 | 54 | if __name__ == "__main__":
|
|
0 commit comments