Pytorch - Argmax

Pytorch - Argmax
“In questo tutorial di Pytorch, vedremo come restituire le posizioni dell'indice dei valori massimi da un tensore usando argmax ().

Pytorch è un framework open source disponibile con un linguaggio di programmazione Python. Possiamo elaborare i dati in Pytorch sotto forma di tensore.

Un tensore è un array multidimensionale utilizzato per archiviare i dati. Quindi, per usare un tensore, dobbiamo importare il modulo Torcia.

Per creare un tensore, il metodo utilizzato è tensore () "

Sintassi:

torcia.tensore (dati)

Dove i dati sono un array multidimensionale.

argmax ()

argmax () in pytorch viene utilizzato per restituire l'indice del valore massimo di tutti gli elementi nel tensore di ingresso.

Sintassi:

torcia.ArgMax (tensore, dim, Keepdim)

Dove

  1. Il tensore è il tensore di ingresso
  2. Dim è ridurre la dimensione. Dim = 0 Specifica il confronto della colonna, che otterrà l'indice per il valore massimo lungo una colonna e Dim = 1 specifica il confronto delle righe, che otterrà l'indice per il valore massimo lungo la riga.
  3. KeepDim controlla se il tensore di output ha una dimensione (Dim) mantenuta o meno

Esempio 1

In questo esempio, creeremo un tensore con 2 dimensioni che hanno 3 righe e 5 colonne e applicheremo Argmax () su righe e colonne.

Modulo Torcia #IMport
Torcia di importazione
#Crea un tensore con 2 dimensioni (3 * 5)
#con elementi casuali usando la funzione randn ()
data = torcia.Randn (3,5)
#Schermo
Stampa (dati)
#Get Maximum Index lungo le colonne con argmax
Stampa (torcia.argmax (dati, dim = 0))
#get indice massimo lungo le righe con argmax
Stampa (torcia.argmax (dati, dim = 1))

Produzione:

tensore ([[0.6699, 1.3390, -1.0658, -1.8200, 0.6544],
[-0.3117, 0.2488, 0.2677, 0.2568, 0.5337],
[-1.0966, 1.8024, -0.7538, -0.2553, -1.0591]])
tensore ([0, 2, 1, 1, 0])
tensore ([1, 4, 1])

Possiamo vedere che i valori massimi presenti nell'indice lungo le colonne sono:

  1. Valore massimo - 0.6699. Il suo indice è 0.
  2. Valore massimo - 1.8024. Il suo indice è 2.
  3. Valore massimo - 0.2677. Il suo indice è 1.
  4. Valore massimo - 0.2568. Il suo indice è 1.
  5. Valore massimo - 0.6544. Il suo indice è 0.

Allo stesso modo, i valori massimi presenti all'indice lungo le righe sono:

  1. Valore massimo - 1.3390. Il suo indice è 1.
  2. Valore massimo - 0.5337. Il suo indice è 4.
  3. Valore massimo - 1.8024. Il suo indice è 1.

Esempio 2

Crea tensore con matrice 5 * 5 e applica argmax ()

Modulo Torcia #IMport
Torcia di importazione
#Crea un tensore con 2 dimensioni (5 * 5)
#con elementi casuali usando la funzione randn ()
data = torcia.Randn (5,5)
#Schermo
Stampa (dati)
#Get Maximum Index lungo le colonne con argmax
Stampa (torcia.argmax (dati, dim = 0))
#get indice massimo lungo le righe con argmax
Stampa (torcia.argmax (dati, dim = 1))

Produzione:

tensore ([[-0.9553, -0.2611, -2.1233, -0.5208, -0.3458],
[-0.5466, -1.6395, 0.2576, -0.3123, 0.6785],
[-0.4574, 1.5301, 0.4812, 0.3434, 0.1388],
[0.8364, 0.3821, 0.1529, 1.4529, 0.3747],
[-1.4991, -1.8821, -0.2861, -0.4067, 1.1323]])
tensore ([3, 2, 2, 3, 4])
tensore ([1, 4, 1, 3, 4])

Possiamo vedere che i valori massimi presenti nell'indice lungo le colonne sono:

  1. Valore massimo - 0.8364. Il suo indice è 3.
  2. Valore massimo - 1.5301. Il suo indice è 2.
  3. Valore massimo - 0.4812. Il suo indice è 2.
  4. Valore massimo - 1.4529. Il suo indice è 3.
  5. Valore massimo - 1.1323. Il suo indice è 4.

Allo stesso modo, i valori massimi presenti all'indice lungo le righe sono:

  1. Valore massimo - -0.2611. Il suo indice è 1.
  2. Valore massimo - 0.6785. Il suo indice è 4.
  3. Valore massimo - 1.5301. Il suo indice è 1.
  4. Valore massimo - 1.4529. Il suo indice è 3.
  5. Valore massimo - 1.1323. Il suo indice è 4.

