“Se ci occupiamo di algoritmi di apprendimento profondo o di apprendimento automatico, spesso siamo tenuti a chiamare il metodo Einsum a causa delle molteplici funzionalità che offre per eseguire operazioni su array multidimensionali. La funzione Numpy Einsum viene utilizzata per la valutazione della convenzione di somma che prende il nome da Einstein su diversi operandi. Possiamo usare questa funzione per rappresentare diverse operazioni algebriche e multidimensionali nella forma più semplice. Questa funzione fornisce inoltre una maggiore flessibilità per le altre operazioni relative all'array che non sono nemmeno classificate come operazioni di somma classica di Einstein, e questa funzione lo fa su particolari etichette degli abbonamenti disabilitando e forzando le somma della Convenzione."
Procedura
In questo manuale, impareremo la complessa funzione integrata dalla Biblioteca Python Numpy, io.e. "Numpy Einsum". Saperemo come la funzione Einsum sia rilevante per la convenzione di somma di Einstein e come possiamo utilizzare questa funzione nei nostri programmi per eseguire varie operazioni di array e matrice.
Sintassi
Per ottenere chiarimenti sulla sintassi di questa funzione Einsum, vedremo il seguente parametro insieme al metodo Einsum menzionato nello script Python.
$ numpy. Einsum (abbonamenti, *operandi, out = nessuno, dtype = nessuno, order = 'k', casting = 'safe', ottimize = false)
I valori scritti tra le staffe "()" sono i parametri di questa funzione che spiegheremo nelle righe successive. Il "abbonamento" nella funzione rappresenta gli abbonamenti che utilizziamo per la convenzione di somma di Einstein come elenco delle etichette di abbonamenti separate usando una virgo.
Con questo tipo di pedice, la funzione assume e implementa il tipo implicito della funzione che le sommazioni della Convenzione di Einstein offrono fino a quando non specifichiamo la funzione esplicita da parte dell'indicatore, i.e."->". I prossimi sono gli "operandi"; Questi sono gli array che utilizziamo per il funzionamento del metodo Einsum. Poi arriva il "dtype"; Questo parametro garantisce che i calcoli debbano essere specifici del tipo di dati. "Ottimizza" è l'altro parametro ed è facoltativo, ma questo dice se l'ottimizzazione (intermedia) per la funzione dovrebbe verificarsi o no. Se il suo valore è impostato su False, allora non ci sarebbe ottimizzazione; Altrimenti, nel caso di True, si verificherebbe l'ottimizzazione. L'ultimo è il "ordine", che è anche un parametro opzionale e per l'uscita, il layout della memoria è controllato da questo parametro.
Esempio # 01
L'esempio dimostrerà praticamente come possiamo applicare il metodo Einsum a varie funzioni. Il software che utilizzeremo per compilare il programma per questo esempio è "Spyder", un'app aperta open source fornita all'utente dalla piattaforma Python. L'esempio chiamerà il metodo Einsum per calcolare la somma della convenzione di Einsteins per i vari array multidimensionali. Per scrivere il programma in lingua Python dopo aver creato il nuovo progetto, useremo la libreria fornita da "Spyder" per utilizzare l'array multidimensionale e le loro funzioni rilevanti. Le librerie sono i file che contengono informazioni relative a diverse funzioni e consentono al programma di eseguire tali funzioni.
Una di queste librerie che consente di lavorare con l'operazione di array è "Numpy", quindi da questa libreria installata, integremo il modulo numpy come "NP". Definiremo i due array; Entrambi saranno unidimensionali e i loro elementi avranno il valore dato come "[7, 8, 9]" e "[3, 2, 4]", rispettivamente. Entrambi gli array verranno assegnati a una variabile con il nome "arr1" e "arr2", rispettivamente. Quindi applicheremo il metodo Einsum su questi array chiamando il metodo Einsum, E.G. “NP. Einsum ("n, n", arr1, arr2) ".
Ricordiamo questo "N, N" è l'elenco separato di etichette dei pedoni di cui abbiamo discusso in precedenza nella sintassi; Ciò definisce che prima verrà presa la trasposizione della matrice ARR1, quindi verrà moltiplicata con l'ARR2, e quindi la loro somma verrà calcolata. Per mettere i risultati sullo schermo chiamato funzione di funzione ().
Importa Numpy come NP
#Declare i due array con 1 dimensione
arr1 = np.Array ([7, 8, 9])
arr2 = np.Array ([3, 2, 4])
# Array originale con le loro dimensioni
Stampa (ARR1)
Stampa (ARR2)
risultato = np.Einsum ("I, I", arr1, arr2)
#Compute Einstein's Summation Convention
Stampa (risultato)
L'immagine per il codice e l'output è mostrata nella figura sopra. Quando il codice è stato eseguito, ha restituito la moltiplicazione di entrambi gli array usando il metodo Einsum che funziona sul concetto di Einsteins Summation Convention.
Esempio # 02
Nel secondo esempio di questo articolo, utilizzeremo i diversi elenchi di etichette di abbonamenti nella funzione e quindi utilizzeremo il metodo Einsum. Per implementare questo esempio, dopo aver importato il modulo numpy, dichiarare i due array che hanno entrambi la stessa dimensione, i.e. 3 × 3, il che significa che ogni array avrà 3 colonne e 3 righe e definiremo tali array tramite il metodo chiama di "NP. organizzare () .Reshape () ". In questa funzione, la combinazione di due funzioni viene utilizzata per prime è "Orgy ()", che prende il parametro di input di quanti elementi vogliamo generare negli array, e il secondo è "rimodellare", che prende l'ordine del Array come parametro di input.
Usando i due array che abbiamo dichiarato, li passeremo al parametro della funzione “NP. Einsum ("MK, KN", ARR1, ARR2) "Questa funzione calcolerà la moltiplicazione dei due array poiché è scelto l'elenco delle etichette del pedice nel parametro di questa funzione. Quindi, prima, la funzione verificherà se la moltiplicazione di tale array è possibile in base alle loro dimensioni e se le dimensioni lo consentono, allora calcolerà la loro moltiplicazione.
Quando eseguiamo questo programma nel compilatore Python, restituirà un array tridimensionale che è il risultato della moltiplicazione dei due array che avevamo definito dalla funzione "Organizza ().Reshape () ".
Conclusione
Questo manuale guida su come possiamo usare i metodi Einsum dalla biblioteca Numpy. Abbiamo mostrato come i risultati della modifica nel parametro della funzione, i.e. Elenco delle etichette del pedice, può influire sull'output della funzione e il processo computazionale della funzione con l'aiuto dei due esempi.