2017-02-06 10 views
1

Xは、ndの形のデータ点の行列です。 Wは、kによってdの形のクラスタポイントのマトリックスです。 TensorFlowのn個のデータ点とk個のクラスタ間の距離を計算する

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

どのようにすべてのデータ点と各クラスタ間の距離をtensorflowグラフ法で算出することができる次のようにデータポイント、i、各クラスタ間の最小距離を算出することができますか? forループは気になりますが、私が理解する限り、テンソルフローにはそのような機能はありません。

答えて

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); 
関連する問題