Pytorch - Median

Pytorch - Median
Wir werden sehen, wie man den Median eines Tensors mit Median () in diesem Pytorch -Tutorial zurückgibt.

Pytorch ist ein Open-Source-Framework mit einer Python-Programmiersprache. Tensor ist ein mehrdimensionales Array, mit dem die Daten gespeichert werden. Um einen Tensor zu verwenden, müssen wir das Fackelmodul importieren. Um einen Tensor zu erstellen, ist die verwendete Methode Tensor ().

Syntax:

Fackel.Tensor (Daten)

Wobei die Daten ein mehrdimensionales Array sind.

Median()

Median () in Pytorch wird verwendet, um den Median der im Eingangstensorobjekt vorhandenen Elemente zurückzugeben.

Syntax:

Fackel.Median (Tensor, Dim)

Wo:

1. Der Tensor ist der Eingangs -Tensor.

2. Dim ist, die Dimension zu reduzieren. DIM = 0 Gibt den Spaltenvergleich an, der den Median entlang einer Spalte erhält und DIM = 1 den Zeilenvergleich angibt, der den Median entlang der Zeile erhält.

Zurückkehren:

Es gibt den Median zusammen mit der Indexposition zurück, in der er im Tensor vorhanden ist.

Beispiel 1:

In diesem Beispiel erstellen wir einen Tensor mit 2 Dimensionen mit 3 Zeilen und 5 Spalten und wenden die Funktion median () 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)
drucken()
#Median entlang der Spalten
print ("Median über Spalten:")
Druck (Taschenlampe.Median (Daten, Dim = 0))
drucken()
#Median entlang von Reihen
print ("Median über Reihen:")
Druck (Taschenlampe.Median (Daten, Dim = 1))

Ausgang:

Tensor ([[0).9562, 0.4517, 2.1758, -0.7846, -0.7103],
[-0.4080, 1.9359, 1.0324, 0.0120, -0.4021],
[0.6448, -0.6840, 1.5963, 0.4659, 0.5414]]))
Median über Säulen hinweg:
Fackel.return_types.Median(
Werte = Tensor ([0).6448, 0.4517, 1.5963, 0.0120, -0.4021]),
Indizes = Tensor ([2, 0, 2, 1, 1]))
Median über Reihen:
Fackel.return_types.Median(
Werte = Tensor ([0).4517, 0.0120, 0.5414]),
Indizes = Tensor ([1, 3, 4]))

Wir können sehen, dass der Median zusammen mit den Indexpositionen (Indizes) über die Spalten und Zeilen zurückgegeben wird (Indizes).

Beispiel 2:

Erstellen Sie einen Tensor mit 5 * 5 Matrix und geben Sie den Median über die Zeilen und Spalten zurück.

#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)
drucken()
#Median entlang der Spalten
print ("Median über Spalten:")
Druck (Taschenlampe.Median (Daten, Dim = 0))
drucken()
#Median entlang von Reihen
print ("Median über Reihen:")
Druck (Taschenlampe.Median (Daten, Dim = 1))

Ausgang:

Tensor ([-1.0895, 1.2629, 0.5036, -0.8317, 0.9415],
[-0.1067, 0.5748, 0.1773, 0.1904, 0.1359],
[-0.7851, -0.1791, -0.1605, 1.8524, 0.3375],
[-0.6451, 0.5093, -2.0334, -0.6462, -0.5074],
[-0.7813, -1.5316, 0.3567, 1.5330, 0.6483]]))
Median über Säulen hinweg:
Fackel.return_types.Median(
Werte = Tensor ([-0).7813, 0.5093, 0.1773, 0.1904, 0.3375]),
Indizes = Tensor ([4, 3, 1, 1, 2]))
Median über Reihen:
Fackel.return_types.Median(
Werte = Tensor ([0).5036, 0.1773, -0.1605, -0.6451, 0.3567]),
Indizes = Tensor ([2, 2, 2, 0, 2]))

Wir können sehen, dass der Median über die Reihen und Säulen zusammen mit den Indizes zurückgegeben wurde.

Ohne den schwachen Parameter

Wenn wir den DIM -Parameter nicht angeben, gibt er den gesamten Median zurück.

Beispiel 1:

Erstellen Sie einen 2D -Tensor mit 5*5 Matrix und geben Sie den Median zurück.

#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)
drucken()
#MEDIAN
print ("Median:")
Druck (Taschenlampe.Median (Daten))

Ausgang:

