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

时间:2018-01-19 05:27:17

标签: pymc pyro.ai

我使用了英国圣公会'这是基于Clojure,我认为这对我不利。糟糕的文件和太小的社区找不到帮助。此外,我仍然无法熟悉基于Scheme的语言。所以我想将语言改为基于Python的东西。

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

  • 这两个框架有什么区别?
  • 他们可以用于同样的问题吗?
  • 是否有例子,比较闪耀的是什么?

2 个答案:

答案 0 :(得分:27)

只想更新2020年以前的答案,因为它们已经两年了,这是Google上的第一个结果。

Pyro建立在PyTorch之上。它具有完整的MCMC,HMC和NUTS支持。它具有出色的文档。

PyMC3建立在Theano之上,后者是一个完全失效的框架。 PyMC4正在Tensorflow之上构建,并且正处于快速开发阶段,试图使其恢复正常运行,但目前仍处于预发布阶段,没有任何文档可用来保存其Github上的“请勿用于任何严重问题”。页。截至目前为止,我不会推荐它。

第三个选项是Tensorflow概率,它在很大程度上基本上归功于PyMC,并具有我们都期望Tensorflow具备的易用性和出色的文档。 (是的,这是个玩笑)。

它们几乎都是同一件事,因此,请尝试所有方法,尝试使用您旁边的那个家伙,或者只是掷硬币。最好的库是您实际用来编写工作代码的库。至于哪种编程更受欢迎,概率编程本身是非常专业的,因此您不会在任何东西上找到很多支持。

答案 1 :(得分:9)

来自here

  

Pyro是一种深度概率编程语言,专注于   变分推理,支持可组合推理算法。   Pyro的目标是更具动态性(通过使用PyTorch)和通用   (允许递归)。

     

Pyro拥抱深层神经网络,目前专注于变分推理。 Pyro没有马尔可夫链蒙特卡罗(不像PyMC和Edward)。

Pyro建立在pytorch上,而PyoC3则建立在theano上。所以你得到了PyTorch的动态编程,并且最近宣布Theano在一年后不会maintained。但是,我发现PyMC具有出色的文档和wonderful资源。另一个替代方案是爱德华建立在Tensorflow之上,它比pyro atm更成熟,功能更丰富。爱德华的作者声称它比PyMC3更快 我想这个决定归结为您正在寻找的功能,文档和编程风格。