J'ai un projet de classification knn, qui a besoin de calculer la distance euclidienne avec tensorflow pour la comparaison.Distance euclidienne dans Tensorflow, matrice de conversion
Le code d'origine sans tensorflow est comme ceci:
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)
et tensorflow est comme ceci:
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
Est-ce vrai? En raison de cette distance de code est devenu tensoriel, et j'ai besoin d'une méthode pour convertir ce tenseur en une matrice normale.
Toute aide est appréciée, merci!
quand im essayant d'imprimer la distance était comme Tensor ("Sqrt_2457: 0", forme =(), DTYPE = float32) Tenseur ("Sqrt_2458: 0", forme =(), dtype = float32) mais rien ne s'est passé si j'essaie d'imprimer nd_distance comme votre code, une suggestion? – Elucist
quelle est la valeur de x1 et x2? sont-ils aussi des tenseurs? – Mitiku
non, il est matrice, comme ceci https://s1.postimg.org/o2x1vdypr/postimage.png il est la matrice de vecteur de caractéristique, après tf-idf – Elucist