Theano - Variables partagées

Plusieurs fois, vous devrez créer des variables qui sont partagées entre différentes fonctions et également entre plusieurs appels à la même fonction. Pour citer un exemple, lors de la formation d'un réseau de neurones, vous créez un vecteur de poids pour attribuer un poids à chaque caractéristique considérée. Ce vecteur est modifié à chaque itération pendant la formation du réseau. Ainsi, il doit être globalement accessible à travers les multiples appels à la même fonction. Nous créons donc une variable partagée à cet effet. En règle générale, Theano déplace ces variables partagées vers le GPU, à condition qu'il en existe une. Cela accélère le calcul.

Syntaxe

Vous créez une variable partagée vous utilisez la syntaxe suivante -

import numpy
W = theano.shared(numpy.asarray([0.1, 0.25, 0.15, 0.3]), 'W')

Exemple

Ici, le tableau NumPy composé de quatre nombres à virgule flottante est créé. Pour définir / obtenir leW valeur que vous utiliseriez l'extrait de code suivant -

import numpy
W = theano.shared(numpy.asarray([0.1, 0.25, 0.15, 0.3]), 'W')
print ("Original: ", W.get_value())
print ("Setting new values (0.5, 0.2, 0.4, 0.2)")
W.set_value([0.5, 0.2, 0.4, 0.2])
print ("After modifications:", W.get_value())

Production

Original: [0.1 0.25 0.15 0.3 ]
Setting new values (0.5, 0.2, 0.4, 0.2)
After modifications: [0.5 0.2 0.4 0.2]