Tensor ([[0).7692, 1.9155, 1.0876, 0.6794, 0.5791],
[-0.2212, -1.4801, 0.5487, -0.5765, -0.4750],
[-0.0681, 0.5216, 1.1400, -0.1743, 0.0344],
[-0.4639, -1.2341, -1.0520, 0.1718, -0.1909],
[0.6911, -1.4869, 2.7762, -0.3645, -0.4775]]))
Median :
Tensor (-0.0681)

Beispiel 2:

Erstellen Sie einen 1D -Tensor mit 5 Werten und geben Sie den Median zurück.

#import Fackelmodul
Taschenlampe importieren
#Schalten Sie einen Tensor mit 5 numerischen Werten auf
Daten = Taschenlampe.Tensor ([10).6,20.7,30.6,40.4,50.0]))
#Anzeige
Druck (Daten)
drucken()
#MEDIAN
print ("Median:")
Druck (Taschenlampe.Median (Daten))

Ausgang:

Tensor ([10).6000, 20.7000, 30.6000, 40.4000, 50.0000])
Median :
Tensor (30.6000)

Arbeiten Sie mit CPU

Wenn Sie eine Median () -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 diesmal die Funktion cpu () verwenden.

Syntax:

Fackel.Tensor (Daten).Zentralprozessor()

Beispiel 1:

In diesem Beispiel erstellen wir einen Tensor mit 2 Dimensionen mit 3 Zeilen und 5 Spalten mit der CPU () -Funktion und wenden das Median () 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).Zentralprozessor()
#Anzeige
Druck (Daten)
drucken()
#Median entlang der Spalten
print ("Median über Spalten:")
Druck (Taschenlampe.Median (Daten, Dim = 0))
drucken()
#Median entlang von Reihen
print ("Median über Reihen:")
Druck (Taschenlampe.Median (Daten, Dim = 1))

Ausgang:

Tensor ([[0).9872, 0.1258, -0.0952, 0.3269, -1.6033],
[-0.2432, -1.0049, -0.9058, 0.9438, 0.3060],
[-2.8293, 1.4515, -0.9482, 0.9876, 0.2767]])
Median über Säulen hinweg:
Fackel.return_types.Median(
Werte = Tensor ([-0).2432, 0.1258, -0.9058, 0.9438, 0.2767]),
Indizes = Tensor ([1, 0, 1, 1, 2]))
Median über Reihen:
Fackel.return_types.Median(
Werte = Tensor ([0).1258, -0.2432, 0.2767]),
Indizes = Tensor ([1, 0, 4]))

Wir können sehen, dass der Median mit Indizes über die Säulen und Zeilen zurückgegeben wird.

Beispiel 2:

Erstellen Sie einen Tensor mit 5 * 5 Matrix mit der CPU () -Funktion und geben Sie den Median über die Zeilen und Spalten zurück.

#import Fackelmodul
Taschenlampe importieren
#einen Tensor mit 2 Abmessungen (5 * 5)
#Mit zufälligen Elementen mit Randn () -Funktion
Daten = Taschenlampe.Randn (5,5).Zentralprozessor()
#Anzeige
Druck (Daten)
drucken()
#Median entlang der Spalten
print ("Median über Spalten:")
Druck (Taschenlampe.Median (Daten, Dim = 0))
drucken()
#Median entlang von Reihen
print ("Median über Reihen:")
Druck (Taschenlampe.Median (Daten, Dim = 1))

Ausgang:

Tensor ([[-0).3739, -1.2500, -1.9125, -0.4597, 0.2058],
[-0.1885, -0.4993, -1.0801, -0.1367, -0.5683],
[-0.1242, 0.1221, -0.2267, -0.7851, 0.6797],
[2.2487, 0.0141, 0.1632, -0.4924, -0.9134],
[-1.6101, 0.5051, -0.2004, -0.4901, -0.3358]]))
Median über Säulen hinweg:
Fackel.return_types.Median(
Werte = Tensor ([-0).1885, 0.0141, -0.2267, -0.4901, -0.3358]),
Indizes = Tensor ([1, 3, 2, 4, 4]))
Median über Reihen:
Fackel.return_types.Median(
Werte = Tensor ([-0).4597, -0.4993, -0.1242, 0.0141, -0.3358]),
Indizes = Tensor ([3, 1, 0, 1, 4]))

Wir können sehen, dass der Median über die Reihen und Säulen zurückgegeben wurde.

Abschluss

In dieser Pytorch -Lektion haben wir etwas über die Median () -Funktion und die Anwendung auf einen Tensor gelernt, um einen Median über die Säulen und Zeilen zurückzugeben.

Wir haben auch einen Tensor mit der CPU () -Funktion erstellt und den Median zurückgegeben. Wenn der DIM nicht in zwei oder mehrdimensionalen Tensor angegeben ist, gibt es den gesamten Median zurück.