X
是一个数据点矩阵,按形状d
n
。 W
是聚类点的矩阵,按形状k
d
。数据点 i
与每个聚类之间的最小距离可以按如下方式计算:
a_dist = tf.reduce_min(X[i] - W, 0);
如何在张量流图方法中计算每个数据点和每个聚类之间的距离?想到了一个 for 循环,但据我了解,张量流中不存在这样的功能。
到目前为止,
我发现的最有效的方法是:
################
# 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);