# TensorFlow

TensorFlow est un outil open source d'apprentissage automatique développé par Google. Le code source a été ouvert le 9 novembre 2015 par Google et publié sous licence Apache.
Il est fondé sur l'infrastructure DistBelief, initiée par Google en 2011, et est doté d'une interface pour Python, Julia, R et C++.
TensorFlow est l'un des outils les plus utilisés en IA dans le domaine de l'apprentissage machine.

## Histoire
### DistBelief

À partir de 2011, Google Brain a développé un outil propriétaire d'apprentissage automatique fondé sur l'apprentissage profond. Son utilisation a augmenté rapidement à travers les différentes filiales d'Alphabet autant dans le milieu commercial que dans la recherche$^,$. Google a assigné de nombreux ingénieurs informaticiens, dont Jeffrey Dean, pour simplifier et réordonner le code de DistBelief en une bibliothèque logicielle plus rapide et plus solide qui est devenue TensorFlow. En 2009, l'équipe, dirigée par Geoffrey Hinton, avait implémenté la rétropropagation du gradient généralisée et d'autres améliorations qui ont permis la création de réseaux neuronaux ayant une précision considérablement meilleure. Par exemple, une réduction de 25 % d'erreur dans la reconnaissance automatique de la parole a été obtenue.

### TensorFlow

TensorFlow est la deuxième génération du système de Google Brain. La version 1.0.0 est sortie le 11 février 2017 Alors que l'implémentation de référence tourne sur un seul appareil, TensorFlow peut être lancé sur plusieurs CPU et GPU (avec des extensions optionnelles telles que CUDA ou SYCL (en) pour GPGPU). TensorFlow est disponible en version 64-bits pour Linux, macOS, Windows et pour les plateformes mobiles sur Android et iOS.
Son architecture flexible permet le développement sur plusieurs variétés de plateformes (CPU, GPU, TPU), allant du PC de bureaux à des clusters de serveurs et des mobiles aux dispositifs de bords.
En juin 2016, Jeff Dean a mentionné que 1 500 dépôts github mentionnaient TensorFlow, dont seulement cinq étaient de Google.

### TensorFlow lite

En mai 2017, Google a annoncé qu'une couche logicielle spécifique serait créée pour le développement sur Android, TensorFlow Lite, à partir d'Android Oreo. Il existe une version orientée vers les microcontrôleurs (anglais : Tensorflow lite for microcontrollers) et a notamment été porté sur la plateforme ARM Cortex-M et ESP32.

## Utilisations
### RankBrain

Le 26 octobre 2015, Google a officiellement sorti RankBrain, adossé à TensorFlow.

### Le Pentagone

Le 6 mars 2018, le site américain Gizmodo a révélé l’existence d’un partenariat entre l’entreprise Google et le Pentagone, destiné à aider ce dernier à analyser des images de drones par l'usage de TensorFlow, sans pouvoir donner plus d'indications sur l'implication de l'entreprise. Google a déclaré : « La technologie labellise des images qui seront analysées par des humains et ne sert qu’à un usage non offensif »$^,$.

### DeepDream

DeepDream se fonde en totalité sur l'architecture de TensorFlow pour la base algorithmique du logiciel.

## Fonctionnalités

TensorFlow fournit des API stables en Python et C. Des API sans rétro-compatibilité garantie en C++, Go, Java, JavaScript et Swift. Des packages faits par des tiers sont disponibles en C#$^,$, Haskell, Julia, R, Scala, Rust, Ocaml et Crystal.