问题标签 [pyro.ai]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
10073 浏览

pymc - Pyro vs Pymc?这些概率编程框架之间有什么区别?

我使用了基于 Clojure 的“Anglican”,我认为这对我不利。糟糕的文档和太小的社区无法找到帮助。此外,我仍然无法熟悉基于 Scheme 的语言。所以我想把语言改成基于 Python 的东西。

也许 Pyro 或 PyMC 可能是这种情况,但我完全不知道这两者。

  • 这两个框架有什么区别?
  • 它们可以用于相同的问题吗?
  • 有没有比较突出的例子?
0 投票
2 回答
1004 浏览

apache-spark - Spark 上的 PyMC3/Edward/Pyro?

有没有人尝试过在 Spark 中使用 python 概率编程库?或者有没有人知道这需要什么?

我觉得 Edward 会是最简单的,因为已经有连接 Tensorflow 和 Spark 的工具,但仍然不清楚需要进行哪些低级代码更改。

我知道分布式 MCMC 仍然是一个积极研究的领域(参见MC-Stan on Spark?),那么这是否合理实施?谢谢!

0 投票
0 回答
575 浏览

probability - 从 Pyro 中的联合分布中抽样

我了解如何从多维分类或多元正态抽样(每列内具有相关性)。例如,对于多变量分类,可以按如下方式完成:

我的问题是,如果有多个分布,我们怎么能做同样的事情?例如,以下不是我想要的obs1obs2并且obs3是相互独立的。

我想做类似的事情

0 投票
1 回答
299 浏览

pytorch - Pyro 更改 AutodiagonalNormal 设置

我使用 pyro-ppl 3.0 进行概率编程。当我阅读有关贝叶斯回归的教程时。我使用 AutoGuide 和 pyro.random_module 将正常的前馈网络传输到贝叶斯网络。

结果显示如下: auto_loc tensor([-2.1585, -0.9799, -0.0378, -0.5000, -1.0241, 2.6091, -1.3760, 1.6920, 0.2553, 4.5768], requires_grad=True) auto_scale tensor([0.1432, 0.1017, 0.0368, 0.7588, 0.4160, 0.0624, 0.6657, 0.0431, 0.2972, 0.0901], grad_fn=)

潜在变量的数量自动设置为 10。我想更改数字。如教程中所述,我添加

在上面提到的#============= 之间。

但结果还是一样。数字不变。那么,如何设置 AutoDiagnalNormal 函数来更改潜在变量的数量

0 投票
0 回答
85 浏览

pytorch - Pyro:使用 SVI 的简单逆图形示例不起作用

我是 pyro 的新手,并试图实现一个简单的逆图形问题,涉及估计在黑白 32x32 图像上渲染的三角形点的坐标。

所以我定义了一个生成模型,它生成 3 个均匀随机的点,将它们渲染成图像并观察结果。然后我使用SVI自动引导 ( AutoMultivariateNormal) 来尝试估计固定三角形图像的点。 SVI似乎运行良好并且ELBO损失减少,但是当尝试从后验采样时,我得到的只是均匀随机的点,没有学习的迹象。

我在 Jupyter 笔记本中的代码与结果:

截图#1

截图#2

截图#3

我在这里想念什么?

0 投票
1 回答
308 浏览

python - 卡尔曼滤波器随着时间的推移改变已知方差?

我有一个简单的卡尔曼模型:

现在我知道 e_1_t 和 e_2_t 随时间的变化 - 它们不是恒定的。有没有我可以用来估计这个模型的 python 包?

参数 phi 未知。如果模型可以估计是否会很棒。如果不是,也可以提供它,因为存在近似估计。

非常感谢任何提示。

PS:我还检查了图书馆pykalman。https://pykalman.github.io/#mathematical-formulation。似乎这里假设方差随时间保持不变。

0 投票
0 回答
548 浏览

python - Pyro - 似然函数和采样维度

我正在学习 Pyro,尽管有丰富而详细的文档,但我发现尺寸令人困惑

这是我的模型的草图:

