Theano - Ausdruck für die Matrixmultiplikation
Wir werden ein Punktprodukt aus zwei Matrizen berechnen. Die erste Matrix hat die Dimension 2 x 3 und die zweite die Dimension 3 x 2. Die Matrizen, die wir als Eingabe verwendet haben, und ihr Produkt werden hier ausgedrückt -
$$ \ 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} $$Variablen deklarieren
Um einen Theano-Ausdruck für das Obige zu schreiben, deklarieren wir zuerst zwei Variablen, um unsere Matrizen wie folgt darzustellen:
a = tensor.dmatrix()
b = tensor.dmatrix()
Die Matrix ist die Art der Matrizen für Doppel. Beachten Sie, dass wir die Matrixgröße nirgendwo angeben. Somit können diese Variablen Matrizen jeder Dimension darstellen.
Ausdruck definieren
Zur Berechnung des Punktprodukts haben wir die integrierte Funktion aufgerufen dot wie folgt -
c = tensor.dot(a,b)
Die Ausgabe der Multiplikation wird einer Matrixvariablen namens aufgerufen c.
Theano-Funktion definieren
Als nächstes definieren wir eine Funktion wie im vorherigen Beispiel, um den Ausdruck auszuwerten.
f = theano.function([a,b], c)
Beachten Sie, dass die Eingabe für die Funktion zwei Variablen a und b sind, die vom Matrixtyp sind. Der Funktionsausgang ist der Variablen zugeordnetc das wäre automatisch vom Matrixtyp.
Theano-Funktion aufrufen
Wir rufen die Funktion nun mit der folgenden Anweisung auf:
d = f([[0, -1, 2], [4, 11, 2]], [[3, -1],[1,2], [6,1]])
Die beiden Variablen in der obigen Anweisung sind NumPy-Arrays. Sie können NumPy-Arrays explizit wie hier gezeigt definieren -
f(numpy.array([[0, -1, 2], [4, 11, 2]]),
numpy.array([[3, -1],[1,2], [6,1]]))
Nach d berechnet werden wir drucken seinen Wert -
print (d)
Sie sehen die folgende Ausgabe auf der Ausgabe -
[[11. 0.]
[25. 20.]]
Vollständige Programmliste
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)
Der Screenshot der Programmausführung wird hier gezeigt -