Introduction à TensorFlow & Keras


Tensorflow logo

Nov 2017

TensorFlow est devenu en un temps record l’un des frameworks de référence pour le Deep Learning, utilisé aussi bien dans la recherche qu’en entreprise pour des applications en production. Au-delà de la hype présente autour de ce framework et des projets qui émergent grâce à ce dernier, il reste un gap non négligeable à atteindre afin de l’utiliser pleinement et efficacement.
Le but de cette série d’articles est d’aider le développeur à se familiariser avec TensorFlow via un cas d’application simple qui sera notre fil rouge. Nous montrerons quelles sont les briques essentielles pour créer, entraîner et utiliser différentes architectures de Réseaux de Neurones, et comment les optimiser pour se rendre compte qu’il n’y a pas besoin de tout ré-implémenter lorsque l’on veut modifier l’architecture du réseau de neurones.
Commençons dès maintenant par ce premier article introductif sur TensorFlow, son mode de fonctionnement ainsi que les principaux objets à manipuler. Nous rentrerons dans le vif du sujet dès le prochain article.
TensorFlow est un framework de programmation pour le calcul numérique qui a été rendu Open Source par Google en Novembre 2015. Depuis sa release, TensorFlow n’a cessé de gagner en popularité, pour devenir très rapidement l’un des frameworks les plus utilisés pour le Deep Learning, comme le montrent les dernières comparaisons suivantes, faites par François Chollet (auteur de la librairie Keras).

Quelles sont les raisons de cette popularité fracassante ? Elles sont nombreuses:
  • Multi-plateformes (Linux, Mac OS, et même Android et iOS !)
  • APIs en Python, C++, Java et Go (l’API Python est plus complète cependant, c’est sur celle-ci que nous allons travailler)
  • Temps de compilation très courts dû au backend en C/C++
  • Supporte les calculs sur CPU, GPU et même le calcul distribué sur cluster
  • Une documentation extrêmement bien fournie avec de nombreux exemples et tutoriels
  • Last but not least: Le fait que le framework vienne de Google et que ce dernier ait annoncé avoir migré la quasi totalité de ses projets liés au Deep Learning en TensorFlow est quelque peu rassurant
Bien qu’il ait initialement été développé pour optimiser les calculs numériques complexes, TensorFlow est aujourd’hui particulièrement utilisé pour le Deep Learning, et donc les réseaux de neurones. Son nom est notamment inspiré du fait que les opérations courantes sur des réseaux de neurones sont principalement faites via des tables de données multi-dimensionnelles, appelées Tenseurs (Tensor). Un Tensor à deux dimensions est l’équivalent d’une matrice.
Aujourd’hui, les principaux produits de Google sont basés sur TensorFlow: Gmail, Google Photos, Reconnaissance de voix, etc.


Comments