计算TensorFlow中n个数据点和k个簇之间的距离

时间:2017-02-06 04:06:39

标签: tensorflow distance automatic-differentiation

X是一个数据点矩阵,n形状为dW是一个群集点矩阵,k形状为d。数据点i和每个聚类之间的最小距离可以按如下方式计算:

a_dist = tf.reduce_min(X[i] - W, 0);

如何在张量流图方法中计算每个数据点和每个聚类之间的距离?一个for循环浮现在脑海中,但据我所知,tensorflow中不存在这样的功能。

1 个答案:

答案 0 :(得分:0)

到目前为止我找到的最有效的方法如下:

################
# Reshape Tensors for Calculation
################
samples = X;
centroids = W;
expanded_vectors = tf.expand_dims(samples, 0)
expanded_centroids = tf.expand_dims(centroids, 1)


################
# Define objective of model
################
distances = tf.reduce_sum( tf.square(tf.sub(expanded_vectors, expanded_centroids)), 2)
min_distances = tf.reduce_min(distances, 0);