LMi-MAG14 juillet - Flipbook - Page 61
utilise Python ou JavaScript pour fournir une API frontend pratique à utiliser pour bâtir des applications, ces
dernières s’exécutant en C++ haute performance.
TensorFlow, qui vient concurrencer des frameworks tels
que PyTorch et Apache MXNet, peut entraîner et exécuter
des réseaux neuronaux profonds pour la classification
de caractères manuscrits, la reconnaissance d’images,
le plongement lexical (word embedding), les réseaux
neuronaux récurrents, modèles séquences à séquences
(seq2seq) pour la traduction automatique, le traitement
du langage naturel et les systèmes d’équation à dérivées
partielles (EDP). Mieux encore, TensorFlow supporte
les prévisions en production à grande échelle, avec les
mêmes modèles qui ont été utilisés pour l’entraînement.
Le framework dispose aussi d’une large bibliothèques de
modèles préentraînés qui peuvent être utilisés dans les
projets. On peut aussi se référer au code fourni dans le
TensorFlow Model Garden comme exemple de bonnes
pratiques pour entraîner ses propres modèles.
Comment fonctionne TensorFlow
TensorFlow permet aux développeurs de créer des
graphes de flux de données (dataflow graphs), structures qui décrivent comment les données circulent au
sein d’un graphe ou d’un ensemble de noeuds de traitement. Chaque nœud du graphe représente une opération mathématique et chaque connexion ou arête entre
les nœuds est un tableau de données multidimensionnel
ou tensor. Les applications TensorFlow s’exécutent sur
tout type de cible : une machine locale, un cluster dans le
cloud, des terminaux iOS et Android, sur des CPU ou des
GPU. Lorsqu’on recourt aux services clouds de Google on
peut bénéficier d’une accélération plus importante en
exécutant TensorFlow sur ses processeurs spécialisés,
les TPU (TensorFlow Processing Unit). Les modèles créés
par TensorFlow peuvent être déployés sur la plupart des
équipements où ils seront utilisés pour faire des prédictions.
La version 2.0 du framework a été livrée en octobre
2019. Sur de nombreux points, les remaniements qu’elle
a apportés ont pris en compte les commentaires des utilisateurs, qui souhaitaient plus de facilité d’utilisation
(par exemple, en se servant de l’API Keras, relativement
simple, pour entraîner les modèles) et également plus
de performances. L’entraînement distribué des modèles
s’exécute plus facilement grâce à une nouvelle API et le
support de TensorFlow Lite étend le nombre de plateformes sur lesquelles on peut déployer des modèles.
Toutefois, pour tirer le meilleur parti des nouvelles fonctionnalités de TensorFlow 2.0, il faut réécrire le code
créé pour les versions antérieures du framework, parfois légèrement, d’autres fois de façon significative. Un
modèle entraîné peut être utilisé pour fournir des prédictions « as a service » via un container Docker utilisant
des API Rest ou gRPC. Pour des scénarios de service de
prédictions plus avancés, on peut recourir à Kubernetes.
Utiliser TensorFlow avec Python
Toutes ces capacités sont fournies au programmeurs par
le biais du langage Python. Facile à apprendre et à utiliser, ce dernier offre des moyens pratiques d’exprimer la
façon dont les abstractions de haut niveau peuvent être
couplées entre elles. TensorFlow est supporté par les
versions 3.7 à 3.10 du langage. Le framework peut aussi fonctionner sur des versions antérieures de Python
mais cela n’est pas garanti. Les nœuds et tenseurs dans
TensorFlow sont des objets Python et les applications
TensorFlow sont elles-mêmes des applications Python.
Les opérations mathématiques proprement dites ne sont
toutefois pas effectuées en Python. Les bibliothèques
de transformations disponibles dans TensorFlow sont
écrites sous forme de binaires C++ très performants.
Python se contente de diriger le trafic entre les éléments
et de fournir des abstractions de programmation de haut
niveau pour les relier. [Lire l’intégralité de l’article sur
lemondeinformatique.fr]
APPROFONDIR
ÉCOUTER EN LIGNE
Podcast
cutt.ly/podcast-Tensorflow
LIRE EN LIGNE
Article
cutt.ly/article-Tensorflow
61