在 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
在 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