首页 > 解决方案 > 如何将参数从一个 gpflow 模型转移到另一个模型以获得相似的结果?

问题描述

假设我有一个训练有素的模型

m = gpflow.models.SVGP(
     likelihood=likelihood, kernel=kernel, inducing_variable=Z, num_data = len(X_train)
)

是否可以将其参数转移到另一个模型并获得类似的结果?例如

model = gpflow.models.SVGP(kernel=m.kernel,
                           likelihood=m.likelihood,
                           inducing_variable=m.inducing_variable,
                           num_data=m.num_data)

但是这个例子失败了,因为model结果很差。是不是还有一些其他的参数,应该加到签名中,还是原则上是不可能的?

标签: pythongpflow

解决方案


是的,SVGP(以及 VGP)模型预测关键取决于由和参数化的q(u)分布。您可以使用传输所有参数(包括这两个)model.q_mumodel.q_sqrt

params = gpflow.utilities.parameter_dict(model)
gpflow.utilities.multiple_assign(model, params)

(有关更多上下文,请参阅此笔记本)


推荐阅读