Pytorch - Argmin

Pytorch - Argmin
Pytorch es un marco de código abierto para el lenguaje de programación de Python. Podemos procesar los datos en Pytorch en forma de tensor.

Un tensor es una matriz multidimensional que se utiliza para almacenar datos. Entonces, para usar un tensor, tenemos que importar el módulo de antorcha.

Para crear un tensor, el método utilizado es tensor ().

Sintaxis:

antorcha.Tensor (datos)

Donde los datos son una matriz multidimensional.

argmin ()

ArgMin () en Pytorch se usa para devolver el índice del valor mínimo de todos los elementos en el tensor de entrada.

Sintaxis:
antorcha.Argmin (Tensor, Dim, Keepdim)

Dónde

  1. El tensor es el tensor de entrada.
  2. Dim es reducir la dimensión. dim = 0 Especifica la comparación de columna, que obtendrá el índice para el valor mínimo a lo largo de una columna, y Dim = 1 especifica la comparación de filas, que obtendrá el índice para el valor mínimo a lo largo de la fila.
  3. KeepDim verifica si el tensor de salida tiene dimensión (dim) retenida o no.

Ejemplo 1:

En este ejemplo, crearemos un tensor con dos dimensiones que tenga tres filas y cinco columnas y aplicaremos argMin () en las filas y columnas.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (3 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (3,5)
#mostrar
Imprimir (datos)
#Obtenga un índice mínimo a lo largo de columnas con argmin
imprimir (antorcha.ArgMin (datos, dim = 0))
#Obtenga un índice mínimo a lo largo de filas con argmin
imprimir (antorcha.ArgMin (datos, dim = 1))

Producción:

tensor ([[1.0604, -0.0234, 0.4258, -0.4714, 0.2778],
[-1.2597, -0.3892, 0.2120, 0.1376, 0.6919],
[0.0449, -0.3545, -0.1914, 0.1969, -2.0053]])
Tensor ([1, 1, 2, 0, 2])
Tensor ([3, 0, 4])

Como podemos ver, los valores mínimos de los índices y columnas son:

  1. Valor mínimo - -1.2597. Su índice es 1.
  2. Valor mínimo - 1 -0.3892. Su índice es 1.
  3. Valor mínimo - -0.1914. Su índice es 2.
  4. Valor mínimo - 0.4714. Su índice es 0.
  5. Valor mínimo - -2.0053. Su índice es 2.

Del mismo modo, los valores mínimos presentes en el índice a lo largo de las filas son:

  1. Valor mínimo - -0.4714. Su índice es 3.
  2. Valor mínimo - -1.2597. Su índice es 0.
  3. Valor mínimo - -2.0053. Su índice es 4.

Ejemplo 2:

Cree un tensor con una matriz de cinco por cinco y aplique argMin ().

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (5 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (5,5)
#mostrar
Imprimir (datos)
#Obtenga un índice mínimo a lo largo de columnas con argmin
imprimir (antorcha.ArgMin (datos, dim = 0))
#Obtenga un índice mínimo a lo largo de filas con argmin
imprimir (antorcha.ArgMin (datos, dim = 1))

Producción:

tensor ([[-1.7387, -0.7426, 0.5696, -0.6700, -1.0527],
[0.2564, -0.3471, 1.5256, -1.1608, 0.4367],
[1.4390, -0.5474, 0.5909, 0.0491, 0.4655],
[-0.7006, -0.0367, -0.9577, -0.0834, -0.7249],
[-1.9151, 2.3360, 1.1214, 0.4452, -1.1233]])
Tensor ([4, 0, 3, 1, 4])
tensor ([0, 3, 1, 2, 0])

Podemos ver que los valores mínimos presentes en el índice a lo largo de las columnas son:

  1. Valor mínimo - -1.9151. Su índice es 4.
  2. Valor mínimo - -0.7426. Su índice es 0.
  3. Valor mínimo - -0.9577. Su índice es 3.
  4. Valor mínimo - -1.1608. Su índice es 1.
  5. Valor mínimo - -1.1233. Su índice es 4.

Del mismo modo, los valores mínimos en el índice a lo largo de las filas son:

  1. Valor mínimo - -1.7387. Su índice es 0.
  2. Valor mínimo - -1.1608. Su índice es 3.
  3. Valor mínimo - -0.5474. Su índice es 1.
  4. Valor mínimo - -0.9577. Su índice es 2.
  5. Valor mínimo - -1.9151. Su índice es 0.

Trabajar con CPU

Si desea ejecutar una función ArgMin () en la CPU, entonces tenemos que crear un tensor con una función CPU (). Esto se ejecutará en una máquina CPU.

En este momento, cuando estamos creando un tensor, podemos usar la función CPU ().

Sintaxis:
antorcha.Tensor (datos).UPC()

Ejemplo 1:

En este ejemplo, crearemos un tensor con dos dimensiones en la CPU que tiene tres filas y cinco columnas y aplicaremos argMin () en las filas y columnas.

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (3 * 5)
#Con elementos aleatorios usando randn () con la función CPU ()
datos = antorcha.Randn (3,5).UPC()
#mostrar
Imprimir (datos)
#Obtenga un índice mínimo a lo largo de columnas con argmin
imprimir (antorcha.ArgMin (datos, dim = 0))
#Obtenga un índice mínimo a lo largo de filas con argmin
imprimir (antorcha.ArgMin (datos, dim = 1))

Producción:

tensor ([[1.0604, -0.0234, 0.4258, -0.4714, 0.2778],
[-1.2597, -0.3892, 0.2120, 0.1376, 0.6919],
[0.0449, -0.3545, -0.1914, 0.1969, -2.0053]])
Tensor ([1, 1, 2, 0, 2])
Tensor ([3, 0, 4])

Como podemos ver, los valores mínimos para los índices y columnas son:

  1. Valor mínimo - -1.2597. Su índice es 1.
  2. Valor mínimo - 1 -0.3892. Su índice es 1.
  3. Valor mínimo - -0.1914. Su índice es 2.
  4. Valor mínimo - 0.4714. Su índice es 0.
  5. Valor mínimo - -2.0053. Su índice es 2.

Del mismo modo, los valores mínimos en el índice a lo largo de las filas son:

  1. Valor mínimo - -0.4714. Su índice es 3.
  2. Valor mínimo - -1.2597. Su índice es 0.
  3. Valor mínimo - -2.0053. Su índice es 4.

Ejemplo 2:

Cree un tensor con una matriz de cinco por cinco en la CPU y aplique argMin ().

#módulo de antorcha de Import
antorcha de importación
#cree un tensor con 2 dimensiones (5 * 5)
#Con elementos aleatorios usando la función randn ()
datos = antorcha.Randn (5,5).UPC()
#mostrar
Imprimir (datos)
#Obtenga un índice mínimo a lo largo de columnas con argmin
imprimir (antorcha.ArgMin (datos, dim = 0))
#Obtenga un índice mínimo a lo largo de filas con argmin
imprimir (antorcha.ArgMin (datos, dim = 1))

Producción:

tensor ([[-1.7387, -0.7426, 0.5696, -0.6700, -1.0527],
[0.2564, -0.3471, 1.5256, -1.1608, 0.4367],
[1.4390, -0.5474, 0.5909, 0.0491, 0.4655],
[-0.7006, -0.0367, -0.9577, -0.0834, -0.7249],
[-1.9151, 2.3360, 1.1214, 0.4452, -1.1233]])
Tensor ([4, 0, 3, 1, 4])
tensor ([0, 3, 1, 2, 0])

Como podemos ver, los valores mínimos para los índices y columnas son:

  1. Valor mínimo - -1.9151. Su índice es 4.
  2. Valor mínimo - -0.7426. Su índice es 0.
  3. Valor mínimo - -0.9577. Su índice es 3.
  4. Valor mínimo - -1.1608. Su índice es 1.
  5. Valor mínimo - -1.1233. Su índice es 4.

Del mismo modo, los valores mínimos en el índice a lo largo de las filas son:

  1. Valor mínimo - -1.7387. Su índice es 0.
  2. Valor mínimo - -1.1608. Su índice es 3.
  3. Valor mínimo - -0.5474. Su índice es 1.
  4. Valor mínimo - -0.9577. Su índice es 2.
  5. Valor mínimo - -1.9151. Su índice es 0.

Conclusión

En esta lección de Pytorch, vimos lo que es argMin () y cómo aplicar argMin () a un tensor para devolver índices de valores mínimos entre columnas y filas.

También creamos un tensor con la función CPU () y los índices devueltos de sus valores mínimos. Dim es el parámetro utilizado para devolver índices de valores mínimos en las columnas cuando se establece en 0 y devuelve los índices de valores mínimos en las filas cuando se establece en 1.