Theano - Expression pour la multiplication matricielle

Nous allons calculer un produit scalaire de deux matrices. La première matrice est de dimension 2 x 3 et la seconde est de dimension 3 x 2. Les matrices que nous avons utilisées comme entrée et leur produit sont exprimées ici -

$$ \ 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} $$

Déclaration de variables

Pour écrire une expression Theano pour ce qui précède, nous déclarons d'abord deux variables pour représenter nos matrices comme suit -

a = tensor.dmatrix()
b = tensor.dmatrix()

La matrice est le type de matrices pour les doubles. Notez que nous ne spécifions nulle part la taille de la matrice. Ainsi, ces variables peuvent représenter des matrices de n'importe quelle dimension.

Définition de l'expression

Pour calculer le produit scalaire, nous avons utilisé la fonction intégrée appelée dot comme suit -

c = tensor.dot(a,b)

La sortie de multiplication est affectée à une variable de matrice appelée c.

Définition de la fonction Theano

Ensuite, nous définissons une fonction comme dans l'exemple précédent pour évaluer l'expression.

f = theano.function([a,b], c)

Notez que les entrées de la fonction sont deux variables a et b qui sont de type matrice. La sortie de fonction est affectée à la variablec qui serait automatiquement de type matriciel.

Appel de la fonction Theano

Nous appelons maintenant la fonction en utilisant l'instruction suivante -

d = f([[0, -1, 2], [4, 11, 2]], [[3, -1],[1,2], [6,1]])

Les deux variables de l'instruction ci-dessus sont des tableaux NumPy. Vous pouvez définir explicitement les tableaux NumPy comme indiqué ici -

f(numpy.array([[0, -1, 2], [4, 11, 2]]),
numpy.array([[3, -1],[1,2], [6,1]]))

Après d est calculé on imprime sa valeur -

print (d)

Vous verrez la sortie suivante sur la sortie -

[[11. 0.]
[25. 20.]]

Liste complète du programme

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)

La capture d'écran de l'exécution du programme est affichée ici -