Méthode Einsum Numpy

Méthode Einsum Numpy

«Si nous traitons des algorithmes d'apprentissage en profondeur ou d'apprentissage automatique, nous sommes souvent tenus d'appeler la méthode Einsum en raison des multiples fonctionnalités qu'il propose pour effectuer des opérations sur des réseaux multidimensionnels. La fonction Einsum Numpy est utilisée pour l'évaluation de la convention de sommation nommée d'après Einstein sur différents opérandes. Nous pouvons utiliser cette fonction pour représenter différentes opérations algébriques et multidimensionnelles sous la forme la plus simple. Cette fonction offre en outre plus de flexibilité pour les autres opérations liées à la table qui ne sont même pas classées comme opérations de sommation classique d'Einstein, et cette fonction le fait sur des étiquettes particulières des indices en désactivant et en forçant les sommations de la convention."

Procédure

Dans ce manuel, nous découvrirons la fonction intégrée complexe de la bibliothèque Python Numpy, je.e. "Einsum numpy". Nous saurons comment la fonction Einsum est pertinente pour la convention de sommation d'Einstein et comment nous pouvons utiliser cette fonction dans nos programmes pour effectuer diverses opérations de tableau et de matrice.

Syntaxe

Pour obtenir des éclaircissements sur la syntaxe de cette fonction Einsum, nous verrons le paramètre suivant avec la méthode Einsum mentionnée dans le script Python.

$ numpy. einsum (indices, * opérands, out = aucun, dtype = aucun, ordre = 'k', casting = 'safe', optimiser = false)


Les valeurs écrites entre les crochets «()» sont les paramètres de cette fonction que nous expliquerons dans les lignes suivantes. L '«indice» dans la fonction représente les indices que nous utilisons pour la convention de sommation d'Einstein comme liste des étiquettes des indices qui sont séparées à l'aide d'une virgule «», et il spécifie les indices de sommation en tant que liste des étiquettes d'indice séparées par la virgule.

Avec ce type d'indice, la fonction assume et implémente le type implicite de la fonction offerte par les sommations de la convention d'Einstein jusqu'à ce que nous ne spécifions pas la fonction explicite par l'indicateur, i.e."->". Ensuite, les «opérandes»; Ce sont les tableaux que nous utilisons pour le fonctionnement de la méthode einsum. Vient ensuite le «dtype»; Ce paramètre garantit que les calculs doivent être spécifiques au type de données. «Optimiser» est l'autre paramètre, et il est facultatif, mais cela indique si l'optimisation (intermédiaire) pour la fonction devrait se produire ou non. Si sa valeur est définie sur False, il n'y aurait pas d'optimisation; Sinon, dans le cas de la vraie, l'optimisation se produirait. Le dernier est «l'ordre», qui aussi est un paramètre facultatif, et pour la sortie, la disposition de la mémoire est contrôlée par ce paramètre.

Exemple # 01

L'exemple montrera pratiquement comment nous pouvons appliquer la méthode Einsum à diverses fonctions. Le logiciel que nous utiliserons pour compiler le programme de cet exemple est «Spyder» Une application ouverte bien connue fournie à l'utilisateur par la plate-forme Python. L'exemple va appeler la méthode Einsum pour calculer la sommation des congrès d'Einsteins pour les différents tableaux multidimensionnels. Pour écrire le programme dans la langue Python après avoir créé le nouveau projet, nous utiliserons la bibliothèque fournie par «Spyder» pour utiliser le tableau multidimensionnel et leurs fonctions pertinentes. Les bibliothèques sont les fichiers qui contiennent des informations concernant différentes fonctions et permettent au programme d'exécuter ces fonctions.

Une telle bibliothèque qui permet de travailler avec l'opération de tableau est «Numpy», donc à partir de cette bibliothèque installée, nous intégrerons le module Numpy en tant que «NP». Nous définirons les deux tableaux; Les deux seront unidimensionnels, et leurs éléments auront la valeur donnée comme «[7, 8, 9]» et «[3, 2, 4]», respectivement. Les deux tableaux seront affectés à une variable ayant le nom «arr1» et «arr2», respectivement. Ensuite, nous appliquerons la méthode Einsum sur ces tableaux en appelant la méthode Einsum, E.g. «NP. einsum («n, n», arr1, ar2) ».

Rappelez-vous que «n, n» est la liste séparée des étiquettes des indices dont nous avons discuté plus tôt dans la syntaxe; Cela définit que d'abord, la transposition de la matrice ARR1 sera prise, puis elle sera multipliée par ARR2, puis leur somme sera calculée. Pour mettre les résultats sur l'écran appelé la fonction print ().

Importer Numpy comme NP
#Declare les deux tableaux avec une dimension à 1
Arr1 = np.Array ([7, 8, 9])
arr2 = np.Array ([3, 2, 4])
# Array original avec leurs dimensions
Imprimer (Arr1)
Imprimer (Arr2)
résultat = np.einsum ("i, i", ar1, arr2)
#compute convention de résumé d'Einstein
Imprimer (résultat)


L'image du code et de la sortie est illustrée dans la figure ci-dessus. Lorsque le code a été exécuté, il a renvoyé la multiplication des deux tableaux en utilisant la méthode Einsum qui fonctionne sur le concept de la convention de sommation Einsteins.

Exemple # 02

Dans le deuxième exemple de cet article, nous utiliserons les différentes listes des étiquettes des indices dans la fonction, puis utiliserons la méthode Einsum. Pour implémenter cet exemple, après l'importation du module Numpy, déclarez les deux tableaux ayant tous deux la même dimension, I.e. 3 × 3, ce qui signifie que chaque tableau aura 3 colonnes et 3 lignes, et nous définirons ces tableaux via l'appel de la méthode de «NP. organiser () .Reshape () ". Dans cette fonction, la combinaison de deux fonctions est utilisée en premier est «arrange ()», qui prend le paramètre d'entrée du nombre d'éléments que nous voulons générer dans les tableaux, et le second est «Reshape», qui prend l'ordre de l'ordre de l'ordre de l'ordre de tableau comme son paramètre d'entrée.

En utilisant les deux tableaux que nous avons déclarés, nous les transmettons au paramètre de la fonction «NP. einsum («mk, kn», arr1, arr2) »Cette fonction calculera la multiplication des deux tableaux car la liste d'étiquette d'indice dans le paramètre de cette fonction est choisie pour une telle multiplication. Donc, d'abord, la fonction vérifiera si la multiplication d'un tel tableau est possible en fonction de leurs dimensions, et si les dimensions le permettent, alors elle calculera leur multiplication.



Lorsque nous exécutons ce programme dans le compilateur Python, il renverra un tableau tridimensionnel qui est le résultat de la multiplication des deux tableaux que nous avions définis par la fonction «Arrange ().Reshape () ".

Conclusion

Ce manuel guide comment nous pouvons utiliser les méthodes Einsum de la bibliothèque Numpy. Nous avons montré comment les résultats du changement du paramètre de la fonction, i.e. Liste d'étiquette d'indice, peut affecter la sortie de la fonction et le processus de calcul de la fonction à l'aide des deux exemples.