我使用了英国圣公会'这是基于Clojure,我认为这对我不利。糟糕的文件和太小的社区找不到帮助。此外,我仍然无法熟悉基于Scheme的语言。所以我想将语言改为基于Python的东西。
也许Pyro或Pymc可能就是这种情况,但我完全不知道这两者。
答案 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更快 我想这个决定归结为您正在寻找的功能,文档和编程风格。