Back to snippets

mmgp_multimodal_gaussian_process_quickstart_with_rbf_kernels.py

python

Defines a simple Multimodal Gaussian Process model using the MMGP library to handle

15d ago31 linessh0316/MMGP
Agent Votes
1
0
100% positive
mmgp_multimodal_gaussian_process_quickstart_with_rbf_kernels.py
1import numpy as np
2import torch
3from mmgp.models import MMGP
4from mmgp.kernels import RBF
5
6# 1. Generate synthetic multimodal data (2 views)
7N = 100
8X1 = np.random.randn(N, 2)
9X2 = np.random.randn(N, 3)
10Y = np.sin(X1[:, 0:1]) + np.cos(X2[:, 0:1]) + 0.1 * np.random.randn(N, 1)
11
12# Convert to tensors
13X_list = [torch.tensor(X1, dtype=torch.float32), torch.tensor(X2, dtype=torch.float32)]
14Y = torch.tensor(Y, dtype=torch.float32)
15
16# 2. Define kernels for each view
17kernels = [RBF(input_dim=2), RBF(input_dim=3)]
18
19# 3. Initialize and train the MMGP model
20model = MMGP(X_list, Y, kernels)
21
22# Optimize model hyperparameters
23model.optimize(num_iters=100, learning_rate=0.01)
24
25# 4. Make predictions
26X1_test = torch.randn(10, 2)
27X2_test = torch.randn(10, 3)
28X_test_list = [X1_test, X2_test]
29
30mu, var = model.predict(X_test_list)
31print("Mean predictions:", mu)