Pytorch - Argmax

Pytorch - Argmax
„In diesem Pytorch -Tutorial werden wir sehen, wie Sie Indexpositionen mit maximalen Werten aus einem Tensor mit Argmax () zurückgeben ().

Pytorch ist ein Open-Source-Framework mit einer Python-Programmiersprache. Wir können die Daten in Pytorch in Form eines Tensors verarbeiten.

Ein Tensor ist ein mehrdimensionales Array, mit dem die Daten gespeichert werden. Für die Verwendung eines Tensors müssen wir das Fackelmodul importieren.

Um einen Tensor zu erstellen, ist die verwendete Methode Tensor () ““

Syntax:

Fackel.Tensor (Daten)

Wobei Daten ein mehrdimensionales Array sind.

argmax ()

Argmax () in Pytorch wird verwendet, um den Index des Maximalwerts aller Elemente im Eingangszensor zurückzugeben.

Syntax:

Fackel.Argmax (Tensor, Dim, Keepdim)

Wo

  1. Der Tensor ist der Eingangs -Tensor
  2. Dim ist, die Dimension zu reduzieren. Dim = 0 gibt den Spaltenvergleich an, der den Index für den Maximalwert entlang einer Spalte erhält, und DIM = 1 gibt den Zeilenvergleich an, wodurch der Index für den Maximalwert entlang der Zeile abgerufen wird.
  3. Keepdim prüft, ob der Ausgangsprüfung die Dimension (DIM) beibehalten hat oder nicht

Beispiel 1

In diesem Beispiel erstellen wir einen Tensor mit 2 Dimensionen mit 3 Zeilen und 5 Spalten und wenden Argmax () auf Zeilen und Spalten an.

#import Fackelmodul
Taschenlampe importieren
#einen Tensor mit 2 Abmessungen (3 * 5)
#Mit zufälligen Elementen mit Randn () -Funktion
Daten = Taschenlampe.Randn (3,5)
#Anzeige
Druck (Daten)
#Maximaler Index entlang der Spalten mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 0))
#Maximaler Index entlang der Zeilen mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 1))

Ausgang:

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])

Wir können sehen, dass die im Index entlang der Spalten vorhandenen maximalen Werte:

  1. Maximaler Wert - 0.6699. Sein Index ist 0.
  2. Maximaler Wert - 1.8024. Sein Index ist 2.
  3. Maximaler Wert - 0.2677. Sein Index ist 1.
  4. Maximaler Wert - 0.2568. Sein Index ist 1.
  5. Maximaler Wert - 0.6544. Sein Index ist 0.

In ähnlicher Weise sind maximale Werte, die in den Index entlang von Zeilen vorhanden sind,:

  1. Maximaler Wert - 1.3390. Sein Index ist 1.
  2. Maximaler Wert - 0.5337. Sein Index ist 4.
  3. Maximaler Wert - 1.8024. Sein Index ist 1.

Beispiel 2

Erstellen Sie den Tensor mit 5 * 5 Matrix und wenden Sie Argmax () an ()

#import Fackelmodul
Taschenlampe importieren
#einen Tensor mit 2 Abmessungen (5 * 5)
#Mit zufälligen Elementen mit Randn () -Funktion
Daten = Taschenlampe.Randn (5,5)
#Anzeige
Druck (Daten)
#Maximaler Index entlang der Spalten mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 0))
#Maximaler Index entlang der Zeilen mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 1))

Ausgang:

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])

Wir können sehen, dass die im Index entlang der Spalten vorhandenen maximalen Werte:

  1. Maximaler Wert - 0.8364. Sein Index ist 3.
  2. Maximaler Wert - 1.5301. Sein Index ist 2.
  3. Maximaler Wert - 0.4812. Sein Index ist 2.
  4. Maximaler Wert - 1.4529. Sein Index ist 3.
  5. Maximaler Wert - 1.1323. Sein Index ist 4.

In ähnlicher Weise sind maximale Werte, die in den Index entlang von Zeilen vorhanden sind,:

  1. Maximaler Wert - -0.2611. Sein Index ist 1.
  2. Maximaler Wert - 0.6785. Sein Index ist 4.
  3. Maximaler Wert - 1.5301. Sein Index ist 1.
  4. Maximaler Wert - 1.4529. Sein Index ist 3.
  5. Maximaler Wert - 1.1323. Sein Index ist 4.

