基于JAX的概率编程,利用其自动微分和JIT编译功能,可加速至GPU/TPU/CPU。
NumPyro 是一个轻量级的概率编程库,为 Pyro 提供 NumPy 后端。我们依赖 [JAX][JAX] 实现自动微分以及 GPU/CPU 的 JIT 编译。NumPyro 正在积极开发中,因此请注意其脆弱性、错误以及随着设计演进 API 可能发生的变化。
NumPyro 旨在做到轻量级,并专注于提供灵活的基础,供用户在其上构建。
sample 和 param)外,还可以包含常规的 Python 和 NumPy 代码。模型代码应与 Pyro 非常相似,只是 PyTorch 和 Numpy 的 API 之间存在一些细微差异。请参见下面的示例。jit 和 grad 将整个积分步骤编译为 XLA 优化内核。我们还通过 JIT 编译 NUTS 中的整个树构建阶段来消除 Python 开销(这可以通过 Iterative NUTS 实现)。此外,还有一个基本的变分推断实现,以及许多灵活的(自动)指南用于自动微分变分推断(ADVI)。变分推断实现支持多种功能,包括支持具有离散潜变量的模型(参见 TraceGraph_ELBO)。暂无开放 Issues,或尚未同步最近议题。