Pytorch - Argmax

Pytorch - Argmax
"I denne pytorch -opplæringen vil vi se hvordan vi kan returnere indeksposisjoner med maksimumsverdier fra en tensor ved bruk av Argmax ().

Pytorch er et open source-ramme tilgjengelig med et Python-programmeringsspråk. Vi kan behandle dataene i Pytorch i form av en tensor.

En tensor er et flerdimensjonalt utvalg som brukes til å lagre dataene. Så for å bruke en tensor, må vi importere fakkelmodulen.

For å lage en tensor er metoden som brukes tensor () ”

Syntaks:

lommelykt.Tensor (data)

Hvor data er en flerdimensjonal matrise.

Argmax ()

Argmax () i Pytorch brukes til å returnere indeksen for maksimal verdi av alle elementer i inngangstensoren.

Syntaks:

lommelykt.Argmax (Tensor, Dim, Keepdim)

Hvor

  1. Tensoren er inngangstensoren
  2. Dim er å redusere dimensjonen. DIM = 0 spesifiserer kolonnesammenligning, som vil få indeksen for maksimal verdi langs en kolonne, og DIM = 1 spesifiserer radsammenligning, som vil få indeksen for maksimal verdi langs raden.
  3. Keepdim sjekker om utgangstensoren har dimensjon (dim) beholdt eller ikke

Eksempel 1

I dette eksemplet vil vi lage en tensor med to dimensjoner som har 3 rader og 5 kolonner og bruke argmax () på rader og kolonner.

#import fakkelmodul
Importer fakkel
#Create en tensor med 2 dimensjoner (3 * 5)
#med tilfeldige elementer ved bruk av randn () -funksjon
data = fakkel.Randn (3,5)
#vise
Print (data)
#Get maksimal indeks langs kolonner med argmax
trykk (fakkel.Argmax (data, dim = 0))
#get maksimal indeks langs rader med argmax
trykk (fakkel.Argmax (data, dim = 1))

Produksjon:

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

Vi kan se at de maksimale verdiene som er til stede i indeksen langs kolonnene er:

  1. Maks verdi - 0.6699. Indeksen er 0.
  2. Maks verdi - 1.8024. Indeksen er 2.
  3. Maks verdi - 0.2677. Indeksen er 1.
  4. Maks verdi - 0.2568. Indeksen er 1.
  5. Maks verdi - 0.6544. Indeksen er 0.

Tilsvarende er maksimale verdier som er til stede ved indeks langs rader:

  1. Maks verdi - 1.3390. Indeksen er 1.
  2. Maks verdi - 0.5337. Indeksen er 4.
  3. Maks verdi - 1.8024. Indeksen er 1.

Eksempel 2

Lag tensor med 5 * 5 matrise og bruk argmax ()

#import fakkelmodul
Importer fakkel
#Create en tensor med 2 dimensjoner (5 * 5)
#med tilfeldige elementer ved bruk av randn () -funksjon
data = fakkel.Randn (5,5)
#vise
Print (data)
#Get maksimal indeks langs kolonner med argmax
trykk (fakkel.Argmax (data, dim = 0))
#get maksimal indeks langs rader med argmax
trykk (fakkel.Argmax (data, dim = 1))

Produksjon:

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

Vi kan se at de maksimale verdiene som er til stede i indeksen langs kolonnene er:

  1. Maks verdi - 0.8364. Indeksen er 3.
  2. Maks verdi - 1.5301. Indeksen er 2.
  3. Maks verdi - 0.4812. Indeksen er 2.
  4. Maks verdi - 1.4529. Indeksen er 3.
  5. Maks verdi - 1.1323. Indeksen er 4.

Tilsvarende er maksimale verdier som er til stede ved indeks langs rader:

  1. Maks verdi - -0.2611. Indeksen er 1.
  2. Maks verdi - 0.6785. Indeksen er 4.
  3. Maks verdi - 1.5301. Indeksen er 1.
  4. Maks verdi - 1.4529. Indeksen er 3.
  5. Maks verdi - 1.1323. Indeksen er 4.

