python - 如何将参数从一个 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
结果很差。是不是还有一些其他的参数,应该加到签名中,还是原则上是不可能的?
解决方案
是的,SVGP(以及 VGP)模型预测关键取决于由和参数化的q(u)分布。您可以使用传输所有参数(包括这两个)model.q_mu
model.q_sqrt
params = gpflow.utilities.parameter_dict(model)
gpflow.utilities.multiple_assign(model, params)
(有关更多上下文,请参阅此笔记本)
推荐阅读
- genexus - 为什么无法从 Genexus .Net 使用某些外部 REST API?
- css - 在材质 UI 中,如何将 Button 置于 Grid 项目的中间?
- javascript - 检查 TypeScript 中的全局或窗口对象上是否存在属性
- google-apps-script - 使用出现错误的 Google 表格 onOpen() 函数时,如何获得实时脚本错误通知?
- prolog - Prolog 作为第一种编程语言
- html - 展开一张卡片时展开所有卡片的高度
- python - 安装 djangocms-blog 后的 ImportError: cannot import name 'python_2_unicode_compatible' from 'django.utils .encoding'
- java - 如何从 pagedList 中删除项目
- javascript - 在 python 中运行 javascript 函数
- python - 我无法将 dtypes 对象的 2d numpy ndarray 转换为 dtypes float