Berechnen Sie den Logarithmus der Elemente eines Tensors in Pytorch

Berechnen Sie den Logarithmus der Elemente eines Tensors in Pytorch
„In diesem Pytorch -Tutorial werden wir sehen, wie man logarithmische Funktionen auf einem bestimmten Tensor ausführt.

Pytorch ist ein Open-Source-Framework mit einer Python-Programmiersprache.

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.

Protokoll()

log () in Pytorch wird verwendet, um den natürlichen Logarithmus aller im Tensorobjekt vorhandenen Elemente zurückzugeben. Es dauert nur einen Parameter.

Syntax:

Fackel.log (Tensor_Object)

Parameter:

Das Tensor_Object ist der Eingangszensor

Beispiel 1

In diesem Beispiel erstellen wir einen Tensor mit 3 Dimensionen mit 3 Zeilen und 5 Spalten und anwenden log () darauf.

#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()
#Logarithmische Werte
print ("logarithmische Werte:")
Druck (Taschenlampe.Logdaten))

Ausgang:

Tensor ([-1.0134, -0.0345, 0.0841, 0.7704, 0.3895],
[0.5293, -0.9141, 0.4486, -1.1050, -0.1396],
[-2.7476, -1.6378, -0.3021, 0.0936, 1.9816]]))
logarithmische Werte:
Tensor ([[Nan, Nan, -2).4762, -0.2608, -0.9429],
[-0.6361, nan, -0.8017, Nan, Nan],
[Nan, Nan, Nan, -2.3682, 0.6839]]))

Wir können sehen, dass die natürlichen Protokollwerte für alle Elemente in einem Tensor zurückgegeben wurden.

Beispiel 2

Erstellen Sie den Tensor mit 5 * 5 Matrix und geben Sie natürliche Protokollwerte 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()
#Logarithmische Werte
print ("logarithmische Werte:")
Druck (Taschenlampe.Logdaten))

Ausgang:

Tensor ([[-0).2143, 0.4640, -0.7694, 0.2063, 0.1471],
[-0.9600, 0.3431, 0.0933, -0.7847, -0.6198],
[1.9533, 0.7456, -0.8035, -0.2091, -2.1858],
[-0.3841, 0.4142, -1.6795, -1.3310, 1.5622],
[0.3093, 0.6724, 0.5488, -1.3811, 1.6062]]))
logarithmische Werte:
Tensor ([[Nan, -0).7679, Nan, -1.5782, -1.9169],
[Nan, -1.0698, -2.3719, Nan, Nan],
[0.6695, -0.2936, Nan, Nan, Nan],
[Nan, -0.8815, Nan, Nan, 0.4461],
[-1.1735, -0.3969, -0.6001, nan, 0.4739]]))

Wir können sehen, dass die natürlichen Protokollwerte für alle Elemente in einem Tensor zurückgegeben wurden.

log10 ()

Log10 () in Pytorch wird verwendet, um den Logarithmus an die Basis 10 aller im Tensorobjekt vorhandenen Elemente zurückzugeben. Es dauert nur einen Parameter.

Syntax:

Fackel.log10 (Tensor_Object)

Parameter:

Das Tensor_Object ist der Eingangszensor

Beispiel 1

In diesem Beispiel erstellen wir einen Tensor mit 3 Dimensionen mit 3 Zeilen und 5 Spalten und anwenden log10 () darauf.

#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()
#Logarithmische Werte an der Basis 10
print ("logarithmische Werte zur Basis 10:")
Druck (Taschenlampe.log10 (Daten))

Ausgang:

Tensor ([[0).1137, 1.8604, 0.1547, 0.1092, 0.0385],
[-1.2716, 1.8937, -0.4259, 0.4512, 0.5377],
[-1.3074, 2.2634, 1.0972, -0.3502, 0.4971]]))
Logarithmische Werte zur Basis 10:
Tensor ([[-0).9441, 0.2696, -0.8105, -0.9617, -1.4140],
[Nan, 0.2773, Nan, -0.3456, -0.2695],
[Nan, 0.3548, 0.0403, nan, -0.3035]])

Wir können sehen, dass die Protokollwerte an der Basis 10 für alle Elemente in einem Tensor zurückgegeben wurden.

Beispiel 2

Erstellen Sie den Tensor mit 5 * 5 Matrix und geben Sie Protokollwerte an die Basis 10 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()
#Logarithmische Werte an der Basis 10
print ("logarithmische Werte zur Basis 10:")
Druck (Taschenlampe.log10 (Daten))

Ausgang:

Tensor ([[-0).2903, -0.1354, -0.7794, -0.5695, -0.7214],
[0.5197, 0.5463, 1.4539, 0.0285, -0.7019],
[-0.0714, -1.2804, 0.0606, 1.1813, 0.9769],
[0.2130, 1.1354, 0.2970, -0.2755, -0.0466],
[2.8192, -0.9078, 0.5023, 1.1128, 0.3141]]))
Logarithmische Werte zur Basis 10:
Tensor ([[Nan, Nan, Nan, Nan, Nan],
[-0.2842, -0.2626, 0.1625, -1.5455, Nan],
[Nan, Nan, -1.2177, 0.0724, -0.0101],
[-0.6717, 0.0551, -0.5273, Nan, Nan],
[0.4501, nan, -0.2990, 0.0464, -0.5029]]))

Wir können sehen, dass die Protokollwerte an der Basis 10 für alle Elemente in einem Tensor zurückgegeben wurden.

log2 ()

log2 () in Pytorch wird verwendet, um den Logarithmus an die Basis 2 aller im Tensorobjekt vorhandenen Elemente zurückzugeben. Es dauert nur einen Parameter.

