在 PyMC3 中从用户提供的目标密度中采样

Sampling from user provided target densities in PyMC3

在 PyMC3 中是否可以通过简单的方式从用户提供的目标度量中采样? IE。我希望能够提供黑盒函数 logposterior(theta)grad_logposterior(theta),并从中抽取样本,而不是在 PyMC3s 建模语言中指定模型。

这有点笨拙。你需要创建一个新的 Theano Op。这里有几个例子:https://github.com/Theano/Theano/blob/master/theano/tensor/slinalg.py#L32

然后您需要创建一个分布 class 通过您的新 Op 评估 logp,例如:https://github.com/pymc-devs/pymc3/blob/master/pymc3/distributions/continuous.py#L70