Euclidean Distance is common used to be a loss function in deep learning. It is defined as:

In this tutorial, we will introduce how to calculate euclidean distance of two tensors.

## Create two tensors

We will create two tensors, then we will compute their euclidean distance.

Here is an example:

import tensorflow as tf import numpy as np x = tf.Variable(np.array([[1, 2, 2, 1],[2, 1, 3, 4], [4, 3, 1, 1]]), dtype = tf.float32) xs = tf.Variable(np.array([[1, 3, 2, 1],[2, 2, 5, 4], [4, 1, 3, 1]]), dtype = tf.float32)

You should notice tensors x and xs are 2 dims.

## Create a function to calculate euclidean distance

We have created a function to compute euclidean distance of two tensors in tensorflow. Here is an example:

#x and y are 2 dims def euclideanDistance(x, y): dist = tf.sqrt(tf.reduce_sum(tf.square(x - y), 1)) return dist

## Calculate euclidean distance

Finally, we will calculate euclidean distance.

d = euclideanDistance(x, xs) init = tf.global_variables_initializer() init_local = tf.local_variables_initializer() with tf.Session() as sess: sess.run([init, init_local]) print(sess.run(d))

Run this code, you will get the distance is:

[1. 2.236068 2.828427]

In order to calculate the average euclidean distance, we can create a new function.

def euclideanMeanDistance(x, y): dist = tf.sqrt(tf.reduce_sum(tf.square(x - y), 1)) return tf.reduce_mean(dist)

Then we will get the average euclidean distance is:

d = euclideanMeanDistance(x, xs)

Run the code again, we will get the result:

2.0214984

However, tf.sqrt() may output NaN value, to fix this error, you can read:

Fix TensorFlow tf.sqrt() NaN Error: A Beginner Guide – TensorFlow Tutorial

There is another way to compute euclidean distance in tensorflow, we can use tf.norm().

## Calculate euclidean distance using tf.norm()

Here is an example:

def euclideanMeanDistance(self, x, y): dist = tf.reduce_mean(tf.norm(x - y, axis=1, ord='euclidean')) return dist

Where x and y is 2 dims, run this code, you also can get the result:

2.0214984