Commencer avec keras

Premiers pas avec Keras : 30 secondes

La structure de données de base de Keras est un modèle, une façon d’organiser les couches. Le principal type de modèle est le modèle [Sequential][1], un empilement linéaire de couches. Pour les architectures plus complexes, vous devez utiliser l’[API fonctionnelle Keras][2].

Voici le modèle séquentiel :

from keras.models import Sequential

model = Sequential()

Empiler des calques est aussi simple que .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"))

Une fois que votre modèle semble bon, configurez son processus d’apprentissage avec .compile() :

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

Si nécessaire, vous pouvez configurer davantage votre optimiseur. Un principe fondamental de Keras est de rendre les choses raisonnablement simples, tout en permettant à l’utilisateur d’avoir un contrôle total quand il en a besoin (le contrôle ultime étant la facilité d’extension du code source).

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

Vous pouvez désormais itérer sur vos données d’entraînement par lots :

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

Vous pouvez également alimenter manuellement votre modèle en lots :

model.train_on_batch(X_batch, Y_batch)

Évaluez vos performances en une seule ligne :

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

Ou générez des prédictions sur de nouvelles données :

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

Construire un système de questions-réponses, un modèle de classification d’images, une Neural Turing Machine, un embedder word2vec ou tout autre modèle est tout aussi rapide. Les idées derrière l’apprentissage en profondeur sont simples, alors pourquoi leur mise en œuvre devrait-elle être pénible ?

Vous trouverez des modèles plus avancés : questions-réponses avec des réseaux de mémoire, génération de texte avec des LSTM empilés, etc. dans [dossier d’exemple][3].

[1] : https://keras.io/getting-started/sequential-model-guide/ [2] : http://keras.io/getting-started/functional-api-guide [3] : https://github.com/fchollet/keras/tree/master/examples

Installation et configuration

Keras est une bibliothèque de réseaux de neurones de haut niveau, écrite en Python et capable de s’exécuter sur TensorFlow ou Theano. Il a été développé dans le but de permettre une expérimentation rapide. Pouvoir passer de l’idée au résultat dans les plus brefs délais est la clé d’une bonne recherche. Utilisez Keras si vous avez besoin d’une bibliothèque d’apprentissage en profondeur qui :

  • Permet un prototypage facile et rapide (grâce à une modularité totale, minimalisme et extensibilité).
  • Prend en charge les réseaux convolutifs et les réseaux récurrents, ainsi comme des combinaisons des deux.
  • Prend en charge les schémas de connectivité arbitraires (y compris les entrées multiples et formation multi-sorties).
  • Fonctionne de manière transparente sur CPU et GPU.

#Mise en place

Keras utilise les dépendances suivantes :

  • numpy, scipy
  • pyyaml
  • HDF5 et h5py (facultatif, requis si vous utilisez l’enregistrement/chargement de modèle les fonctions)
  • Facultatif mais recommandé si vous utilisez des CNN : cuDNN
  • scikit-image (facultatif, requis si vous utilisez les fonctions intégrées de keras pour le prétraitement et l’augmentation des données d’image)

Keras est une bibliothèque de haut niveau qui fournit une API d’apprentissage automatique pratique en plus d’autres bibliothèques de bas niveau pour le traitement et la manipulation des tenseurs, appelée [Backends][1]. À l’heure actuelle, Keras peut être utilisé sur l’un des trois backends disponibles : TensorFlow, Theano et CNTK.

[Theano][3] est installé automatiquement si vous installez Keras en utilisant pip. Si vous souhaitez installer Theano manuellement, veuillez vous référer aux instructions d’installation de Theano.

[TensorFlow][2] est une option recommandée, et par défaut, Keras utilise le backend TensorFlow, si disponible. Pour installer TensorFlow, le plus simple est de faire

$ pip install tensorflow

Si vous souhaitez l’installer manuellement, veuillez vous référer aux instructions d’installation de TensorFlow.

Pour installer Keras, accédez au dossier Keras et exécutez la commande d’installation :

$ python setup.py install

Vous pouvez également installer Keras depuis PyPI :

$ pip install keras

Configuration

Si vous avez exécuté Keras au moins une fois, vous trouverez le fichier de configuration de Keras à :

~/.keras/keras.json

S’il n’y est pas, vous pouvez le créer. Le fichier de configuration par défaut ressemble à ceci :

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

Passer de TensorFlow à Theano

Par défaut, Keras utilisera TensorFlow comme bibliothèque de manipulation de tenseur. Si vous souhaitez utiliser un autre backend, changez simplement le backend du champ en "theano" ou "tensorflow", et Keras utilisera la nouvelle configuration la prochaine fois que vous exécuterez un code Keras.

[1] : https://keras.io/backend/ [2] : https://www.tensorflow.org/ [3] : http://deeplearning.net/software/theano/