核密度估计(KDE)在pytorch或tensorflow中的实现

wljmcqd8  于 2023-10-20  发布在  其他
关注(0)|答案(1)|浏览(156)

我在scikit-learn中找到了一个核密度估计的实现:

from sklearn.neighbors import KernelDensity
kde = KernelDensity(bandwidth=1.0, kernel='gaussian')
kde.fit(x[:, None])
logprob = kde.score_samples(x_d[:, None])

问题是,我想用自动微分,求logprob wrt的导数。x,所以我需要使用pytorch或tensorflow。
pytorch或tensorflow中是否有KDE的实现,以便我可以在之后使用AD?或者,如何使用scikit-learn计算logprob w.r.t. x的导数?

py49o6xq

py49o6xq1#

2023年更新

zfit中有一个TensorFlow实现。这是一个提供PDF的库,基于TensorFlow。

JAX现在有一个实现

既然你提到了autograd,JAX就能够进行autograd和jit编译,现在还提供了SciPy实现的gaussian KDE函数。

  • 更新 *

只是提到,也有转换器,可能会工作,即。tf2jax和其他方式。

相关问题