我正在尝试在Tensorflow中编写一个核密度估计算法。
在拟合KDE模型时,我正在遍历当前批次中的所有数据,并为每个数据创建一个内核,使用tensorflow.contrib.distributions.MultivariateNormalDiag
对象:
self.kernels = [MultivariateNormalDiag(loc=data, scale=bandwidth) for data in X]
稍后,在尝试预测相对于上面适配的模型的数据点的可能性时,对于每个要评估的数据点,我将上述每个内核给出的概率相加:
tf.reduce_sum([kernel._prob(X) for kernel in self.kernels], axis=0)
当X
是numpy数组时,这种方法才能起作用,因为TF不允许您迭代Tensor。我的问题是,是否有一种方法可以使上述算法在X
作为tf.Tensor
或tf.Variable
时起作用?