Pytorch - Cummax

Pytorch - Cummax
Pytorch ist ein Open-Source-Framework für die Python-Programmiersprache.

Ein Tensor ist ein mehrdimensionales Array, das zum Speichern von Daten verwendet wird. Um einen Tensor zu verwenden, müssen wir das Fackelmodul importieren.

Zum Erstellen eines Tensors ist die verwendete Methode Tensor ().

Syntax:

Fackel.Tensor (Daten)

Wobei Daten ein mehrdimensionales Array sind.

Fackel.Cummax ()

Fackel.Cummax () gibt das kumulative Maximum der Elemente in einem zweidimensionalen Tensor über Reihen oder Säulen hinweg zurück. Es gibt auch die Indizes der zurückgegebenen Maximalwerte zurück.

Syntax:

Fackel.Cummax (Tensor_Object, Dim)

Parameter:

  1. Es dauert als erster Parameter Tensor_Object. Es muss zweidimensional sein.
  2. DIM = 0 gibt die spaltenweise Berechnung an und Dim = 1 gibt die Zeilen-Weise-Berechnung an

Beispiel 1:

In diesem Beispiel erstellen wir einen Tensor mit vier Zeilen und vier Spalten und geben das kumulative Maximum jedes Elements über die Zeile zurück.

#import Fackelmodul
Taschenlampe importieren
#Create Tensor
Data1 = Fackel.Tensor ([[2,3,4,5], [1,3,5,3] [2,3,2,1] [2,3,4,2]])
#Anzeige
print ("tatsächlicher Tensor:")
Druck (Daten1)
print ("kumulatives Maximum in der Reihe:")
#RETUMN CUMULATIVE MAXIMUM
Druck (Taschenlampe.Cummax (Daten1, 1))

Ausgang:

Tatsächlicher Tensor:
Tensor ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]]))
Kumulatives Maximum über die Zeile:
Fackel.return_types.Cummax (
Werte = Tensor ([[2, 3, 4, 5],
[1, 3, 5, 5],
[2, 3, 3, 3],
[2, 3, 4, 4]])),
Indizes = Tensor ([[0, 1, 2, 3],
[0, 1, 2, 2],
[0, 1, 1, 1],
[0, 1, 2, 2]])))

Arbeiten:

Zeile-1: 2, Maximum (2,3), Maximum (2,3,4), Maximum (2,3,4,5) = [2, 3,4,5]

So sind [2, 3,4,5] Indexpositionen im tatsächlichen Tensor - [0,1,2,3]

Zeile-2: 1, Maximum (1,3), Maximum (1,3,5), Maximum (1,3,5,3) = [1,3,5,5]

Also sind [1,3,5,5] Indexpositionen im tatsächlichen Tensor - [0,1,2,2]

Zeile-3: 2, Maximum (2,3), Maximum (2,3,2), Maximum (2,3,2,1) = [2,3,3,3]

So sind [2,3,3,3] Indexpositionen im tatsächlichen Tensor - [0,1,1,1]

Zeile-4: 2, Maximum (2,3), Maximum (2,3,4), Maximum (2,3,4,2) = [2,3,4,4]

Also sind [2,3,4,4] Indexpositionen im tatsächlichen Tensor - [0,1,2,2]

Beispiel 2:

In diesem Beispiel erstellen wir einen Tensor mit vier Zeilen und vier Spalten und geben das kumulative Maximum jedes Elements über die Spalte zurück.

#import Fackelmodul
Taschenlampe importieren
#Create Tensor
Data1 = Fackel.Tensor ([[2,3,4,5], [1,3,5,3] [2,3,2,1] [2,3,4,2]])
#Anzeige
print ("tatsächlicher Tensor:")
Druck (Daten1)
print ("kumulatives Maximum über Spalte:")
#RETUMN CUMULATIVE MAXIMUM
Druck (Taschenlampe.Cummax (Daten1,0))

Ausgang:

Tatsächlicher Tensor:
Tensor ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]]))
Kumulatives Maximum über die Spalte:
Fackel.return_types.Cummax (
Werte = Tensor ([[2, 3, 4, 5],
[2, 3, 5, 5],
[2, 3, 5, 5],
[2, 3, 5, 5]])),
Indizes = Tensor ([[0, 0, 0, 0],
[0, 1, 1, 0],
[2, 2, 1, 0],
[3, 3, 1, 0]])))

Arbeiten:
Spalte-1: 2, Maximum (2,1), Maximum (2,1,2), Maximum (2,1,2,2) = [2, 2,2,2]

So sind [2, 2,2,2] Indexpositionen im tatsächlichen Tensor - [0,0,2,3]

Spalte-2: 3, Maximum (3,3), Maximum (3,3,3), Maximum (3,3,3,3) = [3,3,3,3]

Also sind [3,3,3,3] Indexpositionen im tatsächlichen Tensor - [0,1,2,3]

Spalte 3: 4, Maximum (4,5), Maximum (4,5,2), Maximum (4,5,2,4) = [4,5,5,5]

Also sind [4,5,5,5] Indexpositionen im tatsächlichen Tensor - [0,1,1,1]

Spalte 4: 5, Maximum (5,3), Maximum (5,3,1), Maximum (5,3,1,2) = [5,5,5,5]

