Keras : une bibliothèque open source pour la constitution de réseaux neuronaux

L’intelligence artificielle est aujourd’hui essentielle dans le monde numérique, que ce soit pour le développement et l’utilisation de jeux vidéo (ou d’autres applications) ou pour les services Web, les appareils et les machines. Les neural networks ou « réseaux neuronaux » en français, constituent l’un des principaux domaines de recherche s’intéressant aux caractéristiques de base de l’IA. Keras simplifie considérablement l’implémentation de ces réseaux. Découvrez ce qu’offre cette bibliothèque open source et dans quelle mesure elle facilite la mise en place de réseaux neuronaux.

Qu’est-ce que Keras ?

Keras est une bibliothèque open source écrite en Python (sous licence MIT) basée principalement sur les travaux du développeur de Google François Chollet dans le cadre du projet ONEIROS (Open-ended Neuro-Electronic Intelligent Robot Operating System). Une première version du logiciel multiplateforme a été publiée le 28 mars 2015. Le but de cette bibliothèque est de permettre la constitution rapide de réseaux neuronaux. Dans ce cadre, Keras ne fonctionne pas comme un framework propre mais comme une interface de programmation applicative (API) pour l’accès et la programmation de différents frameworks d’apprentissage automatique. Theano, Microsoft Cognitive Toolkit (anciennement CNTK) et TensorFlow font notamment partie des frameworks pris en charge par Keras.

Note

Depuis la sortie de TensorFlow 1.4, Keras fait partie intégrante de l’API de base de TensorFlow. Toutefois, la bibliothèque est toujours développée comme un logiciel indépendant, car l’approche initiale visant à l’utiliser comme une interface pour différents frameworks est toujours d’actualité.

La version actuelle de Keras est compatible avec Python à partir de la version 2.7. Le projet complet est disponible dans le répertoire GitHub officiel de Keras.

Pour afficher cette vidéo, des cookies de tiers sont nécessaires. Vous pouvez consulter et modifier vos paramètres de cookies ici.

Comment fonctionne Keras ?

Keras est une bibliothèque agissant au niveau du modèle : elle met à disposition des modules permettant de développer des modèles de deep learning (apprentissage profond) complexes. Contrairement aux frameworks indépendants, ce logiciel open source ne s’occupe pas des opérations « low level » et utilise à cet effet les bibliothèques de frameworks d’apprentissage automatique associés qui tiennent pratiquement lieu de moteurs back-end pour Keras. Conformément au principe de modularité, les couches désirées pour le réseau neuronal à mettre en place sont connectées. Pour autant, il n’est pas nécessaire de comprendre l’infrastructure réelle du framework choisi et l’utilisateur de Keras n’a pas à la démarrer directement.

Comme indiqué précédemment, Keras repose essentiellement sur les trois outils TensorFlow, Theano et Microsoft Cognitive Toolkit, qui disposent d’ores et déjà d’interfaces prêtes à l’emploi permettant un accès rapide et intuitif à l’infrastructure concernée. Vous n’avez donc pas à choisir un framework et pouvez aisément passer d’une infrastructure à l’autre. Il est également possible de choisir une infrastructure alternative ne faisant pas partie des trois solutions mentionnées précédemment. Pour cela, il suffit que cette infrastructure soit indiquée dans le fichier de configuration (keras.json) et dispose des trois fonctions « placeholder », « variable » et « function ».

Conseil

Des informations détaillées sur la gestion des infrastructures et leur utilisation générale sont disponibles dans notre grand tutoriel sur Keras.

Quels sont les avantages de Keras ?

Keras facilite considérablement la constitution de réseaux neuronaux et se révèle un complément exceptionnel aux outils existants dans ce domaine. La convivialité joue un rôle prépondérant dans ce cadre : Keras fonctionne comme une interface conçue explicitement pour l’homme et, de façon secondaire, pour les machines. Dans les cas d’application les plus importants, les actions des utilisateurs sont réduites à un minimum. Si des erreurs devaient malgré tout survenir, un feed-back correspondant aidera à la résolution. Il est donc relativement simple d’apprendre et d’utiliser Keras pour une productivité accrue. Keras étant lié à des frameworks d’apprentissage profond, cette simplicité ne s’accompagne pas de restrictions fonctionnelles : vous pouvez intégrer toutes les fonctionnalités désirées via des interfaces sur mesure (ou les activer en cas de besoin).

Vue d’ensemble des autres avantages de Keras :

  • Les modèles élaborés sont largement compatibles avec les plateformes : les modèles créés avec Keras peuvent être mis à disposition sur différentes plateformes en toute simplicité. Par défaut, Keras supporte par exemple les configurations iOS (Apple CoreML), Android (Keras TensorFlow Android Runtime), Google Cloud et Raspberry Pi.
  • Le support de multiples moteurs back-end : Keras vous permet non seulement de choisir librement l’infrastructure souhaitée mais aussi d’en combiner plusieurs. D’autre part, vous pouvez à tout moment transférer un modèle créé sur une autre infrastructure.
  • Un support multi-GPU exceptionnel : Keras permet de répartir facilement la puissance de calcul nécessaire aux processus de deep learning élaborés sur plusieurs puces ou cartes graphiques.
  • La capacité de développement de grandes entreprises : la maintenance et le développement de Keras sont assurés par les principaux acteurs du secteur. Google, Amazon AWS, Microsoft, Apple et Nvidia participent notamment au projet.

À quels projets se destinent Keras et TensorFlow-Keras ?

Keras est aujourd’hui utilisé dans différents projets du domaine de l’IA en tant qu’interface universelle pour les plateformes d’apprentissage automatique les plus diverses. Dès le milieu de l’année 2018, cette bibliothèque enregistrait plus de 250 000 utilisateurs individuels, un nombre largement dépassé avec la reprise de la bibliothèque dans le logiciel TensorFlow. La possibilité de choisir librement le framework sous-jacent, la licence libre et l’indépendance en termes de plateforme font de Keras une solution polyvalente parfaite pour les applications de réseaux neuronaux professionnels, que ce soit dans le secteur industriel ou dans le domaine de la recherche. Des entreprises de renom comme Netflix, Uber et Yelp, mais aussi des organisations comme la NASA ou le CERN utilisent par exemple Keras ou le duo TensorFlow-Keras dans leurs projets.