„Wenn wir uns mit Algorithmen mit tiefem Lernen oder maschinellem Lernen befassen, müssen wir häufig die Ein-Einsum-Methode aufrufen. Die Numpy -Eininsum -Funktion wird zur Bewertung der nach Einstein in verschiedenen Operanden benannten Summierungskonvention verwendet. Wir können diese Funktion verwenden, um unterschiedliche algebraische und mehrdimensionale Operationen in einfachster Form darzustellen. Diese Funktion bietet ferner mehr Flexibilität für die anderen Array-bezogenen Operationen, die nicht einmal als Einsteins klassische Summierungsoperationen eingestuft werden, und diese Funktion führt dies über bestimmte Bezeichnungen der Indexs durch Deaktivieren und Erzwingen der Konventszusammenfassungen durch.”
Verfahren
In diesem Handbuch erfahren wir die komplexe integrierte Funktion aus der Python Library Numpy, ich.e. "Numpy Einsum". Wir werden erfahren, wie die Ein -Einsum -Funktion für die Summierungskonvention von Einstein relevant ist und wie wir diese Funktion in unseren Programmen nutzen können, um verschiedene Array- und Matrixoperationen durchzuführen.
Syntax
Um die Syntax dieser Einsum -Funktion zu verdeutlichen.
$ numpy. Einsum (Indexs, *Operanden, out = None, dType = Keine, order = 'k', casting = 'sicher', optimize = false)
Die in den Klammern geschriebenen Werte sind die Parameter dieser Funktion, die wir in den nächsten Zeilen erklären werden. Das „Einweis“ in der Funktion repräsentiert die Einweise, die wir für die Einstein -Summierungskonvention als Liste der Index -Bezeichnungen verwenden, die mit einem Comma -„Comma“ getrennt sind, und legt die Einfassungen für die Summierung als Komma -Trennungsliste der Indexbezeichnungen an.
Mit dieser Art von Index übernimmt und implementiert die Funktion den impliziten Typ der Funktion, die Einsteins Konventionssummlungen anbieten, bis wir die explizite Funktion durch den Indikator erst angeben, i, i.e."->". Als nächstes kommen die „Operanden“; Dies sind die Arrays, die wir für den Betrieb der Einsum -Methode verwenden. Dann kommt der "dype"; Dieser Parameter stellt sicher, dass die Berechnungen Datentyp spezifisch sein sollten. "Optimize" ist der andere Parameter, und es ist optional. Dies zeigt jedoch, ob die Optimierung (Zwischenprodukt) für die Funktion auftreten sollte oder nicht. Wenn sein Wert auf False festgelegt wird, würde es keine Optimierung geben. Andernfalls würde im Fall von True eine Optimierung auftreten. Der letzte ist die „Reihenfolge“, die ebenfalls ein optionaler Parameter ist, und für die Ausgabe wird das Speicherlayout durch diesen Parameter gesteuert.
Beispiel # 01
Das Beispiel zeigt praktisch, wie wir die Einsum -Methode auf verschiedene Funktionen anwenden können. Die Software, mit der wir das Programm für dieses Beispiel kompilieren werden. Das Beispiel wird die Ein-Einsum-Methode zur Berechnung der Konventionssumme von Einsteins für die verschiedenen mehrdimensionalen Arrays aufrufen. Um das Programm nach dem Erstellen des neuen Projekts in die Python-Sprache zu schreiben, werden wir die von „Spyder“ bereitgestellte Bibliothek verwenden, um das mehrdimensionale Array und deren relevante Funktionen zu verwenden. Die Bibliotheken sind die Dateien, die Informationen zu verschiedenen Funktionen enthalten und das Programm ermöglichen, diese Funktionen auszuführen.
Eine solche Bibliothek, die die Arbeit mit dem Array -Vorgang ermöglicht, ist „Numpy“. Aus dieser installierten Bibliothek werden wir das Numpy -Modul aus „NP“ integrieren. Wir werden die beiden Arrays definieren; Beide werden eindimensional sein, und ihre Elemente werden den Wert haben, der als "[7, 8, 9]" bzw. "[3, 2, 4]" angegeben ist. Beide Arrays werden einer Variablen mit dem Namen "arr1" bzw. "arr2" zugeordnet. Anschließend werden wir die Einsum -Methode auf diese Arrays anwenden, indem wir die Einsum -Methode aufrufen, e.G. “NP. Einsum ("N, n", arr1, arr2) ".
Erinnern Sie sich an dieses „N, N“ ist die getrennte Liste der Einweislabels, die wir früher in der Syntax besprochen haben. Dies definiert, dass zuerst die Transponierung der Matrix arr1 eingenommen wird und dann mit ARR2 multipliziert wird, und dann wird ihre Summe berechnet. Um die Ergebnisse auf den Bildschirm als Funktion Print () zu setzen ().
Numph als NP importieren
#klare die beiden Arrays mit 1-Dimension
arr1 = np.Array ([7, 8, 9])
arr2 = np.Array ([3, 2, 4])
# Originalarray mit ihren Abmessungen
drucken (arr1)
drucken (arr2)
Ergebnis = NP.Einsum ("i, ich", arr1, arr2)
#Compute Einsteins Summierungskonvention
Druck (Ergebnis)
Das Bild für Code und Ausgabe ist in der obigen Abbildung dargestellt. Als der Code ausgeführt wurde.
Beispiel # 02
Im zweiten Beispiel dieses Artikels verwenden wir die verschiedenen Listen von Index -Bezeichnungen in der Funktion und dann die Ein -Einsum -Methode. Um dieses Beispiel zu implementieren, deklarieren Sie nach dem Import des Numpy -Moduls die beiden Arrays beide mit der gleichen Dimension, i.e. 3 × 3, was bedeutet. arrangieren () .reshape () ”. In dieser Funktion wird zuerst die Kombination von zwei Funktionen verwendet, "arrangieren ()", wodurch der Eingabeparameter der Anzahl der Elemente in Arrays generiert wird, und die zweite ist "Umform", die die Reihenfolge der Reihenfolge der Reihenfolge nimmt Array als Eingabeparameter.
Mit den beiden von uns deklarierten Arrays werden wir sie an den Parameter der Funktion „NP“ weitergeben. Einsum („MK, KN“, arr1, arr2) Diese Funktion berechnet die Multiplikation der beiden Arrays, da die Liste der Index -Etikettenliste im Parameter dieser Funktion für eine solche Multiplikation ausgewählt wird. Erstens prüft die Funktion, ob die Multiplikation eines solchen Arrays basierend auf ihren Dimensionen möglich ist oder nicht, und ob die Abmessungen dies zulassen, berechnet sie ihre Multiplikation.
Wenn wir dieses Programm im Python-Compiler ausführen, wird ein dreidimensionales Array zurückgegeben, das das Ergebnis der Multiplikation der beiden Arrays ist, die wir durch die Funktion „arrangieren () definiert hatten, ().reshape () ”.
Abschluss
Diese manuellen Anleitung, wie wir die Einsum -Methoden aus der Numpy -Bibliothek verwenden können. Wir haben gezeigt, wie die Ergebnisse aus der Änderung des Parameters der Funktion, i.e. Die Liste der Beschriftungsbezeichnungen kann die Ausgabe der Funktion und den Rechenprozess der Funktion mithilfe der beiden Beispiele beeinflussen.