¿Cómo ordenar los elementos de un tensor en PyTorch?

En este artículo vamos a ver cómo ordenar los elementos de un tensor PyTorch en Python.

Para ordenar los elementos de un tensor PyTorch, usamos el método torch.sort() . Podemos ordenar los elementos junto con columnas o filas cuando el tensor es bidimensional.

Sintaxis: torch.sort(input, dim=- 1, descending=False)

Parámetros:

  • input: Es un tensor PyTorch de entrada.
  • dim: La dimensión a lo largo de la cual se ordena el tensor. Es un valor int opcional.
  • descendente: un valor booleano opcional que se utiliza para clasificar los elementos tensoriales en orden ascendente o descendente. El valor predeterminado es Falso, ordenándose en orden ascendente.

Devoluciones : Devuelve una tupla con nombre de (valores, índices), donde los valores son los valores ordenados y los índices son los índices de los elementos en el tensor de entrada original.

Ejemplo 1:

En el siguiente ejemplo, clasificamos los elementos de un tensor unidimensional en orden ascendente y descendente. Ordenar el tensor en orden ascendente o descendente. Aplicamos el método torch.sort() para ordenar los elementos de un tensor de entrada. Para ordenar en orden descendente, pase descending=True al método.

Python3

# importing required library
import torch
  
# defining a PyTorch Tensor
tensor = torch.tensor([-12, -23, 0.0, 32,
                       1.32, 201, 5.02])
print("Tensor:\n", tensor)
  
# sorting the tensor in ascending order
print("Sorting tensor in ascending order:")
values, indices = torch.sort(tensor)
  
# printing values of sorted tensor
print("Sorted values:\n", values)
  
# printing indices of sorted value
print("Indices:\n", indices)
  
# sorting the tensor in  descending order
print("Sorting tensor in  descending order:")
values, indices = torch.sort(tensor, descending=True)
  
# printing values of sorted tensor
print("Sorted values:\n", values)
  
# printing indices of sorted value
print("Indices:\n", indices)

Producción:

Ejemplo 2:

En este ejemplo, clasificamos los elementos de un tensor bidimensional en orden ascendente y descendente junto con las columnas.

Python3

# importing the library
import torch
  
# define a 2D torch tensor
tensor = torch.tensor([[43,31,-92],
                       [3,-4.3,53], 
                       [-4.2,7,-6.2]])
print("Tensor:\n", tensor)
  
# sorting the tensor in  ascending order
print("Sorting tensor in \
ascending order along the column:")
values, indices = torch.sort(tensor, dim = 0)
  
# printing  values in sorted tensor
print("Sorted values:\n", values)
  
# print indices of values in sorted tensor
print("Indices:\n", indices)
  
# sorting the tensor in  descending order
print("Sorting tensor in \
descending order along the column:")
values, indices = torch.sort(tensor, dim = 0,
                             descending=True)
  
# printing  values in sorted tensor
print("Sorted values:\n", values)
  
# print indices of values in sorted tensor
print("Indices:\n", indices)

Producción:

Ejemplo 3:

En este ejemplo, clasificamos los elementos de un tensor bidimensional en orden ascendente y descendente a lo largo de las filas.

Python3

# importing the library
import torch
  
# define a 2D torch tensor
tensor = torch.tensor([[43, 31, -92], 
                       [3, -4.3, 53], 
                       [-4.2, 7, -6.2]])
print("Tensor:\n", tensor)
  
# sorting the tensor in  ascending order
print("Sorting tensor in \
ascending order along the row:")
values, indices = torch.sort(tensor, dim=1)
  
print("Sorted values:\n", values)
  
# print indices of values in sorted tensor
print("Indices:\n", indices)
  
# sorting the tensor in  descending order
print("Sorting tensor in \
descending order along the row:")
values, indices = torch.sort(tensor,
                             dim=1,
                             descending=True)
  
# printing  values in sorted tensor
print("Sorted values:\n", values)
  
# printing indices of values in sorted tensor
print("Indices:\n", indices)

Producción:

Publicación traducida automáticamente

Artículo escrito por shahidedu7 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 *