Skip to content
Snippets Groups Projects
Commit f81eca75 authored by jannik.luethje's avatar jannik.luethje
Browse files

Release version 0.0.11

parent 74856516
No related branches found
Tags 0.0.11
No related merge requests found
Subproject commit 69a763e55faf6557af0839a06fa82eb919b062e4 Subproject commit fb61bbb8733b23a0b48cb86f016429594ee062c5
...@@ -4,6 +4,7 @@ from pathlib import Path ...@@ -4,6 +4,7 @@ from pathlib import Path
import json import json
import torch import torch
from gpytorch.means import ConstantMean, ZeroMean from gpytorch.means import ConstantMean, ZeroMean
from gpytorch.likelihoods import GaussianLikelihood, FixedNoiseGaussianLikelihood
# Import MeLOn # Import MeLOn
import maingopy.melonpy as melonpy import maingopy.melonpy as melonpy
# If you are not getting MeLOn through MAiNGO, use: # If you are not getting MeLOn through MAiNGO, use:
...@@ -51,8 +52,16 @@ def generate_melon_gp_object(GP_model, GP_likelihood, X, y, matern, scaler): ...@@ -51,8 +52,16 @@ def generate_melon_gp_object(GP_model, GP_likelihood, X, y, matern, scaler):
noise = GP_likelihood.noise.detach().numpy() noise = GP_likelihood.noise.detach().numpy()
cov_mat = GP_model.covar_module(X) cov_mat = GP_model.covar_module(X)
gp_data.K = cov_mat.numpy() + noise * np.eye(N=gp_data.nX)
gp_data.invK = np.linalg.inv(gp_data.K) if isinstance(GP_likelihood, GaussianLikelihood):
K_numpy = cov_mat.numpy() + noise * np.eye(N=gp_data.nX)
elif isinstance(GP_likelihood, FixedNoiseGaussianLikelihood):
K_numpy = cov_mat.numpy() + np.diag(noise)
else:
raise Exception(f'Likelihood {type(GP_likelihood)} currently not supported.')
gp_data.K = K_numpy
gp_data.invK = np.linalg.inv(K_numpy)
gp_data.matern = matern gp_data.matern = matern
kernel_data = melonpy.KernelData() kernel_data = melonpy.KernelData()
...@@ -106,8 +115,16 @@ def save_model_to_json(filepath, filename, GP_model, GP_likelihood, X, y, matern ...@@ -106,8 +115,16 @@ def save_model_to_json(filepath, filename, GP_model, GP_likelihood, X, y, matern
noise = GP_likelihood.noise.detach().numpy() noise = GP_likelihood.noise.detach().numpy()
cov_mat = GP_model.covar_module(X).numpy() cov_mat = GP_model.covar_module(X).numpy()
prediction_parameters["K"] = (cov_mat + noise * np.eye(N=prediction_parameters["nX"])).tolist()
prediction_parameters["invK"] = np.linalg.inv(cov_mat + noise * np.eye(N=prediction_parameters["nX"])).tolist() if isinstance(GP_likelihood, GaussianLikelihood):
K_numpy = cov_mat.numpy() + noise * np.eye(N=prediction_parameters["nX"])
elif isinstance(GP_likelihood, FixedNoiseGaussianLikelihood):
K_numpy = cov_mat.numpy() + np.diag(noise)
else:
raise Exception(f'Likelihood {type(GP_likelihood)} currently not supported.')
prediction_parameters["K"] = K_numpy.tolist()
prediction_parameters["invK"] = np.linalg.inv(K_numpy).tolist()
if not 'input' in scalers or not isinstance(scalers['input'], MinMaxScaler): if not 'input' in scalers or not isinstance(scalers['input'], MinMaxScaler):
raise Exception("There has to be an inputscaler which is a scikit-learn MinMaxScaler instance") raise Exception("There has to be an inputscaler which is a scikit-learn MinMaxScaler instance")
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment