L’in­tel­li­gence ar­ti­fi­cielle est aujourd’hui es­sen­tielle dans le monde numérique, que ce soit pour le dé­ve­lop­pe­ment et l’uti­li­sa­tion de jeux vidéo (ou d’autres ap­pli­ca­tions) ou pour les services Web, les appareils et les machines. Les neural networks ou « réseaux neuronaux » en français, cons­ti­tuent l’un des prin­ci­paux domaines de recherche s’in­té­res­sant aux ca­rac­té­ris­tiques de base de l’IA. Keras simplifie con­si­dé­ra­ble­ment l’im­plé­men­ta­tion de ces réseaux. Découvrez ce qu’offre cette bi­blio­thè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 bi­blio­thèque open source écrite en Python (sous licence MIT) basée prin­ci­pa­le­ment sur les travaux du dé­ve­lop­peur de Google François Chollet dans le cadre du projet ONEIROS (Open-ended Neuro-Electronic Intel­li­gent Robot Operating System). Une première version du logiciel mul­ti­pla­te­forme a été publiée le 28 mars 2015. Le but de cette bi­blio­thèque est de permettre la cons­ti­tu­tion rapide de réseaux neuronaux. Dans ce cadre, Keras ne fonc­tionne pas comme un framework propre mais comme une interface de pro­gram­ma­tion ap­pli­ca­tive (API) pour l’accès et la pro­gram­ma­tion de dif­fé­rents fra­me­works d’ap­pren­tis­sage au­to­ma­tique. Theano, Microsoft Cognitive Toolkit (an­cien­ne­ment CNTK) et Ten­sor­Flow font notamment partie des fra­me­works pris en charge par Keras.

Note

Depuis la sortie de Ten­sor­Flow 1.4, Keras fait partie in­té­grante de l’API de base de Ten­sor­Flow. Toutefois, la bi­blio­thèque est toujours dé­ve­lop­pée comme un logiciel in­dé­pen­dant, car l’approche initiale visant à l’utiliser comme une interface pour dif­fé­rents fra­me­works est toujours d’actualité.

La version actuelle de Keras est com­pa­tible avec Python à partir de la version 2.7. Le projet complet est dis­po­nible dans le ré­per­toire GitHub officiel de Keras.

Comment fonc­tionne Keras ?

Keras est une bi­blio­thèque agissant au niveau du modèle : elle met à dis­po­si­tion des modules per­met­tant de dé­ve­lop­per des modèles de deep learning (ap­pren­tis­sage profond) complexes. Con­trai­re­ment aux fra­me­works in­dé­pen­dants, ce logiciel open source ne s’occupe pas des opé­ra­tions « low level » et utilise à cet effet les bi­blio­thèques de fra­me­works d’ap­pren­tis­sage au­to­ma­tique associés qui tiennent pra­ti­que­ment lieu de moteurs back-end pour Keras. Con­for­mé­ment au principe de mo­du­la­rité, les couches désirées pour le réseau neuronal à mettre en place sont con­nec­tées. Pour autant, il n’est pas né­ces­saire de com­prendre l’in­fras­truc­ture réelle du framework choisi et l’uti­li­sa­teur de Keras n’a pas à la démarrer di­rec­te­ment.

Comme indiqué pré­cé­dem­ment, Keras repose es­sen­tiel­le­ment sur les trois outils Ten­sor­Flow, Theano et Microsoft Cognitive Toolkit, qui disposent d’ores et déjà d’in­ter­faces prêtes à l’emploi per­met­tant un accès rapide et intuitif à l’in­fras­truc­ture concernée. Vous n’avez donc pas à choisir un framework et pouvez aisément passer d’une in­fras­truc­ture à l’autre. Il est également possible de choisir une in­fras­truc­ture al­ter­na­tive ne faisant pas partie des trois solutions men­tion­nées pré­cé­dem­ment. Pour cela, il suffit que cette in­fras­truc­ture soit indiquée dans le fichier de con­fi­gu­ra­tion (keras.json) et dispose des trois fonctions « pla­ce­hol­der », « variable » et « function ».

