TensorFlow est un framework de Machine Learning créé par Google et disponible en open source. Découvrez tout ce que vous devez savoir à son sujet : histoire, fonctionnement, avantages, formations...
Le Machine Learning est une discipline complexe, mais il existe heureusement des outils simplifiant son implémentation. Parmi ces ressources, on compte le framework TensorFlow de Google.
Il s’agit d’une bibliothèque Open Source de calcul numérique et de Machine Learning compatible avec le langage Python. Elle simplifie le processus d’acquisition de données, d’entraînement des modèles de Machine Learning, de génération de prédictions et de raffinement des résultats futurs.
TensorFlow regroupe des modèles et des algorithmes de Machine Learning et de Deep Learning. Le langage Python offre une API front-end pratique et confortable pour créer des applications à l’aide de ce framework. Ces applications peuvent ensuite être exécutées en C++.
Il est possible de se servir de ce framework pour entraîner et exécuter des réseaux de neurones profonds pour la classification de chiffres manuscrits, pour la reconnaissance d’image, pour le plongement lexical, pour les réseaux de neurones récurrents, pour les modèles » sequence-to-sequence » de traduction automatique, pour le traitement naturel du langage, et pour les simulations basées sur les équations aux dérivées partielles.
L'histoire de TensorFlow
Comment ça fonctionne ?
Les développeurs peuvent créer des « dataflow graphs » (graphiques de dataflows). Il s’agit de structures permettant de décrire comment les données sont transférées par le biais de graphiques ou d’une série de noeuds de traitement.
Chaque noeud du graphique représente une opération mathématique. Chaque connexion entre les noeuds est un tableau de données multidimensionnel : un tensor.
L’interaction avec TensorFlow s’effectue par le biais du langage Python, à la fois simple à apprendre et à utiliser. Ce langage permet d’exprimer facilement comment les abstractions de haut-niveau peuvent être couplées ensemble.
Les noeuds et les tensors de TensorFlow sont des objets Python. Les applications TensorFlow, elles-mêmes, sont des applications Python.
Néanmoins, les opérations mathématiques en elles-mêmes ne sont pas effectuées en Python. Les bibliothèques de transformations accessibles via TensorFlow sont écrites sous forme de binaires C++ à haute performance. Le langage Python se contente de diriger le trafic entre les différentes pièces, et permet de les connecter entre elles par le biais d’abstractions de haut niveau.
Les applications TensorFlow peuvent être exécutées sur une machine locale, un cluster sur le Cloud, des smartphones et tablettes iOS ou Android, ou encore des CPU et des GPU. Sur son propre Cloud, Google propose d’exécuter TensorFlow sur ses puces TensorFlow Processing Unit (TPU) pour profiter d’une accélération accrue. Les modèles créés par TensorFlow peuvent ensuite être déployés sur n’importe quel appareil afin de délivrer des prédictions.
Avec TensorFlow 2.0, lancé en octobre 2019, le framework a subi une refonte en profondeur. Les modifications apportées sont basées sur les retours des utilisateurs.
Cette nouvelle version est plus performante et plus simple d’utilisation, notamment via l’usage de l’API Keras pour l’entraînement des modèles. Une nouvelle API simplifie l’entraînement distribué.
La compatibilité avec TensorFlow Lite permet de déployer des modèles sur une plus large variété de plateformes. Seul bémol : le code écrit pour les versions antérieures de TensorFlow doit être réécrit pour profiter pleinement des nouvelles fonctionnalités de TensorFlow 2.0.
Les avantages de TensorFlow
TensorFlow apporte de nombreux avantages pour le développement Machine Learning. L’un des principaux est l’abstraction.
Plutôt que d’avoir à s’attarder sur les détails liés à l’implémentation d’algorithmes ou à la connexion entre les fonctions, les développeurs peuvent se focaliser sur la logique générale de l’application. Le framework se charge des détails techniques.
Le débogage et l’inspection des applications sont également simplifiés. Par exemple, le mode » eager execution » permet d’évaluer et de modifier chaque opération d’un graphique séparément. Le graphique n’est donc pas un objet unique et opaque à évaluer entièrement. La suite de visualisation TensorBoard, quant à elle, permet d’inspecter la façon dont les graphiques sont exécutés par le biais d’un tableau de bord interactif basé sur le web.
En outre, le fait que Google soit derrière ce projet est un réel atout. Ceci a permis d’accélérer le développement, mais aussi de créer de nombreuses offres autour de TensorFlow simplifiant son déploiement et son utilisation.
On peut citer les puces TPU permettant des performances accrues sur le Google Cloud, mais aussi un hub online pour le partage de modèles créés avec le framework, ou encore les versions mobiles et web.
Les alternatives à TensorFlow
Il existe plusieurs alternatives à TensorFlow sur le marché des frameworks de Machine Learning. Parmi les plus populaires, on peut citer PyTorch, CNTK et MXNet.
PyTorch présente de nombreuses similitudes avec TensorFlow. Ce framework est basé sur le langage Python, et repose sur des composants accélérés via hardware. Il offre aussi un modèle de développement hautement interactif et de nombreux composants très utiles déjà inclus.
De manière générale, Pytorch est un meilleur choix pour le développement rapide de projets. En revanche, on lui préfère TensorFlow pour les projets plus larges et les flux de travail plus complexes.
CNTK est la suite d’outils de Microsoft Cognitive. Tout comme TensorFlow, elle utilise une structure graphique pour décrire les flux de données. Cependant, elle se focalise sur la création de réseaux de neurones Deep Learning.
De fait, CNTK peut gérer les tâches de réseaux de neurones plus rapidement. Elle offre aussi un ensemble d’APIs plus vaste : Python, C++, C#, Java… il est cependant plus difficile à maîtriser et à déployer que TensorFlow.
Enfin, Apache MXNet a été adopté par Amazon comme le principal framework de Deep Learning sur AWS. Il est possible de l’étendre de façon linéaire sur de multiples GPUs et machine. Ce framework est compatible avec une large variété d’APIs de langages de programmation : Python, C++, Scala, R, JavaScript, Julia, Perl, Go…
Comment apprendre à l'utiliser ?
Pour apprendre à utiliser TensorFlow, vous pouvez vous tourner vers notre formation de Machine Learning Engineer. Vous apprendrez à utiliser tous les principaux outils et techniques d’ingénieur en apprentissage automatique, et notamment le framework de Google.
Vous savez tout sur TensorFlow. Découvrez d’autres outils incontournables du Machine Learning, comme le planificateur de flux de travail Apache AirFlow et le service d’hébergement de code GitHub.