Also sind [5,5,5,5] Indexpositionen im tatsächlichen Tensor - [0,0,0,0]

Arbeiten Sie mit CPU

Wenn Sie eine Cummax () -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.

Zu diesem Zeitpunkt können wir beim Erstellen eines Tensors die CPU () -Funktion verwenden.

Syntax:

Fackel.Tensor (Daten).Zentralprozessor()

Beispiel 1:

In diesem Beispiel erstellen wir einen Tensor mit vier Zeilen und vier Spalten und geben das kumulative Maximum jedes Elements über die Zeile zurück

#import Fackelmodul
Taschenlampe importieren
#Create Tensor
Data1 = Fackel.Tensor ([[2,3,4,5], [1,3,5,3] [2,3,2,1] [2,3,4,2]]).Zentralprozessor()
#Anzeige
print ("tatsächlicher Tensor:")
Druck (Daten1)
print ("kumulatives Maximum in der Reihe:")
#RETUMN CUMULATIVE MAXIMUM
Druck (Taschenlampe.Cummax (Daten1, 1))

Ausgang:

Tatsächlicher Tensor:
Tensor ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]]))
Kumulatives Maximum über die Zeile:
Fackel.return_types.Cummax (
Werte = Tensor ([[2, 3, 4, 5],
[1, 3, 5, 5],
[2, 3, 3, 3],
[2, 3, 4, 4]])),
Indizes = Tensor ([[0, 1, 2, 3],
[0, 1, 2, 2],
[0, 1, 1, 1],
[0, 1, 2, 2]])))

Arbeiten:

Zeile-1: 2, Maximum (2,3), Maximum (2,3,4), Maximum (2,3,4,5) = [2, 3,4,5]

So sind [2, 3,4,5] Indexpositionen im tatsächlichen Tensor - [0,1,2,3]

Zeile-2: 1, Maximum (1,3), Maximum (1,3,5), Maximum (1,3,5,3) = [1,3,5,5]

Also sind [1,3,5,5] Indexpositionen im tatsächlichen Tensor - [0,1,2,2]

Zeile-3: 2, Maximum (2,3), Maximum (2,3,2), Maximum (2,3,2,1) = [2,3,3,3]

So sind [2,3,3,3] Indexpositionen im tatsächlichen Tensor - [0,1,1,1]

Zeile-4: 2, Maximum (2,3), Maximum (2,3,4), Maximum (2,3,4,2) = [2,3,4,4]

Also sind [2,3,4,4] Indexpositionen im tatsächlichen Tensor - [0,1,2,2]

Beispiel 2:

In diesem Beispiel erstellen wir einen Tensor mit vier Zeilen und vier Spalten und geben das kumulative Maximum jedes Elements über die Spalte zurück.

#import Fackelmodul
Taschenlampe importieren
#Create Tensor
Data1 = Fackel.Tensor ([[2,3,4,5], [1,3,5,3] [2,3,2,1] [2,3,4,2]]).Zentralprozessor()
#Anzeige
print ("tatsächlicher Tensor:")
Druck (Daten1)
print ("kumulatives Maximum über Spalte:")
#RETUMN CUMULATIVE MAXIMUM
Druck (Taschenlampe.Cummax (Daten1,0))

Ausgang:

Tatsächlicher Tensor:
Tensor ([[2, 3, 4, 5],
[1, 3, 5, 3],
[2, 3, 2, 1],
[2, 3, 4, 2]]))
Kumulatives Maximum über die Spalte:
Fackel.return_types.Cummax (
Werte = Tensor ([[2, 3, 4, 5],
[2, 3, 5, 5],
[2, 3, 5, 5],
[2, 3, 5, 5]])),
Indizes = Tensor ([[0, 0, 0, 0],
[0, 1, 1, 0],
[2, 2, 1, 0],
[3, 3, 1, 0]])))

Arbeiten:

Spalte-1: 2, Maximum (2,1), Maximum (2,1,2), Maximum (2,1,2,2) = [2, 2,2,2]

So sind [2, 2,2,2] Indexpositionen im tatsächlichen Tensor - [0,0,2,3]

Spalte-2: 3, Maximum (3,3), Maximum (3,3,3), Maximum (3,3,3,3) = [3,3,3,3]

Also sind [3,3,3,3] Indexpositionen im tatsächlichen Tensor - [0,1,2,3]

Spalte 3: 4, Maximum (4,5), Maximum (4,5,2), Maximum (4,5,2,4) = [4,5,5,5]

Also sind [4,5,5,5] Indexpositionen im tatsächlichen Tensor - [0,1,1,1]

Spalte 4: 5, Maximum (5,3), Maximum (5,3,1), Maximum (5,3,1,2) = [5,5,5,5]

Also sind [5,5,5,5] Indexpositionen im tatsächlichen Tensor - [0,0,0,0]

Abschluss

In diesem Pytorch -Tutorial haben wir gesehen.Cummax () Funktion. Es gibt das kumulative Maximum der Elemente in einem zweidimensionalen Tensor zurück und indiziert auch Positionen mit maximalen Werten über Zeilen oder Spalten hinweg hinweg. Wir haben diese Funktion auch auf der CPU mit der Funktion cpu () implementiert.