INNER CODE UNIT · Python
_cosine_similarity
patrickjohncyh/fashion-clip · fashion_clip/fashion_clip.py:218
def _cosine_similarity(self, key_vectors: np.ndarray, space_vectors: np.ndarray, normalize=True):
if normalize:
key_vectors = key_vectors / np.linalg.norm(key_vectors, ord=2, axis=-1, keepdims=True)
return np.matmul(key_vectors, space_vectors.T)
def _nearest_neighbours(self, k, key_vectors, space_vectors, normalize=True, debug=False):
if type(key_vectors) == List:
key_vectors = np.array(key_vectors)
if type(space_vectors) == List:
space_vectors = np.array(space_vectors)
t1 = time.time()
if self.approx:
if debug:
print('Using ANNOY')
if normalize:
key_vectors = key_vectors / np.linalg.norm(key_vectors, ord=2, axis=-1, keepdims=True)
nn = [self.nn_index.get_nns_by_vector(v, k, search_k=-1, include_distances=False) for v in key_vectors]