Arbeiten Sie mit CPU

Wenn Sie eine argmax () -Funktion auf der CPU ausführen möchten, müssen wir einen Tensor mit einer CPU () -Funktion erstellen. Dies wird auf einer CPU -Maschine ausgeführt.

Wenn wir einen Tensor erstellen, können wir zu diesem Zeitpunkt die Funktion cpu () verwenden.

Syntax:

Fackel.Tensor (Daten).Zentralprozessor()

Beispiel 1

Erstellen Sie den Tensor mit 5 * 5 Matrix mit CPU () und wenden Sie argmax () an
#import Fackelmodul
Taschenlampe importieren
#einen Tensor mit 2 Abmessungen (5 * 5)
#mit zufälligen Elementen mit Randn () -Funktion mit CPU ()
Daten = Taschenlampe.Randn (5,5).Zentralprozessor()
#Anzeige
Druck (Daten)
#Maximaler Index entlang der Spalten mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 0))
#Maximaler Index entlang der Zeilen mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 1))

Ausgang:

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])

Wir können sehen, dass die im Index entlang der Spalten vorhandenen maximalen Werte:

  1. Maximaler Wert - -0.1174. Sein Index ist 4.
  2. Maximaler Wert - 1.6140. Sein Index ist 0.
  3. Maximaler Wert - 0.8887. Sein Index ist 4.
  4. Maximaler Wert - 1.0742. Sein Index ist 2.
  5. Maximaler Wert - 1.9350. Sein Index ist 2.

In ähnlicher Weise sind maximale Werte, die in den Index entlang von Zeilen vorhanden sind,:

  1. Maximaler Wert - 1.6140. Sein Index ist 1.
  2. Maximaler Wert - 1.3535. Sein Index ist 4.
  3. Maximaler Wert - 1.9350. Sein Index ist 4.
  4. Maximaler Wert - 0.7371. Sein Index ist 2.
  5. Maximaler Wert - 0.8887. Sein Index ist 2.

Beispiel 2

In diesem Beispiel erstellen wir einen Tensor mit 2 Dimensionen mit 3 Zeilen und 5 Spalten unter Verwendung von CPU () -Funktion und wenden argmax () auf Zeilen und Spalten an.

#import Fackelmodul
Taschenlampe importieren
#einen Tensor mit 2 Abmessungen (3 * 5)
#Mit zufälligen Elementen mit Randn () mit CPU () -Funktion
Daten = Taschenlampe.Randn (3,5).Zentralprozessor()
#Anzeige
Druck (Daten)
#Maximaler Index entlang der Spalten mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 0))
#Maximaler Index entlang der Zeilen mit Argmax
Druck (Taschenlampe.Argmax (Daten, Dim = 1))

Ausgang:

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])

Wir können sehen, dass die im Index entlang der Spalten vorhandenen maximalen Werte:

  1. Maximaler Wert - 0.6699. Sein Index ist 0.
  2. Maximaler Wert - 1.8024. Sein Index ist 2.
  3. Maximaler Wert - 0.2677. Sein Index ist 1.
  4. Maximaler Wert - 0.2568. Sein Index ist 1.
  5. Maximaler Wert - 0.6544. Sein Index ist 0.

In ähnlicher Weise sind maximale Werte, die in den Index entlang von Zeilen vorhanden sind,:

  1. Maximaler Wert - 1.3390. Sein Index ist 1.
  2. Maximaler Wert - 0.5337. Sein Index ist 4.
  3. Maximaler Wert - 1.8024. Sein Index ist 1.

Abschluss

In dieser Pytorch -Lektion haben wir gesehen, was argmax () und wie man argmax () auf einen Tensor anwendet, um Indizes maximaler Werte über Spalten und Zeilen hinweg zurückzugeben.

Wir haben auch einen Tensor mit CPU () -Funktion erstellt und Indizes mit maximalen Werten zurückgegeben. DIM ist der Parameter, der verwendet wird, um Indizes maximaler Werte über Spalten hinweg zurückzugeben, wenn er auf 0 gesetzt ist, und Indizes der maximalen Werte über Zeilen hinweg zurückzugeben, wenn es auf 1 gesetzt ist.