Theano - Espressione per la moltiplicazione di matrici
Calcoleremo un prodotto scalare di due matrici. La prima matrice è di dimensione 2 x 3 e la seconda è di dimensione 3 x 2. Le matrici che abbiamo usato come input e il loro prodotto sono espresse qui -
$$ \ begin {bmatrix} 0 & -1 & 2 \\ 4 & 11 & 2 \ end {bmatrix} \: \ begin {bmatrix} 3 & -1 \\ 1 & 2 \\ 35 & 20 \ end {bmatrix} = \ begin {bmatrix} 11 & 0 \\ 35 & 20 \ end {bmatrix} $$Dichiarazione di variabili
Per scrivere un'espressione Theano per quanto sopra, prima dichiariamo due variabili per rappresentare le nostre matrici come segue:
a = tensor.dmatrix()
b = tensor.dmatrix()
La dmatrix è il tipo di matrici per doppie. Nota che non specifichiamo la dimensione della matrice da nessuna parte. Pertanto, queste variabili possono rappresentare matrici di qualsiasi dimensione.
Definizione dell'espressione
Per calcolare il prodotto punto, abbiamo utilizzato la funzione incorporata chiamata dot come segue -
c = tensor.dot(a,b)
L'output della moltiplicazione è assegnato a una variabile di matrice chiamata c.
Definizione della funzione Theano
Successivamente, definiamo una funzione come nell'esempio precedente per valutare l'espressione.
f = theano.function([a,b], c)
Notare che l'input alla funzione sono due variabili aeb che sono di tipo matrice. L'uscita della funzione è assegnata alla variabilec che sarebbe automaticamente di tipo matrice.
Richiamo della funzione Theano
Ora invochiamo la funzione utilizzando la seguente istruzione:
d = f([[0, -1, 2], [4, 11, 2]], [[3, -1],[1,2], [6,1]])
Le due variabili nell'istruzione precedente sono array NumPy. Puoi definire esplicitamente gli array NumPy come mostrato qui -
f(numpy.array([[0, -1, 2], [4, 11, 2]]),
numpy.array([[3, -1],[1,2], [6,1]]))
Dopo d è calcolato stampiamo il suo valore -
print (d)
Vedrai il seguente output sull'output:
[[11. 0.]
[25. 20.]]
Elenco completo del programma
The complete program listing is given here:
from theano import *
a = tensor.dmatrix()
b = tensor.dmatrix()
c = tensor.dot(a,b)
f = theano.function([a,b], c)
d = f([[0, -1, 2],[4, 11, 2]], [[3, -1],[1,2],[6,1]])
print (d)
Lo screenshot dell'esecuzione del programma è mostrato qui -