TensorFlow est une bibliothèque open source de machine learning. Elle a été créée par Google pour permettre de développer et d’exécuter des applications de machine et de deep learning. Découvrez tout ce qu’il y a à savoir sur cette bibliothèque dans cet article.
Le TensorFlow en bref
Pour mieux comprendre ce qu’est TensorFlow, il est primordial de parler un peu du machine learning. Cette technologie est d’une grande utilité, et pourtant, elle reste difficile à manipuler. En effet, le déploiement de neurones, l’entraînement de modèles ou encore l’acquisition de nouvelles données nécessitent des compétences techniques particulières. Il existe des frameworks de machine learning qui facilitent l’accès à cette technologie. Google TensorFlow en est un, au même titre que PyTorch, MXNet ou encore CNTK.
TensorFlow : les origines
TensorFlow a été créé en 2011 par l’équipe Google Brain. Il s’agissait alors d’un système propriétaire à destination des réseaux de neuronaux du Deep Learning . Il s’appelait alors DistBelief. Le code source a été modifié, et l’outil est devenu une bibliothèque basée d’application. Ce n’est qu’en 2015 qu’il a été renommé TensorFlow et qu’il est devenu open source. Depuis, il a subi plus de 200 000 modifications.
TensorFlow, une bibliothèque de machine learning
TensorFlow est reconnu comme une bibliothèque learning, mais en réalité, qu’est-ce que cela signifie ? Il regroupe en effet des modèles d’algorithmes de machine learning et de deep learning. Le langage de programmation Python est utilisé à travers son API front-end de développement d’application. Le langage C++ avec sa haute performance est employé pour l’exécution des applications.
TensorFlow peut être assimilé à une boîte à outils conçue pour résoudre aisément des problèmes mathématiques complexes. Elle aide les chercheurs à mettre en place des architectures d’apprentissage expérimentales avant de les transformer en logiciel.
Il s’agit en quelque sorte d’un système de programmation où des graphiques représentent des calculs. Chaque nœud du graphique correspond à une opération mathématique. Les bordures, elles, font référence aux données multidimensionnelles que les tensors communiquent entre elles.
À quoi sert TensorFlow ?
TensorFlow est un outil aux multiples fonctionnalités. II permet notamment d’entraîner et d’exécuter des réseaux de neurones. Ces réseaux neuronaux peuvent être utilisés pour classifier des chiffres écrits à la main, mais aussi pour la reconnaissance d’images, etc. TensorFlow, joue ainsi un rôle dans la création de modèles sequence-to-sequence pour le traitement naturel du langage ou la traduction automatique.
Le fonctionnement de TensorFlow
TensorFLow est un outil permettant aux développeurs de créer des graphiques de dataflow. Il s’agit de structures qui décrivent le déplacement des données sur un graphique ou des nœuds de traitement. Comme nous l’avons déjà évoqué plus haut, chaque nœud du graphique correspond à une opération. Les connexions entre les nœuds représentent une flèche de données multidimensionnelle qu’on appelle tensor.
Les nœuds et les tensors, tout comme les applications TensorFlow, sont effectués en Python. Toutefois, les opérations mathématiques ne sont pas réalisées en Python. En effet, les bibliothèques de transformation de TensorFlow sont écrites en C++ haute performance. Python dirige le trafic des différents éléments et se contente de fournir des abstractions de programmation de haut-niveau pour favoriser la connexion entre ces éléments.
Les applications TensorFlow peuvent être exécutées de multiples manières :
- Sur une machine locale ;
- sur un cluster sur le cloud ;
- via des appareils mobiles Android ou iOS ;
- sur des CPU et des GPU ;
- sur la TPU (TensorFlow Processing Unit) de Google Cloud Platform.
Les avantages de TensorFlow
Le framework TensorFlow présente de multiples avantages. Grâce à l’abstraction, l’implémentation d’algorithmes est simplifiée. Il est ainsi possible pour le développeur de se consacrer à la logique générale de l’application.
TensorFlow possède une fonction “eager execution” qui facilite l’évaluation et la modification des opérations de graphes. En effet, cette évaluation et modification peuvent se faire séparément, de manière transparente. Il n’est plus nécessaire de construire tout le graphique comme un objet opaque unique qu’il faudrait évaluer en une fois. La suite de visualisation TensorBoard met à disposition un tableau de bord interactif basé web. Cela permet de vérifier le fonctionnement des graphiques.
Le déploiement et l’utilisation générale de TensorFlow sont relativement facilités par le soutien de Google. Tout d’abord, il a le TPU proposé sur Google cloud, qui accélère considérablement les performances de l’outil. Google met également à disposition des utilisateurs de TensorFlow un hub online. Les développeurs peuvent y partager les modèles créés avec le framework et leurs versions mobiles et web.
Le dernier avantage de TensorFlow réside dans son caractère open source. Il est entièrement personnalisable et modulable en fonction des besoins de son utilisateur.
Pour résumer, voici les avantages de TensorFlow :
- Il facilite les implémentations des algorithmes ;
- il permet la modification et l’évaluation séparée des graphiques ;
- Un tableau de bord interactif facilite la vérification des graphiques :
- Google facilite son déploiement et son utilisation.
Les inconvénients de TensorFlow
Aucun outil de développement n’est infaillible. L’utilisation de TensorFlow présente ainsi quelques inconvénients qu’il convient de souligner. Tout d’abord, il y a certains langages de programmation que TensorFlow peut ne pas prendre en charge. C’est le cas d’OpenCL ou Open Computing Language. Il s’agit d’une combinaison d’une API et d’un langage de programmation dérivé du C.
Les inconvénients de TensorFLow ne s’arrêtent pas là. On peut aussi citer le fait que des variations peuvent apparaître sur un modèle entraîné sur deux systèmes différents. En effet, même si le modèle est alimenté par les mêmes données, quelques variations peuvent toujours apparaître. Enfin, TensorFlow n’est pas à la portée de n’importe qui. Pour l’utiliser, il est nécessaire de bien comprendre le machine learning. Il est aussi indispensable d’avoir des connaissances en algèbre linéaire et en calcul avancé.
Vous souhaitez vous former au Big Data ? Retrouvez les formations Data Full Stack et Data Analyst qui vous forment aux métiers de Data Analyst, Data Scientist, Data Engineer et AI Scientist.
Merci pour votre lecture ! Si vous souhaitez lire nos prochains articles autour de la Data et de l’IA, vous pouvez nous suivre sur Facebook, LinkedIn et Twitter pour être notifié lorsqu’un nouvel article est publié !