Muitas vezes, você precisaria criar variáveis que são compartilhadas entre diferentes funções e também entre várias chamadas para a mesma função. Para citar um exemplo, ao treinar uma rede neural, você cria um vetor de pesos para atribuir um peso a cada recurso em consideração. Este vetor é modificado a cada iteração durante o treinamento da rede. Portanto, ele deve estar acessível globalmente nas várias chamadas para a mesma função. Portanto, criamos uma variável compartilhada para esse propósito. Normalmente, Theano move essas variáveis compartilhadas para a GPU, desde que uma esteja disponível. Isso acelera o cálculo.
Sintaxe
Você cria uma variável compartilhada e usa a seguinte sintaxe -
import numpy
W = theano.shared(numpy.asarray([0.1, 0.25, 0.15, 0.3]), 'W')
Exemplo
Aqui, a matriz NumPy que consiste em quatro números de ponto flutuante é criada. Para definir / obter oW valor que você usaria no seguinte snippet 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())
Resultado
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]