2
我有一個knn分類項目,需要計算歐氏距離和tensorflow進行比較。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
這是正確的嗎?由於代碼距離變成了張量,我需要一種將張量轉換爲常規矩陣的方法。
任何幫助表示讚賞,謝謝!
時,即時通訊嘗試打印距離它是象 張量( 「Sqrt_2457:0」,形狀=(),D型細胞= FLOAT32) 張量(「Sqrt_2458:0」,形狀=(),dtype = float32) 但是沒有發生任何事情,如果我試圖打印nd_distance就像你的代碼,任何建議? – Elucist
x1和x2的值是多少?他們是張力嗎? – Mitiku
nope,它是矩陣,像這樣 https://s1.postimg.org/o2x1vdypr/postimage.png 它是特徵向量矩陣,經過tf-idf – Elucist