Syntax:

Fackel.log2 (Tensor_Object)

Parameter:

Das Tensor_Object ist der Eingangszensor

Beispiel 1

In diesem Beispiel erstellen wir einen Tensor mit 3 Dimensionen mit 3 Zeilen und 5 Spalten und anwenden log2 () darauf.

#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()
#logarithmische Werte an der Basis 2
print ("logarithmische Werte zur Basis 2:")
Druck (Taschenlampe.log2 (Daten))

Ausgang:

Tensor ([[-0).0242, 0.6124, -1.2847, -0.2737, 1.2455],
[-0.5786, -0.1747, 0.6064, -0.5265, 0.3504],
[-0.3898, 0.5609, -0.0565, 0.5324, 0.0105]])
Logarithmische Werte zur Basis 2:
Tensor ([[Nan, -0).7075, Nan, Nan, 0.3168],
[Nan, Nan, -0.7216, nan, -1.5128],
[Nan, -0.8342, Nan, -0.9095, -6.5752]]))

Wir können sehen, dass die Protokollwerte an der Basis 2 für alle Elemente in einem Tensor zurückgegeben wurden.

Beispiel 2

Erstellen Sie den Tensor mit 5 * 5 Matrix und geben Sie Protokollwerte an die Basis 2 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()
#logarithmische Werte an der Basis 2
print ("logarithmische Werte zur Basis 2:")
Druck (Taschenlampe.log2 (Daten))

Ausgang:

Tensor ([[3).0918, 0.2328, 0.6354, -0.6991, 2.1373],
[-1.2590, -1.5860, -0.1142, -0.1805, -1.9556],
[1.2391, 1.0197, 0.1663, 0.9892, -1.4073],
[0.0174, 0.8185, 0.3453, -0.7556, 1.0040],
[-1.0775, 0.4131, -0.7916, -0.9372, 0.1482]])
Logarithmische Werte zur Basis 2:
Tensor ([1).6285e+00, -2.1029e+00, -6.5418e-01, Nan, 1.0958e+00],
[Nan, Nan, Nan, Nan, Nan],
[ 3.0926e-01, 2.8108e -02, -2.5882e+00, -1.5649e-02, Nan],
[-5.8447e+00, -2.8896e -01, -1.5339e+00, Nan, 5.7767E-03],
[Nan, -1.2754e+00, Nan, Nan, -2.7546e+00]]))

Wir können sehen, dass die Protokollwerte an der Basis 2 für alle Elemente in einem Tensor zurückgegeben wurden.

Arbeiten Sie mit CPU

Wenn Sie eine logarithmische 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

Erstellen Sie den Tensor mit 5 * 5 Matrix auf der CPU und geben Sie natürliche Protokollwerte, Protokollwerte mit Base2 und Protokollwerte mit Basis 10 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()
#natürliche Protokollwerte
print ("natürliche Protokollwerte:")
Druck (Taschenlampe.Logdaten))
drucken()
#logarithmische Werte an der Basis 2
print ("logarithmische Werte zur Basis 2:")
Druck (Taschenlampe.log2 (Daten))
drucken()
#Logarithmische Werte an der Basis 10
print ("logarithmische Werte zur Basis 10:")
Druck (Taschenlampe.log10 (Daten))

Ausgang:

Tensor ([[-0).2807, 0.0260, 0.3326, -0.1958, 2.7080],
[1.3534, -0.2371, 0.0085, 0.1877, 1.4870],
[1.2967, 0.4262, -0.6323, 0.4446, 3.0513],
[0.4478, -0.0436, -0.4577, 1.3098, 0.7293],
[-0.4575, -1.4020, -0.9323, -0.4406, 0.5844]]))
natürliche Protokollwerte:
Tensor ([[Nan, -3).6494, -1.1009, nan, 0.9962],
[0.3026, nan, -4.7711, -1.6731, 0.3968],
[0.2598, -0.8529, Nan, -0.8107, 1.1156],
[-0.8034, Nan, Nan, 0.2699, -0.3157],
[Nan, Nan, Nan, Nan, -0.5371]]))
Logarithmische Werte zur Basis 2:
Tensor ([[Nan, -5).2650, -1.5882, Nan, 1.4372],
[0.4366, Nan, -6.8833, -2.4138, 0.5724],
[0.3748, -1.2304, Nan, -1.1696, 1.6094],
[-1.1591, Nan, Nan, 0.3893, -0.4554],
[Nan, Nan, Nan, Nan, -0.7749]]))
Logarithmische Werte zur Basis 10:
Tensor ([[Nan, -1).5849, -0.4781, Nan, 0.4327],
[0.1314, Nan, -2.0721, -0.7266, 0.1723],
[0.1128, -0.3704, nan, -0.3521, 0.4845],
[-0.3489, Nan, Nan, 0.1172, -0.1371],
[Nan, Nan, Nan, Nan, -0.2333]])

Wir sehen.

Abschluss

In dieser Pytorch -Lektion haben wir drei Arten von logarithmischen Funktionen gesehen, mit denen logarithmische Werte für alle Elemente in einem Tensor zurückgegeben wurden. Fackel.Log () ist eine einfache logarithmische Funktion, mit der der natürliche Logarithmus aller im Tensorobjekt vorhanden.Log10 () wird verwendet, um den Logarithmus an die Basis 10 aller im Tensorobjekt vorhanden. Wir haben auch darüber diskutiert, wie wir diese Funktionen anwenden können, während wir mit CPU zusammengearbeitet haben.