【问题标题】:Parallelizing GPflow 2.0 GP regression for large datasets为大型数据集并行化 GPflow 2.0 GP 回归
【发布时间】:2020-01-06 19:58:48
【问题描述】:

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

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

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

【问题讨论】:

    标签: python-3.x tensorflow tensorflow2.0 tensorflow-probability gpflow


    【解决方案1】:

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

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

    【讨论】:

    • 我明白了。谢谢你的快速反应。那么如果我的目标是扩展 GPR,你会建议切换到变分方法吗?或者探索制作一个自定义版本的 GPflow 的 GPR 方法,用基于矩阵向量乘法的推理替换 Cholesky kopernio.com/…
    【解决方案2】:

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

    【讨论】:

    • 我绝对对基于 MVM 的推理很感兴趣,而且我还是一名只有少量编码经验的地球科学家。你愿意帮我配对 MVM 和 GPflow,@brianpatton?
    猜你喜欢
    • 1970-01-01
    • 2019-06-26
    • 2013-09-13
    • 1970-01-01
    • 1970-01-01
    • 2019-05-26
    • 2018-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多