Keras est une API de réseaux de neurones, parmi les plus appréciées chez les développeurs qui s'initient au Deep Learning.

Et pour cause, open source, écrit en langage Python, il est interfaçable avec TensorFlow, CNTK, Theano, MXNet et PlaidML.

Développée par François Chollet, développeur chez Google, cette bibliothèque a un objectif bien précis selon son créateur: "Aller de l'idée au résultat dans un délai le plus rapide possible".

En effet, jusqu'à récemment, les différents outils proposés étaient complexes pour la plupart des développeurs qui y voyaient un frein, mais depuis que Keras est là, créer des modèles de réseaux de neurones n'a jamais été aussi facile.

Pourquoi Keras?

Keras est une API "conçue pour les êtres humains, pas pour les machines" selon son concepteur et propose des API cohérentes et simples, il minimise le nombre d'actions utilisateur requises pour permettre des expérimentations rapides et il fournit des messages d'erreur clairs et exploitables, pour permettre aux développeurs de se corriger.

Avec une documentation complète et des guides à suivre, il est donc très facilement assimilable pour ceux qui débutent dans le Deep Learning.

Keras est aussi utile pour ceux qui s'initient au Deep Learning que pour ceux qui ont besoin d'architectures plus complexes.

Créez votre intelligence artificielle avec le Deep Learning - GOMYCODE
Apprenez à construire, former et implémenter des réseaux de neurones connectés (Artificial neural networks, Deep neural networks, convolutional neural networks).

En effet, Keras offre une modularité très pratique. Grâce à ses nombreux modules qui peuvent être totalement configurés et combinés, il est très facile d'y ajouter de nouvelles fonctionnalités. C'est cette flexibilité qu'il offre qui en fait un des outils les plus appréciés pour le Deep Learning.

Comme l'explique le site Datascientist.com: "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".

Modèles, Layers et Datasets

Pour ceux qui ne connaissent pas Keras, il faut déjà en maîtriser le vocabulaire.

  • Les modèles:

Les modèles sont au coeur de la structure des données chez Keras. Il en existe deux types: Les modèles séquentiels et le Class Model utilisé avec l'API fonctionnelle.

Le modèle séquentiel correspond à une "pile de layers linéaire". Comme l'explique le site Datascientist.com: "Les layers peuvent être décrites de façon très simple. Chaque définition de layer requiert une ligne de code".

Très simple d'utilisation, le modèle séquentiel reste tout de même limité pour créer des modèles plus complexes. Pour ce faire, il vaudrait mieux utiliser l'API fonctionnelle de Keras.

Si elle offre les mêmes layers que le modèle séquentiel, elle permet une plus grande flexibilité pour les combiner.

  • Les layers:

Les Layers sont les blocs de construction de base des réseaux neuronaux dans Keras. Un Layer est constituée d'un "tensor-in tensor-out computation function".

Keras offre à ses utilisateurs de nombreux layers déjà prédéfinis (comme Dense, Dropout ou Lambda...) mais ils ne couvrent pas tous les cas d'utilisation possibles. La création de layers personnalisés reste cependant très courante et très facile sur Keras.

  • Datasets:

Le module tf.keras.datasets fournit quelques Datasets (déjà vectorisés, au format Numpy) qui peuvent être utilisés pour déboguer un modèle ou créer des exemples de code simples.

À ce jour, Keras dispose de "sept des ensembles de données d’échantillons les plus communs du Deep Learning" comme l'explique le site datascientist.com. Parmi eux, "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".

Si vous recherchez des datasets prêts à l'emploi plus importants et plus utiles, jetez un œil à TensorFlow Datasets.

Un déploiement très facile

Ce qui fait la force de Keras par rapport à ses concurrents, c'est sa facilité de déploiement. En effet, il peut être déployé sur un ensemble de plateformes comme:

  • Android via le runtime TensorFlow Android
  • iOS via CoreML
  • Google Cloud via TensorFlow-Serving
  • Raspberry Pi
  • N'importe quel navigateur web via Keras.js et WebDNN
  • JVM via l’import de modèle DL4J
  • Un backend de webapp Python

Vous voulez vous lancer dans une carrière dans le Deep Learning? Suivez notre formation et apprenez à construire, former et implémenter des réseaux de neurones connectés. Inscrivez-vous sur notre site web ou contactez nos conseillers pédagogiques.