Keras

Keras : tout savoir sur l’API de Deep Learning

Bastien L

Bastien L

5 min

Keras est l’une des principales APIs de réseaux de neurones Deep Learning. Découvrez tout ce que ce qu’il y a à savoir sur Keras dans cet article.

Les réseaux de neurones Deep Learning sont de plus en plus utilisés. Toutefois, les principaux frameworks sont souvent complexes et empêchent de nombreux développeurs de se lancer dans l’apprentissage profond et l’intelligence artificielle.

Afin de remédier à ce problème, plusieurs APIs de haut niveau simplifiées ont été créées. Elles permettent de créer des modèles de réseaux de neurones plus facilement. Parmi ces APIs, la plus populaire est sans doute Keras.

Qu'est-ce que Keras ?

Keras est une API de réseau de neurones écrite en langage Python. Il s’agit d’une bibliothèque Open Source, exécutée par-dessus des frameworks tels que Theano et TensorFlow.

Conçue pour être modulaire, rapide et simple d’utilisation, Keras a été créée par l’ingénieur François Chollet de Google. Elle offre une façon simple et intuitive de créer des modèles de Deep Learning.

Aujourd’hui, Keras est l’une des APIs de réseaux de neurones les plus utilisées pour le développement et le testing de réseaux de neurones. Elle permet de créer très facilement des ” layers ” pour les Neural Networks ou de mettre en place des architectures complexes.

Un Modèle Keras est constitué d’une séquence ou d’un graphique indépendant. Il existe plusieurs modules entièrement configurables et pouvant être combinés pour créer de nouveaux modèles.

L’un des avantages de cette modularité est qu’il est très facile d’ajouter de nouvelles fonctionnalités sous forme de modules séparés. Keras est donc très flexible, et adapté à la recherche et à l’innovation.

Cheat Sheet Keras :

  • Modèles de base & Preprocessing
  • Fonctions & Métriques

Les caractéristiques de Keras

Keras est conçu pour être intuitif, modulaire, facile à étendre, et pour fonctionner avec Python. Selon ses créateurs, cette API est ” conçue pour les êtres humains, et non pour les machines ” et ” suit les meilleures pratiques pour réduire la charge cognitive “.

Il est possible de combiner des modules de layers de neurones, des optimiseurs, des schémas d’initialisation, des fonctions d’activation ou des schémas de régularisation pour créer de nouveaux modules.

Les nouveaux modules sont très simples à ajouter, à l’instar de nouvelles classes et fonctions. Les modèles sont définis dans le code Python et non dans des fichiers de configuration de modèles séparés.

Pourquoi utiliser Keras ?

La popularité de Keras est liée à ses avantages. Cette API est simple d’utilisation, et il est facile d’apprendre à l’utiliser.

Sa popularité en elle-même est un avantage, puisqu’elle est compatible avec de nombreuses options de déploiement en production. Au moins cinq moteurs back-end sont pris en charge : TensorFlow, CNTK, Theano, MXNet et PlaidML.

Elle supporte aussi l’utilisation de multiples GPUs et l’entraînement distribué. En outre, cette bibliothèque est soutenue par Google, Microsoft, Amazon, Apple, Nvidia ou encore Uber.

Les backends

Keras ne se charge pas directement des opérations de bas niveau comme les produits ou les convolutions de Tensor. Pour ce type de calcul, elle s’appuie sur un moteur backend.

Plusieurs de ces moteurs sont compatibles, mais le plus utilisé est TensorFlow de Google. L’API Keras est d’ailleurs packagée avec TensorFlow sous la forme tf.keras. Depuis la version 2.0, il s’agit de la principale API TensorFlow.

Les Modèles Keras

Le Modèle est le coeur de la structure de données de Keras. Il en existe deux principaux types : le modèle Séquentiel et la classe Model utilisée avec l’API fonctionnelle.

Le Modèle séquentiel (Sequential) est une pile de layers linéaire. Les layers peuvent être décrites de façon très simple. Chaque définition de layer requiert une ligne de code.

La compilation (la définition du processus d’apprentissage) prend aussi une ligne de code. Le fitting (entraînement), l’évaluation (calcul des pertes et des métriques), et la prédiction des résultats à partir du modèle entraîné prennent aussi une ligne de code chacun.

