添加新发行版时,FreeRV类型出现问题

时间:2019-06-09 07:42:18

标签: bayesian pymc3 pymc probabilistic-programming

我正尝试通过包装Agner Fogs c ++版本(https://www.agner.org/random/)来向PyMC3(Wallenius非中央超几何)添加新的离散分布。

我已经成功地将相关功能放入c ++扩展中,并添加了广播功能,使其表现为scipy的分布。 (目前,广播是使用Python完成的。..稍后将尝试使用xtensor-python绑定来在c ++中实现更高性能的矢量化。)

我遇到了以下问题:当我在模型上下文中实例化新发行版的RV时,出现“ TypeError:需要整数(类型为FreeRV)”的地方,其中“ value”是传递给新发行版的logp()函数。

我了解PyMC3可能需要将RV连接到功能,但是我找不到将它们转换为新功能可以使用的功能的方法。

任何有关如何解决此问题或有关将新发行版添加到PyMC3或发行版内部工作的提示都将非常有帮助。

提前谢谢! 扬

编辑:我注意到FreeRV从theanos TensorVariable继承,所以我尝试调用.eval()。这导致沿线另一个错误,即没有输入被连接。 (我现在没有确切的错误消息)。 令我困惑的一件事是,为什么在建立模型时在实例化变量时调用logp ...

0 个答案:

没有答案