Arbeid med CPU

Hvis du vil kjøre en Argmax () -funksjon på CPU, må vi lage en tensor med en CPU () -funksjon. Dette kjøres på en CPU -maskin.

Når vi lager en tensor, kan vi på dette tidspunktet bruke CPU () -funksjonen.

Syntaks:

lommelykt.Tensor (data).prosessor()

Eksempel 1

Lag tensor med 5 * 5 -matrise med CPU () og bruk Argmax ()
#import fakkelmodul
Importer fakkel
#Create en tensor med 2 dimensjoner (5 * 5)
#med tilfeldige elementer som bruker randn () -funksjon med CPU ()
data = fakkel.Randn (5,5).prosessor()
#vise
Print (data)
#Get maksimal indeks langs kolonner med argmax
trykk (fakkel.Argmax (data, dim = 0))
#get maksimal indeks langs rader med argmax
trykk (fakkel.Argmax (data, dim = 1))

Produksjon:

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

Vi kan se at de maksimale verdiene som er til stede i indeksen langs kolonnene er:

  1. Maks verdi - -0.1174. Indeksen er 4.
  2. Maks verdi - 1.6140. Indeksen er 0.
  3. Maks verdi - 0.8887. Indeksen er 4.
  4. Maks verdi - 1.0742. Indeksen er 2.
  5. Maks verdi - 1.9350. Indeksen er 2.

Tilsvarende er maksimale verdier som er til stede ved indeks langs rader:

  1. Maks verdi - 1.6140. Indeksen er 1.
  2. Maks verdi - 1.3535. Indeksen er 4.
  3. Maks verdi - 1.9350. Indeksen er 4.
  4. Maks verdi - 0.7371. Indeksen er 2.
  5. Maks verdi - 0.8887. Indeksen er 2.

Eksempel 2

I dette eksemplet vil vi lage en tensor med to dimensjoner som har 3 rader og 5 kolonner ved bruk av CPU () -funksjon og bruke ArgMax () på rader og kolonner.

#import fakkelmodul
Importer fakkel
#Create en tensor med 2 dimensjoner (3 * 5)
#med tilfeldige elementer som bruker randn () med CPU () -funksjon
data = fakkel.Randn (3,5).prosessor()
#vise
Print (data)
#Get maksimal indeks langs kolonner med argmax
trykk (fakkel.Argmax (data, dim = 0))
#get maksimal indeks langs rader med argmax
trykk (fakkel.Argmax (data, dim = 1))

Produksjon:

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

Vi kan se at de maksimale verdiene som er til stede i indeksen langs kolonnene er:

  1. Maks verdi - 0.6699. Indeksen er 0.
  2. Maks verdi - 1.8024. Indeksen er 2.
  3. Maks verdi - 0.2677. Indeksen er 1.
  4. Maks verdi - 0.2568. Indeksen er 1.
  5. Maks verdi - 0.6544. Indeksen er 0.

Tilsvarende er maksimale verdier som er til stede ved indeks langs rader:

  1. Maks verdi - 1.3390. Indeksen er 1.
  2. Maks verdi - 0.5337. Indeksen er 4.
  3. Maks verdi - 1.8024. Indeksen er 1.

Konklusjon

I denne Pytorch -leksjonen så vi hva Argmax () og hvordan du bruker Argmax () på en tensor for å returnere indekser av maksimale verdier på tvers av kolonner og rader.

Vi opprettet også en tensor med CPU () -funksjon og returnerte indekser for maksimale verdier. DIM er parameteren som brukes til å returnere indekser for maksimale verdier på tvers av kolonner når den er satt til 0 og returnerer indekser for maksimale verdier på tvers av rader når den er satt til 1.