kerasAan de slag met keras


Opmerkingen

Leidraad s

  • modulariteit

Een model wordt opgevat als een reeks of een grafiek van zelfstandige, volledig configureerbare modules die met zo min mogelijk beperkingen op elkaar kunnen worden aangesloten. In het bijzonder zijn neurale lagen, kostenfuncties, optimizers, initialisatieschema's, activeringsfuncties en regularisatieschema's allemaal zelfstandige modules die u kunt combineren om nieuwe modellen te maken.

  • minimalisme

Elke module moet kort en eenvoudig worden gehouden. Elk stukje code moet bij eerste lezing transparant zijn. Geen zwarte magie: het schaadt iteratiesnelheid en het vermogen om te innoveren.

  • Gemakkelijke uitbreidbaarheid

Nieuwe modules zijn dood eenvoudig toe te voegen (als nieuwe klassen en functies), en bestaande modules bieden voldoende voorbeelden. Om eenvoudig nieuwe modules te kunnen maken, is totale expressiviteit mogelijk, waardoor Keras geschikt is voor geavanceerd onderzoek.

  • Werk met Python

Geen afzonderlijke configuratiebestanden van modellen in declaratief formaat. Modellen worden beschreven in Python-code, die compact is, eenvoudiger te debuggen is en uitbreidingsgemak mogelijk maakt.

Aan de slag met Keras: 30 seconden

De kerngegevensstructuur van Keras is een model , een manier om lagen te ordenen. Het hoofdtype van het model is het sequentiële model, een lineaire stapel lagen. Voor complexere architecturen moet u de functionele API van Keras gebruiken.

Hier is het sequentiële model:

from keras.models import Sequential

model = Sequential()
 

Lagen stapelen is net zo eenvoudig als .add() :

from keras.layers import Dense, Activation

model.add(Dense(output_dim=64, input_dim=100))
model.add(Activation("relu"))
model.add(Dense(output_dim=10))
model.add(Activation("softmax"))
 

Zodra uw model er goed uitziet, configureert u het leerproces met .compile() :

model.compile(loss='categorical_crossentropy', optimizer='sgd', metrics=['accuracy'])
 

Indien nodig kunt u uw optimizer verder configureren. Een kernprincipe van Keras is om dingen redelijk eenvoudig te maken, terwijl de gebruiker de volledige controle heeft wanneer dat nodig is (de ultieme controle is de gemakkelijke uitbreidbaarheid van de broncode).

from keras.optimizers import SGD
model.compile(loss='categorical_crossentropy', optimizer=SGD(lr=0.01, momentum=0.9, nesterov=True))
 

U kunt nu in batches uw trainingsgegevens herhalen:

model.fit(X_train, Y_train, nb_epoch=5, batch_size=32)
 

Als alternatief kunt u batches handmatig aan uw model invoeren:

model.train_on_batch(X_batch, Y_batch)
 

Evalueer uw prestaties op één regel:

loss_and_metrics = model.evaluate(X_test, Y_test, batch_size=32)
 

Of genereer voorspellingen over nieuwe gegevens:

classes = model.predict_classes(X_test, batch_size=32)
proba = model.predict_proba(X_test, batch_size=32)
 

Het bouwen van een vraagbeantwoordingssysteem, een beeldclassificatiemodel, een neurale turingmachine, een word2vec-embedder of een ander model is net zo snel. De ideeën achter diep leren zijn eenvoudig, dus waarom zou de implementatie ervan pijnlijk zijn?

U vindt meer geavanceerde modellen: vragen beantwoorden met geheugennetwerken, tekst genereren met gestapelde LSTM's, enz. In een voorbeeldmap .

Installatie en instellingen

Keras is een neurale netwerkbibliotheek op hoog niveau, geschreven in Python en kan worden uitgevoerd op TensorFlow of Theano. Het is ontwikkeld met de nadruk op snelle experimenten. Met zo min mogelijk vertraging van idee naar resultaat kunnen gaan, is de sleutel tot goed onderzoek. Gebruik Keras als u een deep learning-bibliotheek nodig hebt die:

  • Zorgt voor eenvoudige en snelle prototyping (door totale modulariteit, minimalisme en uitbreidbaarheid).
  • Ondersteunt zowel convolutionele netwerken als terugkerende netwerken, evenals combinaties van beide.
  • Ondersteunt willekeurige connectiviteitsschema's (inclusief training met meerdere ingangen en meerdere uitgangen).
  • Werkt naadloos op CPU en GPU.

Installatie

Keras gebruikt de volgende afhankelijkheden:

  • gevoelloos, scipy
  • pyyaml
  • HDF5 en h5py (optioneel, vereist als u functies voor het opslaan / laden van modellen gebruikt)
  • Optioneel maar aanbevolen als u CNN's gebruikt: cuDNN
  • scikit-image (optioneel, vereist als u ingebouwde Keras-functies gebruikt voor het voorbewerking en verbeteren van afbeeldingsgegevens)

Keras is een bibliotheek op hoog niveau die een handige Machine Learning API biedt bovenop andere low-level bibliotheken voor tensorverwerking en -manipulatie , genaamd Backends . Op dit moment kan Keras worden gebruikt bovenop elk van de drie beschikbare backends: TensorFlow , Theano en CNTK .

Theano wordt automatisch geïnstalleerd als u Keras installeert met pip . Als u Theano handmatig wilt installeren, raadpleegt u de installatie-instructies van Theano .

TensorFlow is een aanbevolen optie, en standaard gebruikt Keras TensorFlow- backend, indien beschikbaar. Om TensorFlow te installeren, is de eenvoudigste manier om dit te doen

$ pip install tensorflow
 

Raadpleeg de installatie-instructies van TensorFlow als u het handmatig wilt installeren.

Om Keras te installeren, cd naar de map Keras en voer de installatieopdracht uit:

$ python setup.py install
 

U kunt Keras ook installeren vanuit PyPI:

$ pip install keras
 

Configuratie

Als u Keras minimaal één keer hebt uitgevoerd, vindt u het Keras-configuratiebestand op:

~/.keras/keras.json
 

Als het er niet is, kunt u het maken. Het standaard configuratiebestand ziet er als volgt uit:

{
    "image_dim_ordering": "tf",
    "epsilon": 1e-07,
    "floatx": "float32",
    "backend": "tensorflow"
}  
 

Overschakelen van TensorFlow naar Theano

Keras gebruikt standaard TensorFlow als zijn tensor-manipulatiebibliotheek. Als u een andere backend wilt gebruiken, wijzigt u eenvoudigweg de "tensorflow" "theano" of "tensorflow" , en Keras gebruikt de nieuwe configuratie de volgende keer dat u een Keras-code uitvoert.