¿Cómo calcular la similitud del coseno entre dos tensores en PyTorch?

En este artículo, discutiremos cómo calcular la similitud de coseno entre dos tensores en Python usando PyTorch .

El tamaño del vector debe ser el mismo y el valor del tensor debe ser real. podemos usar el método CosineSimilarity() del módulo torch.nn para calcular la similitud de coseno entre dos tensores.

Método CosineSimilarity()

El método CosineSimilarity() calcula la similitud de coseno entre dos tensores y devuelve el valor de similitud de coseno calculado junto con dim. si el tensor de entrada está en 1D, entonces podemos calcular la similitud del coseno solo junto con dim=0 y si el tensor de entrada está en 2D, podemos calcular la similitud del coseno junto con dim=0 o 1. La siguiente sintaxis se usa para calcular la similitud del coseno entre dos tensores.

Sintaxis: torch.nn.CosineSimilarity(dim)

Parámetros:

  • dim: esta es la dimensión donde la similitud del coseno se calcula de forma predeterminada, el valor de dim es 1.

Retorno: este método devuelve el valor de similitud del coseno calculado junto con dim.

Ejemplo 1:

El siguiente programa es para comprender cómo calcular la similitud del coseno entre dos tensores 1D.

Python3

# Import required library
import torch
  
# define two 1D tensors
tens_1 = torch.tensor([0.5, 0.3, 1.2, 0.33])
tens_2 = torch.tensor([0.3, 0.2, 1.3, 1.4])
  
# print above defined two tensors
print("\n First Tensor: ", tens_1)
print("\n Second Tensor: ", tens_2)
  
# compute cosine similarity
cosi = torch.nn.CosineSimilarity(dim=0)
output = cosi(tens_1, tens_2)
  
# display the output tensor
print("\n Computed Cosine Similarity: ", output)

Producción:

 

Ejemplo 2:

El siguiente programa es para saber cómo calcular la similitud de coseno entre dos tensores 2D.

Python3

# Import required library
import torch
  
# define first 2D tensor
tens_1 = torch.tensor([[0.2245, 0.2959,
                        0.3597, 0.6766],
                       [-2.2268, 0.6469,
                        0.3765, 0.7898],
                       [0.4577, 0.3228, 
                        0.4699, 0.2389]])
  
# define second 2D tensor
tens_2 = torch.tensor([[0.2423, 0.4667,
                        0.4434, 0.3598],
                       [-0.6679, 0.6932, 
                        0.5387, 0.2245],
                       [0.8277, 0.2597,
                        0.9834, 0.9987]])
  
# print above defined two tensors
print("\n\n First Tensor: \n", tens_1)
print("\n Second Tensor: \n", tens_2)
  
# compute cosine similarity in dim=0
cos_1 = torch.nn.CosineSimilarity(dim=0)
output_1 = cos_1(tens_1, tens_2)
  
# display the output tensor
print("\n\nComputed Cosine Similarity in dim=0: ",
      output_1)
  
  
# compute cosine similarity in dim=1
cos_2 = torch.nn.CosineSimilarity(dim=1)
output_2 = cos_2(tens_1, tens_2)
  
# display the output tensor
print("\n\nComputed Cosine Similarity in dim=1: ",
      output_2)

Producción:

 

Publicación traducida automáticamente

Artículo escrito por mukulsomukesh y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *