2017-02-06 19 views
1

X - это матрица точек данных, n по d в форме. W - матрица точек кластера, k by d в форме. Наименьшее расстояние между точки данных, i, и каждый кластер может быть рассчитана следующим образом:Вычислить расстояние между n точками данных и k кластерами в TensorFlow

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

Как расстояние между каждой точкой данных и каждого кластера рассчитывается в tensorflow методом графов? Насколько я понимаю, такой функции существует в тензорном потоке.

ответ

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);