【问题标题】:Initialize GPFlow model with empty X and Y用空 X 和 Y 初始化 GPFlow 模型
【发布时间】:2019-03-30 00:50:44
【问题描述】:

我正在使用 GPFlow 进行多维回归,并希望比较从空 X 和 Y 集开始的各种内核。但似乎该库需要包含值对的集合。我考虑过使用远离输入空间的点进行初始化,但在优化我的超参数时会包含该点。 有什么我缺少的解决方案或解决方法吗?

感谢您的帮助!

这是初始化我的模型的一些标准代码:

import gpflow
k = gpflow.kernels.RBF(input_dim=1, lengthscales=1, variance=1)
x_sample = np.array([])
y_sample = np.array([])
model = gpflow.models.GPR(x_sample, y_sample, kern=k)

这会导致以下错误:

IndexError: tuple index out of range

下面的sn-p导致:

model = gpflow.models.GPR(kern=k)
TypeError: __init__() missing 2 required positional arguments: 'X' and 'Y'

如果有人知道我可以做些什么来用空集初始化我的模型,那就太好了

【问题讨论】:

  • 在尝试调查错误时,了解错误的什么(此处为:IndexError: tuple index out of range)以及在哪里 通常很有用发生,即完整的堆栈跟踪......我认为在这种情况下不再需要,但对于未来的问题:)

标签: gpflow


【解决方案1】:

可以处理空的 XY 集 - 但您必须尊重所需的形状。 XY 都需要有 ndim=2。在写x_sample = np.array([]) 时,然后是x_sample.shape == (0,)x_sample.ndim == 1。相反,设置x_sample = np.empty((0, 2))(同样设置y_sample = np.empty((0, 2)),然后设置ndim=2,它们的形状根据需要为(0, 2)

(显然,在没有数据的情况下,优化您的超参数是没有意义的,而且您确实无法对模型做任何事情;如果您只想比较内核,则无需构建模型计算内核矩阵...但这更具体地取决于您想要实现的目标!)

【讨论】:

  • 感谢您的快速响应!这会有所帮助。关于评论中的第二部分。我正在做的是比较内核、采集函数和不同大小的训练集。该模型当然适合训练数据。希望我最终将这些“元”参数和内核的超参数组合在一起,用于表示真实过程的合成数据。之后,该模型将与优化参数一起用于真实示例。
猜你喜欢
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 2012-10-10
  • 2014-01-29
  • 2013-12-16
  • 2013-09-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多