def test_ModelListGP_single(self): tkwargs = {"device": self.device, "dtype": torch.float} train_x1, train_x2, train_y1, train_y2 = _get_random_data(n=10, **tkwargs) model1 = SingleTaskGP(train_X=train_x1, train_Y=train_y1) model = ModelListGP(model1) model.to(**tkwargs) test_x = torch.tensor([[0.25], [0.75]], **tkwargs) posterior = model.posterior(test_x) self.assertIsInstance(posterior, GPyTorchPosterior) self.assertIsInstance(posterior.mvn, MultivariateNormal)
def test_ModelListGPSingle(self, cuda=False): tkwargs = { "device": torch.device("cuda") if cuda else torch.device("cpu"), "dtype": torch.float, } train_x1, train_x2, train_y1, train_y2 = _get_random_data(n=10, **tkwargs) model1 = SingleTaskGP(train_X=train_x1, train_Y=train_y1) model = ModelListGP(gp_models=[model1]) model.to(**tkwargs) test_x = (torch.tensor([0.25, 0.75]).type_as(model.train_targets[0]),) posterior = model.posterior(test_x) self.assertIsInstance(posterior, GPyTorchPosterior) self.assertIsInstance(posterior.mvn, MultivariateNormal)
def _get_model(n, fixed_noise=False, use_octf=False, **tkwargs): train_x1, train_y1 = _get_random_data(batch_shape=torch.Size(), m=1, n=10, **tkwargs) train_x2, train_y2 = _get_random_data(batch_shape=torch.Size(), m=1, n=11, **tkwargs) octfs = [Standardize(m=1), Standardize(m=1)] if use_octf else [None, None] if fixed_noise: train_y1_var = 0.1 + 0.1 * torch.rand_like(train_y1, **tkwargs) train_y2_var = 0.1 + 0.1 * torch.rand_like(train_y2, **tkwargs) model1 = FixedNoiseGP( train_X=train_x1, train_Y=train_y1, train_Yvar=train_y1_var, outcome_transform=octfs[0], ) model2 = FixedNoiseGP( train_X=train_x2, train_Y=train_y2, train_Yvar=train_y2_var, outcome_transform=octfs[1], ) else: model1 = SingleTaskGP(train_X=train_x1, train_Y=train_y1, outcome_transform=octfs[0]) model2 = SingleTaskGP(train_X=train_x2, train_Y=train_y2, outcome_transform=octfs[1]) model = ModelListGP(model1, model2) return model.to(**tkwargs)
def _get_model(n, fixed_noise=False, **tkwargs): train_x1, train_x2, train_y1, train_y2 = _get_random_data(n=n, **tkwargs) if fixed_noise: train_y1_var = 0.1 + 0.1 * torch.rand_like(train_y1, **tkwargs) train_y2_var = 0.1 + 0.1 * torch.rand_like(train_y2, **tkwargs) model1 = FixedNoiseGP(train_X=train_x1, train_Y=train_y1, train_Yvar=train_y1_var) model2 = FixedNoiseGP(train_X=train_x2, train_Y=train_y2, train_Yvar=train_y2_var) else: model1 = SingleTaskGP(train_X=train_x1, train_Y=train_y1) model2 = SingleTaskGP(train_X=train_x2, train_Y=train_y2) model = ModelListGP(model1, model2) return model.to(**tkwargs)
def _get_model(n, **tkwargs): train_x1, train_x2, train_y1, train_y2 = _get_random_data(n=n, **tkwargs) model1 = SingleTaskGP(train_X=train_x1, train_Y=train_y1) model2 = SingleTaskGP(train_X=train_x2, train_Y=train_y2) model = ModelListGP(gp_models=[model1, model2]) return model.to(**tkwargs)