|
1 | 1 | import unittest
|
| 2 | + |
2 | 3 | import torch
|
3 | 4 | from botorch_community.acquisition.latent_information_gain import LatentInformationGain
|
4 | 5 | from botorch_community.models.np_regression import NeuralProcessModel
|
5 | 6 |
|
| 7 | + |
6 | 8 | class TestLatentInformationGain(unittest.TestCase):
|
7 | 9 | def setUp(self):
|
8 | 10 | self.x_dim = 2
|
9 | 11 | self.y_dim = 1
|
10 | 12 | self.r_dim = 8
|
11 |
| - self.z_dim = 3 |
12 |
| - self.context_x = torch.rand(10, self.x_dim) |
13 |
| - self.context_y = torch.rand(10, self.y_dim) |
| 13 | + self.z_dim = 8 |
14 | 14 | self.r_hidden_dims = [16, 16]
|
15 | 15 | self.z_hidden_dims = [32, 32]
|
16 | 16 | self.decoder_hidden_dims = [16, 16]
|
17 |
| - self.num_samples = 10 |
18 | 17 | self.model = NeuralProcessModel(
|
19 |
| - r_hidden_dims = self.r_hidden_dims, |
20 |
| - z_hidden_dims = self.z_hidden_dims, |
21 |
| - decoder_hidden_dims = self.decoder_hidden_dims, |
| 18 | + torch.rand(10, self.x_dim), |
| 19 | + torch.rand(10, self.y_dim), |
| 20 | + r_hidden_dims=self.r_hidden_dims, |
| 21 | + z_hidden_dims=self.z_hidden_dims, |
| 22 | + decoder_hidden_dims=self.decoder_hidden_dims, |
22 | 23 | x_dim=self.x_dim,
|
23 | 24 | y_dim=self.y_dim,
|
24 | 25 | r_dim=self.r_dim,
|
25 | 26 | z_dim=self.z_dim,
|
26 | 27 | )
|
27 | 28 | self.acquisition_function = LatentInformationGain(
|
28 |
| - context_x=self.context_x, |
29 |
| - context_y=self.context_y, |
30 | 29 | model=self.model,
|
31 |
| - num_samples=self.num_samples, |
32 | 30 | )
|
33 | 31 | self.candidate_x = torch.rand(5, self.x_dim)
|
34 | 32 |
|
35 | 33 | def test_initialization(self):
|
36 |
| - self.assertEqual(self.acquisition_function.num_samples, self.num_samples) |
| 34 | + self.assertEqual(self.acquisition_function.num_samples, 10) |
37 | 35 | self.assertEqual(self.acquisition_function.model, self.model)
|
38 | 36 |
|
39 | 37 | def test_acquisition_shape(self):
|
40 |
| - lig_score = self.acquisition_function.forward( |
41 |
| - candidate_x=self.candidate_x |
42 |
| - ) |
| 38 | + self.model(self.model.train_X, self.model.train_Y) |
| 39 | + lig_score = self.acquisition_function.forward(candidate_x=self.candidate_x) |
43 | 40 | self.assertTrue(torch.is_tensor(lig_score))
|
44 | 41 | self.assertEqual(lig_score.shape, (1, 5))
|
45 | 42 |
|
46 | 43 | def test_acquisition_kl(self):
|
47 |
| - lig_score = self.acquisition_function.forward( |
48 |
| - candidate_x=self.candidate_x |
49 |
| - ) |
| 44 | + self.model(self.model.train_X, self.model.train_Y) |
| 45 | + lig_score = self.acquisition_function.forward(candidate_x=self.candidate_x) |
50 | 46 | self.assertGreaterEqual(lig_score.mean().item(), 0)
|
51 | 47 |
|
| 48 | + |
52 | 49 | if __name__ == "__main__":
|
53 | 50 | unittest.main()
|
0 commit comments