88hours commited on
Commit
606b71c
·
1 Parent(s): f14da84

Calculate Cosine and Euclidean Distance

Browse files
Files changed (1) hide show
  1. s4-calculate-distance.py +37 -16
s4-calculate-distance.py CHANGED
@@ -2,6 +2,7 @@ import numpy as np
2
  from numpy.linalg import norm
3
  import torch
4
  from IPython.display import display
 
5
 
6
  url1='http://farm3.staticflickr.com/2519/4126738647_cc436c111b_z.jpg'
7
  cap1='A motorcycle sits parked across from a herd of livestock'
@@ -37,26 +38,46 @@ def load_tensor(path):
37
  return torch.load(path)
38
 
39
  def load_embeddings():
40
- img1_tensor = load_tensor(img1['tensor_path'] + '.pt')
41
- img2_tensor = load_tensor(img2['tensor_path'] + '.pt')
42
- img3_tensor = load_tensor(img3['tensor_path'] + '.pt')
43
- return img1_tensor.data.numpy(), img2_tensor.data.numpy(), img3_tensor.data.numpy()
44
 
45
  def cosine_similarity(vec1, vec2):
46
  similarity = np.dot(vec1,vec2)/(norm(vec1)*norm(vec2))
47
  return similarity
48
 
49
- def calculate_distance():
50
- img1_tensor, img2_tensor, img3_tensor = load_embeddings()
51
- similarity1 = cosine_similarity(img1_tensor, img2_tensor)
52
- similarity2 = cosine_similarity(img1_tensor, img3_tensor)
53
- similarity3 = cosine_similarity(img2_tensor, img3_tensor)
54
  return [similarity1, similarity2, similarity3]
55
 
56
- distances = calculate_distance()
57
- print("Cosine similarity between ex1_embeded and ex2_embeded is:")
58
- display(distances[0])
59
- print("Cosine similarity between ex1_embeded and ex3_embeded is:")
60
- display(distances[1])
61
- print("Cosine similarity between ex2_embeded and ex2_embeded is:")
62
- display(distances[2])
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  from numpy.linalg import norm
3
  import torch
4
  from IPython.display import display
5
+ import cv2
6
 
7
  url1='http://farm3.staticflickr.com/2519/4126738647_cc436c111b_z.jpg'
8
  cap1='A motorcycle sits parked across from a herd of livestock'
 
38
  return torch.load(path)
39
 
40
  def load_embeddings():
41
+ ex1_embed = load_tensor(img1['tensor_path'] + '.pt')
42
+ ex2_embed = load_tensor(img2['tensor_path'] + '.pt')
43
+ ex3_embed = load_tensor(img3['tensor_path'] + '.pt')
44
+ return ex1_embed.data.numpy(), ex2_embed.data.numpy(), ex3_embed.data.numpy()
45
 
46
  def cosine_similarity(vec1, vec2):
47
  similarity = np.dot(vec1,vec2)/(norm(vec1)*norm(vec2))
48
  return similarity
49
 
50
+ def calculate_cosine_distance():
51
+ ex1_embed, ex2_embed, ex3_embed = load_embeddings()
52
+ similarity1 = cosine_similarity(ex1_embed, ex2_embed)
53
+ similarity2 = cosine_similarity(ex1_embed, ex3_embed)
54
+ similarity3 = cosine_similarity(ex2_embed, ex3_embed)
55
  return [similarity1, similarity2, similarity3]
56
 
57
+ def calcuate_euclidean_distance():
58
+ ex1_embed, ex2_embed, ex3_embed = load_embeddings()
59
+ distance1 = cv2.norm(ex1_embed,ex2_embed, cv2.NORM_L2)
60
+ distance2 = cv2.norm(ex1_embed,ex3_embed, cv2.NORM_L2)
61
+ distance3 = cv2.norm(ex2_embed,ex3_embed, cv2.NORM_L2)
62
+ return [distance1, distance2, distance3]
63
+
64
+ def show_cosine_distance():
65
+ distances = calculate_cosine_distance()
66
+ print("Cosine similarity between ex1_embeded and ex2_embeded is:")
67
+ display(distances[0])
68
+ print("Cosine similarity between ex1_embeded and ex3_embeded is:")
69
+ display(distances[1])
70
+ print("Cosine similarity between ex2_embeded and ex2_embeded is:")
71
+ display(distances[2])
72
+
73
+ def show_euclidean_distance():
74
+ distances = calcuate_euclidean_distance()
75
+ print("Euclidean distance between ex1_embeded and ex2_embeded is:")
76
+ display(distances[0])
77
+ print("Euclidean distance between ex1_embeded and ex3_embeded is:")
78
+ display(distances[1])
79
+ print("Euclidean distance between ex2_embeded and ex2_embeded is:")
80
+ display(distances[2])
81
+
82
+ show_cosine_distance()
83
+ show_euclidean_distance()