Conseil

Des in­for­ma­tions dé­tail­lées sur la gestion des in­fras­truc­tures et leur uti­li­sa­tion générale sont dis­po­nibles dans notre grand tutoriel sur Keras.

Quels sont les avantages de Keras ?

Keras facilite con­si­dé­ra­ble­ment la cons­ti­tu­tion de réseaux neuronaux et se révèle un com­plé­ment ex­cep­tion­nel aux outils existants dans ce domaine. La con­vi­via­lité joue un rôle pré­pon­dé­rant dans ce cadre : Keras fonc­tionne comme une interface conçue ex­pli­ci­te­ment pour l’homme et, de façon se­con­daire, pour les machines. Dans les cas d’ap­pli­ca­tion les plus im­por­tants, les actions des uti­li­sa­teurs sont réduites à un minimum. Si des erreurs devaient malgré tout survenir, un feed-back cor­res­pon­dant aidera à la ré­so­lu­tion. Il est donc re­la­ti­ve­ment simple d’apprendre et d’utiliser Keras pour une pro­duc­ti­vité accrue. Keras étant lié à des fra­me­works d’ap­pren­tis­sage profond, cette sim­pli­cité ne s’ac­com­pagne pas de res­tric­tions fonc­tion­nelles : vous pouvez intégrer toutes les fonc­tion­na­li­tés désirées via des in­ter­faces sur mesure (ou les activer en cas de besoin).

Vue d’ensemble des autres avantages de Keras :

  • Les modèles élaborés sont largement com­pa­tibles avec les pla­te­formes : les modèles créés avec Keras peuvent être mis à dis­po­si­tion sur dif­fé­rentes pla­te­formes en toute sim­pli­cité. Par défaut, Keras supporte par exemple les con­fi­gu­ra­tions iOS (Apple CoreML), Android (Keras Ten­sor­Flow Android Runtime), Google Cloud et Raspberry Pi.
  • Le support de multiples moteurs back-end : Keras vous permet non seulement de choisir librement l’in­fras­truc­ture souhaitée mais aussi d’en combiner plusieurs. D’autre part, vous pouvez à tout moment trans­fé­rer un modèle créé sur une autre in­fras­truc­ture.
  • Un support multi-GPU ex­cep­tion­nel : Keras permet de répartir fa­ci­le­ment la puissance de calcul né­ces­saire aux processus de deep learning élaborés sur plusieurs puces ou cartes gra­phiques.
  • La capacité de dé­ve­lop­pe­ment de grandes en­tre­prises : la main­te­nance et le dé­ve­lop­pe­ment de Keras sont assurés par les prin­ci­paux acteurs du secteur. Google, Amazon AWS, Microsoft, Apple et Nvidia par­ti­ci­pent notamment au projet.

À quels projets se destinent Keras et Ten­sor­Flow-Keras ?

Keras est aujourd’hui utilisé dans dif­fé­rents projets du domaine de l’IA en tant qu’interface uni­ver­selle pour les pla­te­formes d’ap­pren­tis­sage au­to­ma­tique les plus diverses. Dès le milieu de l’année 2018, cette bi­blio­thèque en­re­gis­trait plus de 250 000 uti­li­sa­teurs in­di­vi­duels, un nombre largement dépassé avec la reprise de la bi­blio­thèque dans le logiciel Ten­sor­Flow. La pos­si­bi­lité de choisir librement le framework sous-jacent, la licence libre et l’in­dé­pen­dance en termes de pla­te­forme font de Keras une solution po­ly­va­lente parfaite pour les ap­pli­ca­tions de réseaux neuronaux pro­fes­sion­nels, que ce soit dans le secteur in­dus­triel ou dans le domaine de la recherche. Des en­tre­prises de renom comme Netflix, Uber et Yelp, mais aussi des or­ga­ni­sa­tions comme la NASA ou le CERN utilisent par exemple Keras ou le duo Ten­sor­Flow-Keras dans leurs projets.

Aller au menu principal