0

我正在尝试在 2D 空间 + 1D 时间上运行 GP 回归,大约 8000 个观察值和一个具有 4 个 Matern 3/2 协方差函数的复合内核——超过一个内核可以处理。

如果能够将 GPR 计算分布在多个节点上,而不是求助于变分 GP,那就太好了。这个 github issue解释了如何在 GPflow 1.0 中执行多线程,但我不是在寻找一种方法来并行化许多predict_f调用。

相反,我想在大型数据集上进行 GPR,这意味着反转一个大于单个内核可以处理的协方差矩阵。有没有办法为集群或云计算并行化?

4

2 回答 2

1

在计算方面,GPflow 可以做任何 TensorFlow 做的事情。换句话说,如果 TensorFlow 支持云评估,那么 GPflow 也会支持它。但是,这并不意味着您不能实现您的 TensorFlow 计算版本,也许更高效并且能够在云上运行它。您可以开始研究 TensorFlow 自定义操作:https ://www.tensorflow.org/guide/create_op 。

像 Cholesky 这样的 linalg 操作很难并行化,并且从中节省时间的好处是值得怀疑的。尽管在内存方面,集群计算的优势是显而易见的。

于 2020-01-06T23:30:22.250 回答
1

如果您对基于 MVM 的推理感兴趣,我们可以从这里开始: https ://github.com/tensorflow/probability/blob/7c70d4a3389680670e989b93561440caaa0fb8cd/tensorflow_probability/python/experimental/linalg/linear_operator_psd_kernel.py#L252一直在为 logdet 使用随机 lanczos 求积,并为求解使用预处理 CG,但到目前为止还没有将它们提交到 TFP 中。

于 2020-01-09T03:24:19.993 回答