我在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的导数?
1条答案
按热度按时间py49o6xq1#
2023年更新
在zfit中有一个TensorFlow实现。这是一个提供PDF的库,基于TensorFlow。
JAX现在有一个实现
既然你提到了autograd,JAX就能够进行autograd和jit编译,现在还提供了SciPy实现的gaussian KDE函数。
只是提到,也有转换器,可能会工作,即。tf2jax和其他方式。