Theano - Grafico computazionale

Dai due esempi precedenti, potresti aver notato che in Theano creiamo un'espressione che alla fine viene valutata usando Theano function. Theano utilizza tecniche di ottimizzazione avanzate per ottimizzare l'esecuzione di un'espressione. Per visualizzare il grafico di calcolo, Theano fornisce un fileprinting pacchetto nella sua libreria.

Grafico simbolico per l'addizione scalare

Per vedere il grafico di calcolo per il nostro programma di addizione scalare, usa la libreria di stampa come segue:

theano.printing.pydotprint(f, outfile="scalar_addition.png", var_with_name_simple=True)

Quando si esegue questa istruzione, un file chiamato scalar_addition.pngverrà creato sulla tua macchina. Il grafico di calcolo salvato viene visualizzato qui per una rapida consultazione -

Di seguito è riportato l'elenco completo del programma per generare l'immagine sopra:

from theano import *
a = tensor.dscalar()
b = tensor.dscalar()
c = a + b
f = theano.function([a,b], c)
theano.printing.pydotprint(f, outfile="scalar_addition.png", var_with_name_simple=True)

Grafico simbolico per moltiplicatore di matrici

Ora, prova a creare il grafico di calcolo per il nostro moltiplicatore di matrice. Di seguito è riportato l'elenco completo per la generazione di questo grafico:

from theano import *
a = tensor.dmatrix()
b = tensor.dmatrix()
c = tensor.dot(a,b)
f = theano.function([a,b], c)
theano.printing.pydotprint(f, outfile="matrix_dot_product.png", var_with_name_simple=True)

Il grafico generato è mostrato qui -

Grafici complessi

In espressioni più grandi, i grafici computazionali potrebbero essere molto complessi. Uno di questi grafici tratto dalla documentazione di Theano è mostrato qui:

Per comprendere il funzionamento di Theano, è importante prima conoscere il significato di questi grafici computazionali. Con questa comprensione, conosceremo l'importanza di Theano.

Perché Theano?

Osservando la complessità dei grafici computazionali, sarai ora in grado di comprendere lo scopo dietro lo sviluppo di Theano. Un tipico compilatore fornirebbe ottimizzazioni locali nel programma poiché non considera mai l'intero calcolo come una singola unità.

Theano implementa tecniche di ottimizzazione molto avanzate per ottimizzare l'intero grafo computazionale. Combina gli aspetti di Algebra con gli aspetti di un compilatore ottimizzato. Una parte del grafico può essere compilata in codice in linguaggio C. Per calcoli ripetuti, la velocità di valutazione è fondamentale e Theano soddisfa questo scopo generando un codice molto efficiente.