Lavorare con la CPU

Se si desidera eseguire una funzione argmax () sulla CPU, allora dobbiamo creare un tensore con una funzione CPU (). Questo funzionerà su una macchina CPU.

Quando stiamo creando un tensore, in questo momento, possiamo usare la funzione CPU ().

Sintassi:

torcia.tensore (dati).processore()

Esempio 1

Crea tensore con matrice 5 * 5 con CPU () e applica argmax ()
Modulo Torcia #IMport
Torcia di importazione
#Crea un tensore con 2 dimensioni (5 * 5)
#con elementi casuali usando la funzione Randn () con CPU ()
data = torcia.Randn (5,5).processore()
#Schermo
Stampa (dati)
#Get Maximum Index lungo le colonne con argmax
Stampa (torcia.argmax (dati, dim = 0))
#get indice massimo lungo le righe con argmax
Stampa (torcia.argmax (dati, dim = 1))

Produzione:

tensore ([[-0.2213, 1.6140, -0.0774, 0.4135, 0.1379],
[-0.4415, -2.5789, 0.8294, -0.9309, 1.3535],
[-1.3256, -0.7233, -0.9713, 1.0742, 1.9350],
[-0.7126, -1.3336, 0.7371, -0.2253, 0.1675],
[-0.1174, -0.5773, 0.8887, -0.2563, -1.0667]])
tensore ([4, 0, 4, 2, 2])
tensore ([1, 4, 4, 2, 2])

Possiamo vedere che i valori massimi presenti nell'indice lungo le colonne sono:

  1. Valore massimo - -0.1174. Il suo indice è 4.
  2. Valore massimo - 1.6140. Il suo indice è 0.
  3. Valore massimo - 0.8887. Il suo indice è 4.
  4. Valore massimo - 1.0742. Il suo indice è 2.
  5. Valore massimo - 1.9350. Il suo indice è 2.

Allo stesso modo, i valori massimi presenti all'indice lungo le righe sono:

  1. Valore massimo - 1.6140. Il suo indice è 1.
  2. Valore massimo - 1.3535. Il suo indice è 4.
  3. Valore massimo - 1.9350. Il suo indice è 4.
  4. Valore massimo - 0.7371. Il suo indice è 2.
  5. Valore massimo - 0.8887. Il suo indice è 2.

Esempio 2

In questo esempio, creeremo un tensore con 2 dimensioni con 3 righe e 5 colonne usando la funzione CPU () e applicare argmax () su righe e colonne.

Modulo Torcia #IMport
Torcia di importazione
#Crea un tensore con 2 dimensioni (3 * 5)
#con elementi casuali che utilizzano Randn () con la funzione CPU ()
data = torcia.Randn (3,5).processore()
#Schermo
Stampa (dati)
#Get Maximum Index lungo le colonne con argmax
Stampa (torcia.argmax (dati, dim = 0))
#get indice massimo lungo le righe con argmax
Stampa (torcia.argmax (dati, dim = 1))

Produzione:

tensore ([[0.6699, 1.3390, -1.0658, -1.8200, 0.6544],
[-0.3117, 0.2488, 0.2677, 0.2568, 0.5337],
[-1.0966, 1.8024, -0.7538, -0.2553, -1.0591]])
tensore ([0, 2, 1, 1, 0])
tensore ([1, 4, 1])

Possiamo vedere che i valori massimi presenti nell'indice lungo le colonne sono:

  1. Valore massimo - 0.6699. Il suo indice è 0.
  2. Valore massimo - 1.8024. Il suo indice è 2.
  3. Valore massimo - 0.2677. Il suo indice è 1.
  4. Valore massimo - 0.2568. Il suo indice è 1.
  5. Valore massimo - 0.6544. Il suo indice è 0.

Allo stesso modo, i valori massimi presenti all'indice lungo le righe sono:

  1. Valore massimo - 1.3390. Il suo indice è 1.
  2. Valore massimo - 0.5337. Il suo indice è 4.
  3. Valore massimo - 1.8024. Il suo indice è 1.

Conclusione

In questa lezione di Pytorch, abbiamo visto cosa argmax () e come applicare argmax () su un tensore per restituire gli indici di valori massimi tra colonne e righe.

Abbiamo anche creato un tensore con la funzione CPU () e gli indici restituiti di valori massimi. Dim è il parametro utilizzato per restituire gli indici dei valori massimi tra le colonne quando è impostato su 0 e gli indici di restituzione dei valori massimi attraverso le righe quando è impostato su 1.