2016-10-20 1 views
0

Je travaille avec Lasagne sur un réseau de neurones.Comment imposer des symétries de poids dans Lasagnes

Je veux que sur la première couche, le même poids est appliqué à de nombreux neurones de la couche d'entrée (et, évidemment, je veux que les poids mise à jour compte tenu de la contribuer de tous ces neurones)

parce que mon entrée a beaucoup symétries: j'ai 24 * n entrées différentes mais je veux seulement 4 * n poids différents (n est un paramètre que je dois encore décider)

Comment puis-je le faire?

Répondre

0

Utilisez les theano.shared variables .: par exemple

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) 

cette façon layer_1 auront les mêmes poids que layer_2 et layer_2 auront les mêmes préjugés que layer_3.

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