Theano - 共享变量


很多时候,您需要创建在不同函数之间以及在同一函数的多次调用之间共享的变量。举个例子,在训练神经网络时,您创建权重向量,为所考虑的每个特征分配权重。在网络训练期间的每次迭代中都会修改该向量。因此,它必须可以通过对同一函数的多次调用进行全局访问。因此我们为此目的创建一个共享变量。通常,Theano 会将此类共享变量移至 GPU(只要有可用的 GPU)即可。这加快了计算速度。

句法

您使用以下语法创建一个共享变量 -

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

例子

这里创建了由四个浮点数组成的 NumPy 数组。要设置/获取W值,您可以使用以下代码片段 -

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())

输出

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]