Le modèle séquentiel de Keras est simple, mais limité en termes de topologie de modèle. L’API fonctionnel de Keras est donc utile pour créer des modèles complexes, tels que des modèles multi-input/multi-output, des Graphiques Acycliques Dirigés (DAGs), et des modèles à layers partagées.

Cette API fonctionnelle utilise les mêmes layers que le modèle Séquentiel, mais offre davantage de flexibilité pour les combiner. On définit d’abord les layers, puis on crée le Modèle, on le compile et on l’entraîne. L’évaluation et la prédiction fonctionnent de la même manière que dans le modèle Séquentiel.

Les Layers de Keras

Keras propose une large variété de types de Layers prédéfinies. Parmi les principales, on peut citer Dense, Activation, Dropout, Lambda.

Les différentes Layers de convolution quant à elles vont de 1D à 3D et incluent les variantes les plus communes pour chaque dimensionnalité. La convolution 2D, inspirée par le fonctionnement du cortex visuel, est couramment utilisée pour la reconnaissance d’image.

Les Layers de Pooling vont également de la 1D à la 3D et incluent les variantes communes comme le max pooling et l’average pooling. Les Layers connectées localement agissent comme des Layers de convolution, mais leurs poids ne sont pas partagés.

Parmi les Layers récurrentes, on compte la Layer simple, gated, LSTM. Elles sont très utile pour différentes applications, notamment le traitement de langage. Enfin, les Layers de Noise évitent l’overfitting.

Les Datasets de Keras

Keras rassemble sept des ensembles de données d’échantillons les plus communs du Deep Learning via la classe keras.datasets.

On retrouve notamment cifar10 et cifar100 pour les petites images de couleurs, les critiques de films IMDB, les sujets du fil d’actualité de Reuters, les chiffres manuscrits de MNIST, les images de mode MNIST, et les prix immobiliers de Boston.

Les applications et exemples Keras

Keras inclut aussi dix modèles bien connus : les Applications Keras, pré-entraînés sur ImageNet. Ces dix modèles sont Xception, VGG16, VGG19, ResNet50, InceptionV3, InceptionResNetV2, MobileNet, DenseNet, NASNet et MobileNetV2TK.

Ils peuvent être utilisés pour prédire la classification d’images, extraire des caractéristiques et configurer les modèles sur un ensemble de classes différents. Au total, le répertoire d’exemple Keras contient plus de 40 modèles d’échantillon tels que des modèles de vision, de textes et séquences, ou des modèles génératifs.

Le déploiement de Keras

Les modèles Keras peuvent être déployés sur une large variété de plateformes. C’est un avantage par rapport à d’autres frameworks de Deep Learning.

Parmi ces plateformes, on compte iOS via CoreML, Android via le runtime TensorFlow Android, les navigateurs web via Keras.js et WebDNN, Google Cloud via TensorFlow-Serving, sur un backend de webapp Python, sur JVM via l’import de modèle DL4J, et sur Raspberry Pi.

Comment apprendre à utiliser Keras ?

Pour commencer à utiliser Keras, vous pouvez tout d’abord lire la documentation officielle, explorer le dépôt de code sur GitHub, installer Keras et un moteur backend comme TensorFlow.

En outre, vous pouvez essayer le tutoriel officiel pour le modèle Séquentiel, et explorer les différents exemples. Il s’agit d’une première étape pour commencer à découvrir cette API de Deep Learning.

Toutefois, le meilleur moyen de maîtriser Keras est d’opter pour les formations DataScientest. Cette bibliothèque est au coeur du module Deep Learning de notre parcours Data Scientist, au même titre que Tensorflow, les CNN-RNN et les GANs.

À travers cette formation, vous apprendrez aussi la programmation en Python, la DataViz, le Machine Learning, les bases de données et les systèmes IA. À l’issue du programme, vous serez fin prêt à exercer le métier de Data Scientist.

Nos parcours sont conçus par des professionnels, afin de répondre aux besoins réels de l’industrie. Ainsi, 93% de nos alumnis ont trouvé un emploi immédiatement après la formation. Les apprenants reçoivent aussi un diplôme certifié par l’Université de la Sorbonne.

Toutes nos formations adoptent une approche de Blended Learning associant apprentissage à distance et en présentiel. Elles peuvent être effectuées en BootCamp ou en Formation Continue. N’attendez plus, et découvrez la formation de Data Scientist !