如何将参数从一个 gpflow 模型转移到另一个模型以获得相似的结果?
How can I transfer parameters from one gpflow model to another to gain similar results?
假设我有一个经过训练的模型
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
结果很差。是否还有其他一些参数,应该加在签名中,或者原则上是不可能的?
是的,SVGP(以及 VGP)模型预测关键取决于由 model.q_mu
和 model.q_sqrt
参数化的 q(u) 分布。您可以使用
传输所有参数(包括这两个参数)
params = gpflow.utilities.parameter_dict(model)
gpflow.utilities.multiple_assign(model, params)
(有关更多上下文,请参阅 this notebook)
假设我有一个经过训练的模型
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
结果很差。是否还有其他一些参数,应该加在签名中,或者原则上是不可能的?
是的,SVGP(以及 VGP)模型预测关键取决于由 model.q_mu
和 model.q_sqrt
参数化的 q(u) 分布。您可以使用
params = gpflow.utilities.parameter_dict(model)
gpflow.utilities.multiple_assign(model, params)
(有关更多上下文,请参阅 this notebook)