2015-08-02 21 views
7

Mi chiedo se esiste un modo per aggiungere il nodo di bias a ogni livello nel toolkit di reti neurali Lasagne? Ho cercato di trovare informazioni correlate nella documentazione.Aggiungi bias a strati di reti neurali Lasagne

Questa è la rete che ho creato ma non so come aggiungere un nodo di bias a ogni livello.

def build_mlp(input_var=None): 
    # This creates an MLP of two hidden layers of 800 units each, followed by 
    # a softmax output layer of 10 units. It applies 20% dropout to the input 
    # data and 50% dropout to the hidden layers. 

    # Input layer, specifying the expected input shape of the network 
    # (unspecified batchsize, 1 channel, 28 rows and 28 columns) and 
    # linking it to the given Theano variable `input_var`, if any: 
    l_in = lasagne.layers.InputLayer(shape=(None, 60), 
            input_var=input_var) 

    # Apply 20% dropout to the input data: 
    l_in_drop = lasagne.layers.DropoutLayer(l_in, p=0.2) 

    # Add a fully-connected layer of 800 units, using the linear rectifier, and 
    # initializing weights with Glorot's scheme (which is the default anyway): 
    l_hid1 = lasagne.layers.DenseLayer(
      l_in_drop, num_units=800, 
      nonlinearity=lasagne.nonlinearities.rectify, 
      W=lasagne.init.Uniform()) 

    # We'll now add dropout of 50%: 
    l_hid1_drop = lasagne.layers.DropoutLayer(l_hid1, p=0.5) 

    # Another 800-unit layer: 
    l_hid2 = lasagne.layers.DenseLayer(
      l_hid1_drop, num_units=800, 
      nonlinearity=lasagne.nonlinearities.rectify) 

    # 50% dropout again: 
    l_hid2_drop = lasagne.layers.DropoutLayer(l_hid2, p=0.5) 

    # Finally, we'll add the fully-connected output layer, of 10 softmax units: 
    l_out = lasagne.layers.DenseLayer(
      l_hid2_drop, num_units=2, 
      nonlinearity=lasagne.nonlinearities.softmax) 

    # Each layer is linked to its incoming layer(s), so we only need to pass 
    # the output layer to give access to a network in Lasagne: 
    return l_out 

risposta

9

In realtà non c'è bisogno di creare in modo esplicito pregiudizi, perché DenseLayer(), e la base convoluzione strati troppo, ha un argomento di default parola chiave:

b=lasagne.init.Constant(0.).

In questo modo è possibile evitare di creare bias, se non si desidera avere con passaggio esplicito bias=None, ma non è questo il caso.

Così in breve si dispone di parametri di polarizzazione, mentre non si passa None-bias parametro es .:

hidden = Denselayer(...bias=None) 
Problemi correlati