Die Cos (cosine) -ähnlichkeit ist eine der Kontrastlernmethoden wie SimCLR, die als Ähnlichkeitsindex im Merkmalsraum verwendet wird.
Da es von Tensorflow bzw. Pytorch implementiert wurde, zeichnen Sie es als Memo auf. (Als Referenz)
Pytorch
# input_Größe ist(batchsize*Anzahl der Dimensionen)
def cosine_matrix(a, b):
dot = torch.matmul(a, torch.t(b))
norm = torch.matmul(torch.norm(a, dim=1).unsqueeze(-1), torch.norm(b, dim=0).unsqueeze(0))
return dot / norm
Tensorflow
def cosine_matrix(a, b):
a_normed, _ = tf.linalg.normalize(a, axis=-1)
b_normed, _ = tf.linalg.normalize(b, axis=-1)
matrix = tf.matmul(a_normed, b_normed, transpose_b=True)
return matrix