Pytorch - Argmin

Pytorch - Argmin
Pytorch est un cadre open source pour le langage de programmation Python. Nous pouvons traiter les données en pytorch sous la forme d'un tenseur.

Un tenseur est un tableau multidimensionnel utilisé pour stocker des données. Donc, pour utiliser un tenseur, nous devons importer le module de torche.

Pour créer un tenseur, la méthode utilisée est le tenseur ().

Syntaxe:

torche.tenseur (données)

Où les données sont un tableau multidimensionnel.

Argmin ()

Argmin () dans Pytorch est utilisé pour renvoyer l'index de la valeur minimale de tous les éléments dans le tenseur d'entrée.

Syntaxe:
torche.argmin (tenseur, dim, keepdim)

  1. Le tenseur est le tenseur d'entrée.
  2. DIM est de réduire la dimension. Dim = 0 spécifie la comparaison de la colonne, qui obtiendra l'index de la valeur minimale le long d'une colonne, et DIM = 1 spécifie la comparaison de lignes, qui obtiendra l'index pour la valeur minimale le long de la ligne.
  3. KeepDim vérifie si le tenseur de sortie a une dimension (DIM) conservée ou non.

Exemple 1:

Dans cet exemple, nous créerons un tenseur avec deux dimensions qui a trois lignes et cinq colonnes et appliquer Argmin () sur les lignes et les colonnes.

Module de torche #mport
Importer une torche
#create un tenseur avec 2 dimensions (3 * 5)
# avec des éléments aléatoires en utilisant la fonction randn ()
données = torche.Randn (3,5)
#afficher
Imprimer (données)
#get index minimum le long des colonnes avec argmin
imprimer (torche.Argmin (données, dim = 0))
#get index minimum le long des lignes avec argmin
imprimer (torche.Argmin (données, dim = 1))

Sortir:

tenseur ([[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]])
tenseur ([1, 1, 2, 0, 2])
tenseur ([3, 0, 4])

Comme nous pouvons le voir, les valeurs minimales des index et colonnes sont:

  1. Valeur min - -1.2597. Son index est 1.
  2. Valeur min - 1 -0.3892. Son index est 1.
  3. Valeur min - -0.1914. Son index est 2.
  4. Valeur min - 0.4714. Son index est 0.
  5. Valeur min - -2.0053. Son index est 2.

De même, les valeurs minimales présentes à l'indice le long des lignes sont:

  1. Valeur min - -0.4714. Son index est 3.
  2. Valeur min - -1.2597. Son index est 0.
  3. Valeur min - -2.0053. Son index est 4.

Exemple 2:

Créez un tenseur avec une matrice de cinq sur cinq et appliquez Argmin ().

Module de torche #mport
Importer une torche
#create un tenseur avec 2 dimensions (5 * 5)
# avec des éléments aléatoires en utilisant la fonction randn ()
données = torche.Randn (5,5)
#afficher
Imprimer (données)
#get index minimum le long des colonnes avec argmin
imprimer (torche.Argmin (données, dim = 0))
#get index minimum le long des lignes avec argmin
imprimer (torche.Argmin (données, dim = 1))

Sortir:

tenseur ([[- 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])

Nous pouvons voir que les valeurs minimales présentes dans l'index le long des colonnes sont:

  1. Valeur min - -1.9151. Son index est 4.
  2. Valeur min - -0.7426. Son index est 0.
  3. Valeur min - -0.9577. Son index est 3.
  4. Valeur min - -1.1608. Son index est 1.
  5. Valeur min - -1.1233. Son index est 4.

De même, les valeurs minimales à l'index le long des lignes sont:

  1. Valeur min - -1.7387. Son index est 0.
  2. Valeur min - -1.1608. Son index est 3.
  3. Valeur min - -0.5474. Son index est 1.
  4. Valeur min - -0.9577. Son index est 2.
  5. Valeur min - -1.9151. Son index est 0.

Travailler avec le processeur

Si vous souhaitez exécuter une fonction argmin () sur le CPU, alors nous devons créer un tenseur avec une fonction CPU (). Cela fonctionnera sur une machine CPU.

Pour le moment, lorsque nous créons un tenseur, nous pouvons utiliser la fonction CPU ().

Syntaxe:
torche.tenseur (données).CPU()

Exemple 1:

Dans cet exemple, nous créerons un tenseur avec deux dimensions sur le CPU qui a trois lignes et cinq colonnes et appliquer Argmin () sur les lignes et les colonnes.

Module de torche #mport
Importer une torche
#create un tenseur avec 2 dimensions (3 * 5)
# avec des éléments aléatoires en utilisant randn () avec CPU ()
données = torche.Randn (3,5).CPU()
#afficher
Imprimer (données)
#get index minimum le long des colonnes avec argmin
imprimer (torche.Argmin (données, dim = 0))
#get index minimum le long des lignes avec argmin
imprimer (torche.Argmin (données, dim = 1))

Sortir:

tenseur ([[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]])
tenseur ([1, 1, 2, 0, 2])
tenseur ([3, 0, 4])

Comme nous pouvons le voir, les valeurs minimales pour les index et les colonnes sont:

  1. Valeur min - -1.2597. Son index est 1.
  2. Valeur min - 1 -0.3892. Son index est 1.
  3. Valeur min - -0.1914. Son index est 2.
  4. Valeur min - 0.4714. Son index est 0.
  5. Valeur min - -2.0053. Son index est 2.

De même, les valeurs minimales à l'index le long des lignes sont:

  1. Valeur min - -0.4714. Son index est 3.
  2. Valeur min - -1.2597. Son index est 0.
  3. Valeur min - -2.0053. Son index est 4.

Exemple 2:

Créez un tenseur avec une matrice de cinq par cinq sur le CPU et appliquez Argmin ().

Module de torche #mport
Importer une torche
#create un tenseur avec 2 dimensions (5 * 5)
# avec des éléments aléatoires en utilisant la fonction randn ()
données = torche.Randn (5,5).CPU()
#afficher
Imprimer (données)
#get index minimum le long des colonnes avec argmin
imprimer (torche.Argmin (données, dim = 0))
#get index minimum le long des lignes avec argmin
imprimer (torche.Argmin (données, dim = 1))

Sortir:

tenseur ([[- 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])

Comme nous pouvons le voir, les valeurs minimales pour les index et les colonnes sont:

  1. Valeur min - -1.9151. Son index est 4.
  2. Valeur min - -0.7426. Son index est 0.
  3. Valeur min - -0.9577. Son index est 3.
  4. Valeur min - -1.1608. Son index est 1.
  5. Valeur min - -1.1233. Son index est 4.

De même, les valeurs minimales à l'index le long des lignes sont:

  1. Valeur min - -1.7387. Son index est 0.
  2. Valeur min - -1.1608. Son index est 3.
  3. Valeur min - -0.5474. Son index est 1.
  4. Valeur min - -0.9577. Son index est 2.
  5. Valeur min - -1.9151. Son index est 0.

Conclusion

Dans cette leçon de pytorch, nous avons vu ce qu'est Argmin () et comment appliquer Argmin () à un tenseur pour retourner des indices de valeurs minimales entre les colonnes et les lignes.

Nous avons également créé un tenseur avec la fonction CPU () et retourné des indices de ses valeurs minimales. DIM est le paramètre utilisé pour retourner les indices de valeurs minimales entre les colonnes lorsqu'elle est définie sur 0 et retourne les indices de valeurs minimales entre les lignes lorsqu'elle est définie sur 1.