Muchas veces, necesitará crear variables que se compartan entre diferentes funciones y también entre múltiples llamadas a la misma función. Para citar un ejemplo, mientras entrena una red neuronal, crea un vector de pesos para asignar un peso a cada característica en consideración. Este vector se modifica en cada iteración durante el entrenamiento de la red. Por lo tanto, debe ser accesible globalmente a través de las múltiples llamadas a la misma función. Entonces creamos una variable compartida para este propósito. Por lo general, Theano mueve esas variables compartidas a la GPU, siempre que haya una disponible. Esto acelera el cálculo.
Sintaxis
Creas una variable compartida y usas la siguiente sintaxis:
import numpy
W = theano.shared(numpy.asarray([0.1, 0.25, 0.15, 0.3]), 'W')
Ejemplo
Aquí se crea la matriz NumPy que consta de cuatro números de punto flotante. Para configurar / obtener elW valor, usaría el siguiente fragmento de código:
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())
Salida
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]