如何在烤宽面条中加重对称性

时间:2016-10-20 00:45:43

标签: neural-network theano lasagne

我在神经网络上使用Lasagne。

我希望在第一层,相同的权重应用于输入层的许多神经元(显然我希望权重更新考虑所有这些神经元的贡献)

这是因为我的输入有很多对称性:我有24 * n个不同的输入,但我只想要4 * n个不同的权重(n是我仍然需要决定的参数)

我该怎么做?

1 个答案:

答案 0 :(得分:0)

使用theano.shared变量,例如:

l_in = lasagne.layers.InputLayer(10)
weights = theano.shared(np.zeros(10, 100))
layer_1 = lasagne.layers.DenseLayer(l_in, num_units=100, W=weights)
layer_2 = lasagne.layers.DenseLayer(l_in, num_units=100, W=weights)
layer_3 = lasagne.layers.DenseLayer(l_in, num_units=100, b=layer_2.b)

这种方式layer_1的权重与layer_2相同,而layer_2layer_3具有相同的偏差。

http://lasagne.readthedocs.io/en/latest/user/layers.html#parameter-sharing