woensdag 19 augustus 2015

Lasagne

Lasagne. Nee, niet het Italiaanse pasta gerecht. Maar weer een aanvullende manier om het werken met neurale netwerken eenvoudiger te maken.

Ik volg voor de aardigheid de tutorial van Daniel Nouri over de Kaggle challenge van het herkennen van gezichtskenmerken: http://danielnouri.org/notes/2014/12/17/using-convolutional-neural-nets-to-detect-facial-keypoints-tutorial/

Daarin wordt dus naast Python en Numpy, ook Pandas en dus Lasagne gebruikt. Eerst maar eens kijken of we de voorbeelden kunnen naspelen.

Lasagne werkt feitelijk meer met parameters in plaats van programmacode. Hoewel er daarmee veel onder de motorkap verdwijnt (maar dus ook verzorgd wordt) geef je dus met parameters op welke code (methodieken) er gebruikt met gaan worden. Bijvoorbeeld:

net1 = NeuralNet(
    layers=[  # three layers: one hidden layer
        ('input', layers.InputLayer),
        ('hidden', layers.DenseLayer),
        ('output', layers.DenseLayer),
                         ],
    # layer parameters:
    input_shape=(None, 9216),  # 96x96 input pixels per batch
    hidden_num_units=100# number of units in hidden layer
    output_nonlinearity=None# output layer uses identity function
    output_num_units=30# 30 target values 
... 

Na wat experimenteren lukt het me om alles te laten lopen. Kijken of we de rest van de tutorial ook kunnen naspelen om daarna, uiteraard, de resultaten ruimschoots te overbluffen :-)

Wat zou die met die waarschuwing bedoelen ... ?

/Users/DWW/src/lasagne/lasagne/init.py:86: UserWarning: The uniform initializer no longer uses Glorot et al.'s approach to determine the bounds, but defaults to the range (-0.01, 0.01) instead. Please use the new GlorotUniform initializer to get the old behavior. GlorotUniform is now the default for all layers.

  warnings.warn("The uniform initializer no longer uses Glorot et al.'s "


Geen opmerkingen:

Een reactie posten