我在这里设置了浓度 ( alpha, beta) 的先验。 我的理解是,对数据pyro.sample进行observations拟合 - 我认为它可以最大限度地提高给定数据的浓度的可能性。

我得到的输出:

size()

我得到的值看起来不错。的平均值simulated_daily_demand大约为 0.5,平均值model()为 ~15,即 ~30*0.5。我不知道张量的大小。我本来希望它是.size() torch.Size([1]).

我也注意到了这个警告。我想 Pyro 是在抱怨,因为它希望我在能够从“每日需求”中采样之前编写一个指南并对参数(例如 SVI)进行一些推断。我还想知道在推断出潜在浓度之后如何运行模型。代码的小草图会很有帮助,谢谢!


事后看来,我想我可能误解了板块的使用。现在,如果我假设观察结果是独立的,我需要设置一个盘子。就像是:

它返回一个嵌套的大小列表(NUM_RUNS,SIMULATION_DAYS),其中包含大小为 DATA_SIZE 的张量。元素 ( daily_demand) 在模拟天数中是相同的。可能越来越近了,但没有雪茄。


像这样的事情似乎是有道理的并且似乎收敛:SVI 吐出近似正确的参数值。现在,问题仍然存在 - 我如何使用推断的alphaand运行模拟beta

0 投票
1 回答
179 浏览

python-3.x - 使用 pyro 的深度生成模型中的小批量概念

我是概率编程和 ML 的新手。我正在关注 pyro 网站上给出的深度马尔可夫模型的代码。该代码的 github 页面的链接是:

https://github.com/pyro-ppl/pyro/blob/dev/examples/dmm/dmm.py

我了解大部分代码。我不明白的部分是他们从第 175 行开始使用的小批量想法。

问题 1: 有人可以解释他们在使用 mini-batch 时在做什么吗?

他们在 pyro 文档中说

mini_batch 是一个三维张量,第一个维度是批次维度,第二个维度是时间维度,最后一个维度是特征(在我们的例子中是 88 维)

问题2: 这里的时间维度是什么意思?

因为我想在我的数据集上使用这个代码,这是一个顺序数据。我对我的数据进行了一次热编码,使其维度为(10000,500,20),其中 10000 是示例/序列的数量,500 是每个序列的长度,20 是特征的数量。

问题 3: 我如何在这里使用我的一个热编码数据作为小批量?

如果这是一个非常基本的问题,我很抱歉,但我们将不胜感激。

该文档的链接是:

https://pyro.ai/examples/dmm.html

0 投票
2 回答
764 浏览

probabilistic-programming - Pyro Paramstore 的不同访问方法给出不同的结果

我正在关注预测中的 Pyro 入门教程,并在训练模型后尝试访问学习的参数,我对其中一些使用不同的访问方法得到了不同的结果(而对另一些得到相同的结果)。

这是教程中精简的可重现代码:

到目前为止,一切都很好; 现在,我想检查存储在Paramstore. 似乎有不止一种方法可以做到这一点;使用get_all_param_names()方法:

我明白了

但是使用named_parameters()方法:

为 location ( locs) 参数提供相同的值,但为所有参数提供不同scales的值:

这怎么可能?根据文档Paramstore是一个简单的键值存储;里面只有这六个键:

因此,不可能一种方法访问一组项目而另一种访问不同的项目。

我在这里错过了什么吗?

0 投票
1 回答
2723 浏览

pytorch - NumPyro vs Pyro:为什么前者快 100 倍,我什么时候应该使用后者?

来自 Pytorch-Pyro 的网站

我们很高兴地宣布发布 NumPyro,这是一个由 NumPy 支持的 Pyro,使用 JAX 进行自动微分和 JIT 编译,HMC 和 NUTS 的加速超过 100 倍!

我的问题:

  1. NumPyro(超过 Pyro)的性能增益(有时是 340 倍或 2 倍)究竟来自哪里?
  2. 更重要的是,为什么(更确切地说,在哪里)我会继续使用 Pyro?

额外的:

  1. 与 Tensorflow Probability 相比,我应该如何查看 NumPyro 的性能和功能,以决定在哪里使用哪个?