©TensorFlow

An end-to-end open source machine learning platform

Revivez l'Apér'Ops #17 comme si vous y étiez ...

Retour d'expériences des consultants Elosi (Février 2019)

Odoo • Image et Texte

©TensorFlow

TensorFlow est une bibliothèque open source de Machine Learning, créée par Google, permettant de développer et d’exécuter des applications de Machine Learning et de Deep Learning. Découvrez tout ce que vous devez savoir à son sujet.

Le Machine Learning est une technologie qui peut s’avérer extrêmement utile pour de nombreux cas d’usage, mais qui s’avère malheureusement complexe à manipuler. L’acquisition de données, l’entraînement de modèles, de déploiement de réseaux de neurones requièrent à l’origine d’importantes compétences techniques.

Cependant, grâce aux différents frameworks de Machine Learning, l’accès à cette technologie s’est beaucoup simplifié au fil des années. Parmi ces frameworks, on compte notamment PyTorch, CNTK, MXNet, et Google Tensorflow.

Qu'est-ce que c'est ©TensorFlow ?

Créé par l’équipe Google Brain en 2011, sous la forme d’un système propriétaire dédié au réseaux de neurones de Deep Learning, TensorFlow s’appelait à l’origine DistBelief. Par la suite, le code source de DistBelief a été modifié et cet outil est devenu une bibliothèque basée application. En 2015, il a été renommé TensorFlow et Google l’a rendu open source. Depuis lors, il a subi plus de 21000 modifications par la communication et est passé en version 1.0 en février 2017.

Pour faire simple, TensorFlow est une bibliothèque de Machine Learning, il s’agit d’une boîte à outils permettant de résoudre des problèmes mathématiques extrêmement complexes avec aisance. Elle permet aux chercheurs de développer des architectures d’apprentissage expérimentales et de les transformer en logiciels.

On peut le concevoir comme un système de programmation dans lequel les calculs sont représentés sous forme de graphiques. Les noeuds du graphique représentent les opérations mathématiques, et les bordures représentent des flèches de données multidimensionnelles communiquées entre elles : les tensors.

TensorFlow regroupe un grand nombre de modèles et d’algorithmes de Machine Learning et de Deep Learning. Son API front-end de développement d’applications repose sur le langage de programmation Python, tandis que l’exécution de ces applications s’effectue en C++ haute-performance.

Cette bibliothèque permet notamment d’entraîner et d’exécuter des réseaux de neurones pour la classification de chiffres écrits à la main, la reconnaissance d’image, les plongements de mots, les réseaux de neurones récurrents, les modèles sequence-to-sequence pour la traduction automatique, ou encore le traitement naturel du langage.

Odoo • Texte et Image
Odoo • Image et Texte

Comment ©TensorFlow fonctionne ?

TensorFlow permet aux développeurs de créer des graphiques de dataflow (dataflow graphs), à savoir des structures qui décrivent la façon dont les données se déplacent sur un graphique ou une série de noeuds de traitement.

Chaque noeud du graphique représente une opération mathématique, et chaque connexion entre ces noeuds est une flèche de données multidimensionnelle : un tensor.

Les noeuds et les tensors sont des objets Python, et les applications TensorFlow sont elles-mêmes des applications Python. Cependant, les opérations mathématiques en elles-mêmes ne sont pas effectuées en Python. Les bibliothèques de transformation disponibles sur TensorFlow sont écrites en C++ haute-performance. Ainsi, le Python se contente de diriger le trafic entre les éléments et fournit des abstractions de programmation de haut niveau pour les connecter entre eux.

Les applications TensorFlow peuvent être exécutées sur une machine locale, un cluster sur le Cloud, des appareils mobiles iOS ou Android, ou même des CPU et des GPU. Sur la Google Cloud Platform, il est possible d’exécuter TensorFlow sur la TPU (TensorFlow Processing Unit) pour profiter d’une importante accélération.

Les Avantages de ©TensorFlow

Les avantages de TensorFlow sont multiples. Tout d’abord, grâce à l’abstraction, ce framework facilite l’implémentation d’algorithmes et permet au développeur de se focaliser sur la logique générale d’une application.

En outre, le mode  » eager execution «  permet d’évaluer et de modifier toutes les opérations de graph de façon séparée et transparente plutôt que d’avoir à construire l’intégralité du graphique en tant qu’objet opaque unique et de tout évaluer en une fois. De même, la suite de visualisation TensorBoard permet d’inspecter la façon dont les graphiques fonctionnent par le biais d’un tableau de bord interactif basé web.

En outre, grâce au soutien de Google, le déploiement et l’utilisation de TensorFlow sont facilités. En plus du TPU proposé sur Google Cloud pour accélérer les performances, le géant californien propose aussi un hub online permettant de partager les modèles créés avec TensorFlow ainsi que des versions mobiles et web du framework. Un autre avantage est son caractère open source, personnalisable, et modulaire.

Parmi ses inconvénients, on peut citer le fait qu’un même modèle entraîné sur deux systèmes différents présentera parfois des variations même si les données avec lesquelles il a été nourri sont exactement les mêmes. En outre, TensorFlow ne prend pas en charge OpenCL. Enfin, il requiert des connaissances en calculus avancé et en algèbre linéaire ainsi qu’une importante compréhension du Machine Learning.

Odoo • Texte et Image