Min*_* Jo 13 pymc pyro.ai probabilistic-programming
我使用了基于Clojure的'Anglican',我觉得这对我不好.糟糕的文件和太小的社区找不到帮助.此外,我仍然无法熟悉基于Scheme的语言.所以我想将语言改为基于Python的东西.
也许Pyro或Pymc可能就是这种情况,但我完全不知道这两者.
stu*_*art 42
只想更新 2020 年以前的答案,因为它们现在已经两年了,而此页面是 Google 上的第一个结果。
Pyro 基于 PyTorch 构建。它具有完整的 MCMC、HMC 和 NUTS 支持。它有很好的文档。
PyMC3 建立在 Theano 之上,后者是一个完全死的框架。根据 ZAR 对此回复的评论(2021 年编辑),PyMC4 已停止使用。
第三个选项是 Tensorflow Probability,它在很大程度上基本上包含了 PyMC,并配有我们都期望从 Tensorflow 获得的易用性和出色的文档。(是的,这是一个笑话)。
它们几乎都是一样的东西,所以都尝试一下,尝试你旁边的人使用的任何东西,或者只是掷硬币。最好的库是你实际用来制作工作代码的库。至于哪个更受欢迎,概率编程本身非常专业,所以你不会找到很多支持。
Lit*_*one 13
从这里开始
Pyro是一种深度概率编程语言,专注于变分推理,支持可组合推理算法.Pyro的目标是更具动态性(通过使用PyTorch)和通用(允许递归).
Pyro拥抱深层神经网络,目前专注于变分推理.Pyro没有马尔可夫链蒙特卡罗(不像PyMC和爱德华).
Pyro建立在pytorch上,而PyoC3则建立在theano上.所以你得到了PyTorch的动态编程,并且最近宣布Theano将在一年后不再维护.然而,我发现,PyMC具有出色的文档和美妙的资源.另一个替代方案是爱德华建立在Tensorflow之上,它比pyro atm更成熟,功能更丰富.爱德华的作者声称它比PyMC3更快.
我想这个决定归结为您正在寻找的功能,文档和编程风格.