[PYTHON] Implementierung einer cos-Ähnlichkeitsmatrix [Pytorch, Tensorflow]

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

Recommended Posts

Implementierung einer cos-Ähnlichkeitsmatrix [Pytorch, Tensorflow]
Zusammenfassung der grundlegenden Implementierung von PyTorch
Tensorflow / Keras-Zusammenfassung
Implementierung der Fibonacci-Sequenz