GPFlow-速度和性能提示

时间:2019-08-30 11:47:01

标签: python tensorflow gpflow

我最近才开始尝试使用gpflow软件包来为给定的训练集构建各自的GP模型。 我正在处理的数据具有很高的维度:

>>> X.shape; Y.shape
(3489, 416)
(3489, 1)

首先,我正在遵循提供的教程来重现基本模型:

k = gpflow.kernels.RBF(input_dim=X.shape[1], ARD=True) + gpflow.kernels.Linear(input_dim=X.shape[1], ARD=True) + gpflow.kernels.Matern12(input_dim=X.shape[1], ARD=True)
m = gpflow.models.GPR(X, Y, kern=k, mean_function=None)
opt = gpflow.train.ScipyOptimizer()
opt.minimize(m)

优化模型的时间大约是一个小时,在CPU上运行,而在GPU上运行则慢了大约4倍(移动工作站:Quadro P600,至强E3-1200 v5)。

我的问题是,这次是从具有该维度和样本大小的数据集中期望什么,还是可以做些事情来减少优化时间?优化有任何特殊原因完全不能从GPU使用中受益吗? 我知道结合多个内核并设置ADR=True可能是一个很大的瓶颈。除此之外,还有什么可以调整的吗?

理想情况下,一旦添加了许多新参考点,我想连续地重新训练模型。

非常感谢您!

编辑:经过进一步的阅读,我发现GP的一般规模为N ^ 3阶,其中N是样本数。减少样本数量有助于提高速度。但是,GPU仍然慢很多。

0 个答案:

没有答案