Was sind Tensoren?
Tensoren sind grundlegende mathematische Objekte, die zur Beschreibung verschiedener physikalischer Eigenschaften verwendet werden, ähnlich wie Skalare und Vektoren. Tatsächlich sind Tensoren eine Erweiterung von Skalaren und Vektoren, wobei ein Skalar einen Tensor nullten Ranges und ein Vektor einen Tensor ersten Ranges darstellt.
Der Rang oder die Ordnung eines Tensors wird durch die Anzahl der Richtungen bestimmt, die zu seiner Beschreibung erforderlich sind, was auch die Dimensionalität des Tensor-Arrays bestimmt. Beispielsweise kann ein Tensor ersten Ranges (1D) vollständig durch einen 3×1-Spaltenvektor beschrieben werden, während ein Tensor zweiten Ranges (2D) neun Zahlen erfordert, die in einer 3×3-Matrix angeordnet sind. Im Allgemeinen kann ein Tensor n-ten Ranges durch 3n Koeffizienten dargestellt werden.
Die Notwendigkeit für Tensoren zweiten Ranges entsteht, wenn zur Beschreibung bestimmter physikalischer Eigenschaften mehrere Richtungen erforderlich sind. Ein anschauliches Beispiel ist die Beschreibung der elektrischen Leitfähigkeit in einem allgemeinen, anisotropen Kristall. Für isotrope Leiter, die dem Ohmschen Gesetz folgen, kann die Leitfähigkeit ausgedrückt werden als:
j = σE
Lassen Sie uns verschiedene Arten von Tensoren untersuchen:
0D-Tensoren/Skalare:
Ein Tensor mit Nulldimensionen wird als 0D-Tensor oder Skalar bezeichnet. Beispielsweise können (2) oder (3) als 0D-Tensoren betrachtet werden. In der Praxis können wir einen 0D-Tensor mit dem folgenden Code darstellen:
numpy als np importieren
a = np.array(2)
print(a.ndim)
Ausgabe:0
1D-Tensoren/Vektoren:
Ein Tensor mit einer Dimension wird als 1D-Tensor oder Vektor bezeichnet. Zum Beispiel, [1, 2, 3, 4] kann als 1D-Tensor betrachtet werden. In der Praxis können wir einen 1D-Tensor mit dem folgenden Code darstellen:
numpy als np importieren
a = np.array([1, 2, 3, 4])
print(a.ndim)
Ausgabe: 1
Die Dimension des Vektors hängt von der Anzahl der Elemente im Array ab.
2D-Tensoren/Matrizen:
Eine Sammlung mehrerer Vektoren bildet einen 2D-Tensor, auch Matrix genannt. Zum Beispiel, wenn wir es getan haben [1, 2, 3], [4, 5, 6]Und [7, 8, 9]Durch die Kombination dieser Vektoren entsteht ein 2D-Tensor. In der Praxis können wir einen 2D-Tensor mit dem folgenden Code darstellen:
numpy als np importieren
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(a.ndim)
Ausgabe: 2
3D-Tensoren:
Ein dreidimensionales Array kann als 3D-Tensor bezeichnet werden. Ein 3D-Tensor wird auch als Würfel bezeichnet. Hier ist ein Beispielcode, der einen 3D-Tensor darstellt:
numpy als np importieren
x = np.array([[[56, 183, 1],
[65, 164, 0]],
[[85, 176, 1],
[44, 164, 0]]])
Die Dimensionen des Tensors x sind (2, 3, 3), was einen Rang von 3 anzeigt. Um auf Elemente wie 56, 176 oder 44 zuzugreifen, würden Sie die entsprechenden Indizes verwenden: x[0][0][0]X[1][0][1]X[1][1][0]. Da für den Zugriff auf jede Zahl drei Indizes erforderlich sind, beträgt der Rang des Tensors 3.
4D-Tensoren:
Ein Vektor von 3D-Tensoren wird als 4D-Tensor bezeichnet. 4D-Tensoren werden häufig in der Bildanalyse verwendet. Hier ein praktisches Beispiel:
numpy als np importieren
tensor_4D = np.array([[[[0, 1, 1],
[2, 3, 3],
[1, 3, 2]],
[[1, 3, 2],
[2, 4, 2],
[0, 1, 1]]],
[[[0, 3, 1],
[2, 4, 1],
[1, 3, 2]],
[[1, 1, 1],
[2, 3, 4],
[1, 3, 2]]],
[[[2, 2, 4],
[2, 1, 3],
[0, 4, 2]],
[[2, 4, 1],
[2, 3, 0],
[1, 3, 3]]]])
print(“Tensordimensionen: n{}”.format(tensor_4D.ndim))
Ausgabe: Tensorabmessungen: 4
5D-Tensoren:
Eine Matrix aus 4D-Tensoren wird als 5D-Tensor bezeichnet. 5D-Tensoren finden ihre Anwendung in der Videodatenanalyse. Betrachten wir ein Beispiel eines 5-minütigen Movies mit 1080 HD-Auflösung. In diesem Fall kann die Datenstrukturdimension wie folgt berechnet werden: Die Pixelgröße beträgt 1080 x 1920 Pixel und die Videodauer in Sekunden beträgt 5 x 60 = 300 Sekunden. Wenn das Video mit 10 Bildern/Sekunde abgetastet wird, beträgt die Gesamtzahl der Bilder 300 x 10 = 3000. Unter der Annahme, dass das Video eine Farbtiefe von 3 hat, sollte der Tensor, der dieses Video darstellt, 4 Dimensionen mit einer Type von (3000) haben , 1080, 1920, 3).
Daher kann ein einzelner Videoclip als 4D-Tensor dargestellt werden. Wenn wir mehrere Movies speichern möchten, beispielsweise 10 Videoclips mit einer HD-Auflösung von 1080, benötigen wir einen 5D-Tensor. Die Type dieses 5D-Tensors wäre (3000, 1080, 1920, 3, 10).
Abschluss:
- Ein Tensor kann als Datencontainer betrachtet werden, ähnlich einem mehrdimensionalen Array.
- Mit dem np.array von Numpy können Tensoren unterschiedlicher Dimensionen erstellt werden, z. B. 1D, 2D, 3D usw.
- Ein Vektor ist ein 1D-Tensor und eine Matrix ist ein 2D-Tensor. Ein 0D-Tensor ist ein Skalar oder ein numerischer Wert.
- Der Zugriff auf einen bestimmten Wert in einem Tensor wird auch Tensor-Slicing genannt.
- Zwei Schlüsselattribute von Tensoren sind: A. Rang oder Achsen des Tensors B. Type des Tensors
Durch die Verwendung von ndim und form in einem Numpy-Array können Sie den Rang bzw. die Type des Tensors bestimmen.
#Tensoren #DataScience #Maschinelles Lernen #Tiefes Lernen #TensorAnalysis