Suppose I have a trained model
m = gpflow.models.SVGP(
likelihood=likelihood, kernel=kernel, inducing_variable=Z, num_data = len(X_train)
)
is it possible to transfer its parameters to another model and achieve similar results? For example
model = gpflow.models.SVGP(kernel=m.kernel,
likelihood=m.likelihood,
inducing_variable=m.inducing_variable,
num_data=m.num_data)
But this example fails since model
has poor results. Are there some other parameters, which should be added to the signature, or it is impossible in principle?
Yes, the SVGP (as well as VGP) model predictions crucially depend on the q(u) distribution parametrised by model.q_mu
and model.q_sqrt
. You can transfer all parameters (including those two) using
params = gpflow.utilities.parameter_dict(model)
gpflow.utilities.multiple_assign(model, params)
(see this notebook for more context)