2017-08-02 30 views
2

私は比較のためにテンソルフローでユークリッド距離を計算する必要があるknn分類プロジェクトを持っています。ユークリッド距離Tensorflowで、変換行列

tensorflowせず、元のコードは次のようである:

def euclidean_distance(self,x1, x2): 
 
     distance = 0.0 
 
     for i in range(len(x1)): 
 
      distance += pow(x1[i] - x2[i], 2) 
 
     print(distance) 
 
     return math.sqrt(distance)

とtensorflowとは次のようである:

distance = 0.0 
 
     for i in range(len(x1)): 
 
      distance = tf.negative(tf.sqrt(tf.reduce_sum(tf.square(tf.subtract(x1, x2))))) 
 
     return distance

これは正しいですか?そのコード距離はテンソルになり、そのテンソルを正規の行列に変換するメソッドが必要です。

ご協力いただきありがとうございます。あなたは

session=tf.Session() 
nd_distance=session.run(distance) 

あなたは

...... 
...... 
    distance = tf.sqrt(tf.reduce_sum(tf.square(tf.subtract(x1, x2)))) 
    nd_distance=session.run(distance) 
    print (nd_distance) 
    return nd_distance 

にコードを変更する必要があり、私は必要性を見ないブローのようなグラフを実行する必要がND配列(行列)を得るために

答えて

0

tf.negative機能とfor loop

+0

が テンソルのようだった距離印刷しようとIM( "Sqrt_2457:0"、形状=()、DTYPE =のfloat32) Tensor( "Sqrt_2458:0"、shape =()、dtype = float32) あなたのコード、提案などのようにnd_distanceを印刷しようとしても何も起こりませんか? – Elucist

+0

x1とx2の値は何ですか?彼らもテンソルですか? – Mitiku

+0

いや、それはこの https://s1.postimg.org/o2x1vdypr/postimage.png のように、それは、TF-IDF – Elucist

関連する問題