Le portail de l'intelligence artificielle et des startups IA

Recherche, écosystème, éthique de l'intelligence artificielle et évolution de la société
Intelligence artificielle Débuter avec Keras – Documentation en français

Débuter avec Keras – Documentation en français


Keras: La librairie de Deep Learning Python

Vous consultez une traduction en français de la documentation de la librairie Keras réalisée par ActuIA avec l’autorisation de François Chollet, créateur de cette librairie, que nous tenons à remercier pour sa confiance. La documentation originale et officielle, en anglais, peut être trouvée ici.

Keras est une API de réseaux de neurones de haut niveau, écrite en Python et interfaçable avec TensorFlow, CNTK et Theano. Elle a été développée avec pour objectif de permettre des expérimentations rapides. Être capable d’aller de l’idée au résultat avec le plus faible délai possible étant la clef d’une recherche efficace.

Nous vous recommandons Keras si vous êtes à la recherche d’une librairie qui :

  • Permet le prototypage rapide et facile (de par sa convivialité, sa modularité et son extensibilité).
  • Supporte à la fois les réseaux convolutifs et les réseaux récurrents ainsi que la combinaison des deux.
  • Fonctionne de façon transparente sur CPU et GPU.

Keras est compatible avec Python 2.7-3.7.

 


Principes directeurs

  • Convivialité. Keras  est une API développée pour les humains, pas pour les machines. Elle met l’expérience utilisateur au centre de tout. Keras suit les meilleures pratiques afin de réduire la charge cognitive : elle propose une API simple et cohérente, minimisant le nombre d’actions requises pour les cas les plus communs, et les messages d’erreur sont suffisamment explicites pour permettre une résolution simple des problèmes.
  • Modularité. Un modèle est considéré comme une séquence ou un graph de modules autonomes, complètement configurables et qui peuvent être reliés les uns aux autres avec le minimum de restrictions possible. En particulier, les couches de neurones, les fonctions de coût, les optimiseurs, fonctions d’activation, mécanismes de régularisation, sont tous des modules indépendants que l’on peut combiner pour créer de nouveaux modèles.
  • Extensibilité.  Il est facile d’ajouter de nouveaux modules, en tant que classes ou fonctions, et les modules existants fournissent de nombreux exemples. La simplicité de création de nouveaux modules permet une expression totale, ce qui fait de Keras un outil parfaitement adapté à la recherche avancée.
  • Fonctionnement en Python. Pas de fichiers séparés de configuration des modèles en format déclaratif. Tout est déclaré dans le code, ce qui permet un débogage facile et facilite l’extensibilité.

Démarrer avec Keras en 30 secondes

La structure de données fondamentale de Keras est un modèle, une façon d’organiser les couches. Le type de modèle le plus simple est le modèle séquentiel, constituée d’un empilement linéaire de couches. Pour des architectures plus complexes, vous devriez utiliser l’API fonctionnelle de Keras qui permet de construire des graphs de couches sur mesure.

Voici l’implémentation d’un modèle séquentiel :

from keras.models import Sequential

model = Sequential()

L’empilement de couches se fait simplement avec .add() :

from keras.layers import Dense

model.add(Dense(units=64, activation='relu', input_dim=100))
model.add(Dense(units=10, activation='softmax'))

Lorsque l’architecture de votre modèle vous convient, configurez son processus d’apprentissage avec .compile() :

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

Vous pouvez, si nécessaire, préciser la configuration de votre optimiseur. L’un des principes fondamentaux de Keras est de rendre les choses simples tout en permettant à l’utilisateur de conserver un contrôle total si nécessaire. (le contrôle ultime étant l’extensibilité du code souce).

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

Vous pouvez ensuite créer les itérations d’entraînement par lot du modèle, en utilisant le jeu de données d’entraînement.

# x_train et y_train sont des tableaux Numpy, tout comme dans l'API Scikit-Learn
model.fit(x_train, y_train, epochs=5, batch_size=32)

Si vous le préférez, vous pouvez toutefois fournir manuellement au modèle les lots d’entraînement :

model.train_on_batch(x_batch, y_batch)

Vous pouvez alors évaluer les performances de votre modèle à l’aide de votre jeu de données de test en une seule ligne :

loss_and_metrics = model.evaluate(x_test, y_test, batch_size=128)

La génération de prédictions sur de nouvelles données est toute aussi simple :

classes = model.predict(x_test, batch_size=128)

La construction d’un système de réponse automatique aux questions, d’un modèle de classification, d’une machine de Turing ou de tout autre modèle est aussi rapide que cela. Les idées sur lesquelles repose le Deep Learning sont simples, alors pourquoi sont implémentation devrait-elle être compliquée ?

Pour aller plus loin, vous pouvez consulter :

Vous trouverez également des exemples de modèles avancés dans le dossier  “examples” du dépôt github.


Installation

Keras nécessite l’installation de TensorFlow, Theano, ou CNTK. Vous devez donc installer l’une de ces librairies péalablement. (Nous recommandons l’usage de TensorFlow).

Vous pouvez également installer ces dépendances optionnelles :

  • cuDNN (recommandé si vous souhaitez utiliser Keras sur un GPU).
  • HDF5 et h5py (Requis si vous souhaitez sauvegarder vos modèles Keras).
  • graphviz et pydot (utilisé par les utilitaires de visualisations, pour afficher une représentation graphique de vos modèles).

Vous pouvez ensuite installer Keras, il y a deux façons de l’installer :

  • Installation de Keras avec PyPI (recommandé):
sudo pip install keras

Si vous utilisez un virtualenv (environnement virtuel), vous pouvez ignorer sudo :

pip install keras
  • Alternative : Installation à partir de GitHub

Commencez par clôner le dépôt Git

git clone https://github.com/keras-team/keras.git

Ensuite, allez dans le dossier keras avec la commande cd et lancez le script d’installation

cd keras
sudo python setup.py install

Utiliser une autre librairie que TensorFlow en arrière plan

Par défaut, Keras utilise TensorFlow en tant que librairie de manipulation de tenseurs. Les instructions pour configurer une autre librairie se trouvent ici


Support

Vous pouvez poser des questions et participer aux échanges sur le développement :

Vous pouvez également rapporter des bugs et faire des requêtes de fonctionnalités (seulement) sur GitHub. Assurez-vous toutefois de lire les consignes préalablement.


Pourquoi le nom de Keras?

Keras (κέρας) signifie corne en grec. C’est une référence à la mythologie gréco-latine, dont la première occurence trouvée est dans l’ Odyssée où Oneiroi, les divinités des songes, sont divisées entre celles qui trompent les hommes avec de fausses visions et arrivent sur terre en passant par la porte d’ivoire et celles qui sont annonciatrices du futur et arrivent sur terre en passant par la porte de corne. C’est un jeu de mot : κέρας (corne) / κραίνω (réaliser), et ἐλέφας (ivoire) / ἐλεφαίρομαι (tromper).

Keras a initialement été développé dans le cadre d’un effort de recherche sur le projet ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System).