Keras est un cadre open source qui fournit des API de haut niveau pour des applications d’apprentissage machine de grande envergure comme les réseaux neuronaux. Ces API peuvent s’exécuter au-dessus de moteurs backend tels que TensorFlow, CNTK (Cognitive Toolkit), Theano, MXNet et PlaidML. Sa structure simple et conviviale facilite le développement rapide de modèles. Il est particulièrement adapté au prototypage rapide et aux petits ensembles de données.
TensorFlow est un cadre d’IA open source développé par Google. Il fournit des API de haut et bas niveau, avec une librairie pour les calculs numériques et les applications d’apprentissage machine à grande échelle comme les réseaux neuronaux. Sa librairie supporte le graphe de calcul statique* et est compatible avec divers langages de programmation comme C, C++, Java, etc. Il offre la visualisation grâce à la librairie intégrée TensorBoard et un déploiement facile via TensorFlow Serving. Il est particulièrement adapté aux grands ensembles de données, aux hautes performances et à la détection d’objets. Quelques projets réalisés avec TensorFlow sont SIGHT, Maid Monitor, Farmaid, A Sudoku Solver’s Robot, et un détecteur de masques en temps réel.
PyTorch est une librairie open source d’apprentissage machine développée par le groupe de recherche en intelligence artificielle de Facebook. Elle est basée sur la librairie Torch et fournit une API de bas niveau qui permet aux utilisateurs de personnaliser les couches et d’optimiser les tâches. Elle offre une syntaxe de type Python, l’entraînement distribué, des capacités de débogage et supporte le graphe de calcul dynamique**. Toutefois, elle nécessite des logiciels tiers pour la visualisation et des API pour la mise en production. Elle est privilégiée là où un calcul homogène unique n’est pas nécessaire, comme en traitement du langage naturel (NLP), où la longueur des mots et documents varie. Aujourd’hui, de grandes entreprises utilisent PyTorch : Microsoft pour le service de modélisation du langage, Airbnb pour améliorer l’expérience client, Genentech pour la découverte de médicaments et les thérapies contre le cancer, Toyota Research Institute pour ajouter des fonctionnalités d’aide à la conduite. En savoir plus ici.
Caffe (Convolutional Architecture for Fast Feature Embedding) est un cadre open source d’apprentissage profond initialement développé à l’Université de Californie. Il supporte plusieurs types de modèles d’apprentissage profond comme les CNN (réseaux neuronaux convolutionnels), RCNN (réseaux neuronaux convolutionnels régionaux) et les réseaux complètement connectés, ce qui facilite la classification et la segmentation d’images. Aujourd’hui, il est utilisé dans des projets de recherche universitaire, des prototypes de démarrage et même des applications industrielles à grande échelle comme la vision, la parole et le multimédia.
Caffe2 a été lancé par Facebook en 2017, avec l’ajout de nouvelles fonctionnalités à Caffe comme les réseaux neuronaux récurrents (RNN), la flexibilité, l’entraînement distribué à grande échelle et le support pour le déploiement mobile. En 2018, il a été fusionné à PyTorch pour créer PyTorch 1.0, adapté à la fois à la recherche et à la production. Il convient particulièrement aux applications de classification d’images et de détection d’objets à grande échelle.
Open Neural Network Exchange (ONNX) est un écosystème open source d’IA introduit par Facebook en collaboration avec Microsoft en 2017, et plus tard soutenu par IBM, Huawei, Intel, AMD, ARM et Qualcomm. Il s’agit d’un format standard ouvert pour représenter les modèles d’apprentissage machine, permettant aux développeurs de passer d’un cadre à un autre. Plus d’information est disponible sur GitHub.
* Dans un cadre statique, c’est-à-dire TensorFlow, le graphe est créé au tout début de l’entraînement et, pour chaque exemple, les données y sont introduites puis les calculs et la rétropropagation sont effectués. Mais la structure du graphe ne change jamais. Cette méthode est utile pour la classification d’images, où la taille des images est fixe.
** Dans un cadre dynamique, c’est-à-dire PyTorch, le graphe est créé pour chaque mini-lot de données, suivi du calcul des résultats et de la rétropropagation si entraînement. Cette méthode est utile en NLP, où les mots et documents n’ont pas tous la même longueur.
Pour savoir comment installer les cadres d’apprentissage profond, cliquez ici.