Metoda Numpy Einsum

Metoda Numpy Einsum

„Jeśli mamy do czynienia z algorytmami głębokiego uczenia się lub uczenia maszynowego, często jesteśmy zobowiązani do wywołania metody Einsum ze względu. Funkcja Numpy Einsum jest wykorzystywana do oceny konwencji podsumowującej nazwaną na podstawie Einsteina na różnych operantach. Możemy użyć tej funkcji do reprezentowania różnych operacji algebraicznych i wielowymiarowych w najprostszej formie. Ta funkcja zapewnia dodatkowo większą elastyczność dla innych operacji związanych z tablicami, które nie są nawet klasyczne jako klasyczne operacje podsumowujące Einsteina, a funkcja ta wykonuje to w poszczególnych etykietach indeksu, wyłączając i wymuszając podsumowania konwencji."

Procedura

W tym podręczniku dowiemy się o złożonej wbudowanej funkcji z biblioteki Python Numpy, i.mi. „Numpy Einsum”. Dowiemy się, w jaki sposób funkcja Einsum jest istotna dla konwencji podsumowania Einsteina i w jaki sposób możemy wykorzystać tę funkcję w naszych programach do wykonywania różnych operacji tablicy i macierzy.

Składnia

Aby uzyskać wyjaśnienie składni tej funkcji einsum, zobaczymy następujący parametr wraz z metodą einsum wymienioną w skrypcie Python.

$ Numpy. einsum (dolne, *operands, out = none, dtype = brak, zamówienie = „k”, casting = „bezpieczny”, optymalizuj = false)


Wartości zapisane w nawiasach „()” to parametry tej funkcji, które wyjaśnimy w następnych wierszach. „Klod” w funkcji reprezentuje indeks indeksowy, którego używamy dla konwencji podsumowującej Einstein jako listę etykiet indeksu dolnej, które są oddzielone za pomocą przecinka „” i określa dolne skrypty podsumowujące jako oddzielone przełomowe lista etykiet indeksowych indeksowych.

W przypadku tego typu indeksu, funkcja zakłada i implementuje niejawny typ funkcji, którą oferują podsumowania konwencji Einsteina.mi.”->”. Następnie są „operandy”; Są to tablice, których używamy do działania metody einsum. Potem pojawia się „Dtype”; Ten parametr zapewnia, że ​​obliczenia powinny być specyficzne dla typu danych. „Optymalizacja” jest drugim parametrem i jest opcjonalny, ale mówi to, czy optymalizacja (pośrednia) dla funkcji powinna wystąpić. Jeśli jego wartość jest ustawiona na false, nie byłoby optymalizacji; w przeciwnym razie, w przypadku prawdziwie, nastąpiłaby optymalizacja. Ostatni jest „kolejność”, która także jest parametrem opcjonalnym, a dla wyjścia układ pamięci jest kontrolowany przez ten parametr.

Przykład nr 01

Przykład praktycznie pokaże, w jaki sposób możemy zastosować metodę einsum do różnych funkcji. Oprogramowanie, których użyjemy do skompilowania programu dla tego przykładu, to „Spyder” znana aplikacja typu open source dostarczona użytkownikowi przez platformę Python. Przykład nazywa metodą Einsum w celu obliczenia podsumowania konwencji Einsteinsa dla różnych macierzy wielowymiarowych. Aby napisać program w języku Python po utworzeniu nowego projektu, użyjemy biblioteki dostarczonej przez „Spyder” do użycia tablicy wielowymiarowej i ich odpowiednich funkcji. Biblioteki to pliki zawierające informacje dotyczące różnych funkcji i pozwalają programowi wykonywać te funkcje.

Jedną z takich biblioteki, która umożliwia pracę z działaniem tablicy, jest „Numpy”, więc z tej zainstalowanej biblioteki zintegrujemy moduł Numpy jako „NP”. Zdefiniujemy dwie tablice; Oba będą jednowymiarowymi, a ich elementy będą miały odpowiednio wartość odpowiednio jako „[7, 8, 9]” i „[3, 2, 4]”. Obie tablice zostaną przypisane do jakiejś zmiennej o nazwie odpowiednio „ARR1” i „ARR2”. Następnie zastosujemy metodę einsum w tych tablicach, wywołując metodę einsum, e.G. „NP. einsum („n, n”, arr1, arr2) ”.

Przypomnijmy, że „N, N” jest oddzieloną listą etykiet indeksu dolnego, które omówiliśmy wcześniej w składni; Określa to, że najpierw transpozycja macierzy ARR1 zostanie pobrana, a następnie zostanie pomnożona z ARR2, a następnie ich suma zostanie obliczona. Aby umieścić wyniki na ekranie o nazwie Funkcja print ().

importować Numpy jako NP
#Declare te dwa tablice z 1-wymiarowym
arr1 = np.tablica ([7, 8, 9])
ARR2 = NP.tablica ([3, 2, 4])
# Oryginalna tablica z ich wymiarami
Drukuj (ARR1)
Drukuj (ARR2)
wynik = NP.einsum („i, i”, arr1, arr2)
#Compute Einstein's Sumation Convention
Drukuj (wynik)


Obraz kodu i wyjścia jest pokazany na powyższym rysunku. Po wykonaniu kodu zwrócił mnożenie obu tablic przy użyciu metody einsum, która działa na koncepcji konwencji podsumowania Einsteins.

Przykład nr 02

W drugim przykładzie tego artykułu użyjemy różnych list etykiet indeksu dolnej w funkcji, a następnie użyjemy metody einsum. Aby zaimplementować ten przykład, po zaimportowaniu modułu Numpy, zadeklaruj dwie tablice o tym samym wymiarze, i.mi. 3 × 3, co oznacza, że ​​każda tablica będzie miała 3 kolumny i 3 wiersze, a my zdefiniujemy takie tablice metodą „NP. zorganizować () .Reshape () ”. W tej funkcji kombinacja dwóch funkcji jest używana jako pierwsza to „aranż ()”, który przyjmuje parametr wejściowy liczby elementów, które chcemy wygenerować w tablicach, a drugie to „przekształcenie”, który przyjmuje kolejność kolejności. tablica jako parametr wejściowy.

Korzystając z dwóch tablic, które zadeklarowaliśmy, przekazamy je do parametru funkcji „NP. einsum („MK, KN”, ARR1, ARR2) ”Ta funkcja obliczy mnożenie dwóch tablic, ponieważ lista etykiet indeksowych w parametrze tej funkcji jest wybierana do takiego mnożenia. Po pierwsze, funkcja sprawdzi, czy mnożenie takiej tablicy jest możliwe w oparciu o ich wymiary, a jeśli nalegają wymiary, wówczas obliczy ich mnożenie.



Kiedy wykonamy ten program w kompilatorze Pythona, zwróci on trójwymiarową tablicę, która jest wynikiem pomnożenia dwóch tablic, które zdefiniowaliśmy przez funkcję „UROGRANICZENIE ().Reshape () ”.

Wniosek

Ten ręczny przewodniczy, w jaki sposób możemy wykorzystać metody einsum z biblioteki Numpy. Pokazaliśmy, w jaki sposób wyniki zmiany parametru funkcji, i.mi. Lista etykiet indeksowych może wpływać na wyjście funkcji i proces obliczeniowy funkcji za pomocą dwóch przykładów.