bibliothèque logicielle pour l'apprentissage automatique et l'intelligence artificielle . Elle peut être utilisée pour diverses tâches, mais principalement pour l'entraînement et l'inférence des réseaux de neurones . C'est l'un des frameworks d'apprentissage profond les plus populaires , aux côtés d'autres comme PyTorch . C'est un logiciel libre et open source distribué sous la licence Apache 2.0 .
Il a été développé par l' équipe Google Brain pour un usage interne chez Google , à des fins de recherche et de production. La version initiale a été publiée sous licence Apache 2.0 en 2015. Google a publié une version mise à jour, TensorFlow 2.0, en septembre 2019.
TensorFlow peut être utilisé dans une grande variété de langages de programmation, notamment Python , JavaScript , C++ et Java , facilitant son utilisation dans une gamme d'applications dans de nombreux secteurs.
d'apprentissage automatique propriétaire basé sur des réseaux neuronaux profonds . Son utilisation s'est rapidement répandue au sein de diverses sociétés d'Alphabet , tant pour la recherche que pour des applications commerciales. Google a affecté plusieurs informaticiens, dont Jeff Dean , à la simplification et à la refonte du code source de DistBelief afin de créer une bibliothèque applicative plus rapide et plus robuste : TensorFlow. En 2009, l'équipe, dirigée par Geoffrey Hinton , avait implémenté la rétropropagation généralisée et d'autres améliorations, permettant ainsi la génération de réseaux neuronaux d'une précision nettement supérieure, avec par exemple une réduction de 25 % des erreurs de reconnaissance vocale .TensorFlow
TensorFlow est le système de deuxième génération de Google Brain. La version 1.0.0 a été publiée le 11 février 2017. Alors que l' implémentation de référence s'exécute sur un seul appareil, TensorFlow peut fonctionner sur plusieurs processeurs (CPU ) et processeurs graphiques ( GPU ) (avec les extensions CUDA et SYCL optionnelles pour le calcul à usage général sur les unités de traitement graphique ). TensorFlow est disponible sur les systèmes Linux 64 bits , macOS , Windows et les plateformes mobiles, notamment Android et iOS .
Son architecture flexible permet un déploiement facile des calculs sur une variété de plateformes (CPU, GPU, TPU ), et des ordinateurs de bureau aux clusters de serveurs en passant par les appareils mobiles et périphériques .
Les calculs TensorFlow sont exprimés sous forme de graphes de flux de données avec état . Le nom TensorFlow provient des opérations que ces réseaux neuronaux effectuent sur des tableaux de données multidimensionnels, appelés tenseurs . Lors de la conférence Google I/O en juin 2016, Jeff Dean a indiqué que sur 1 500 dépôts GitHub mentionnaient TensorFlow, dont seulement 5 provenaient de Google.
En mars 2018, Google a annoncé la version 1.0 de TensorFlow.js pour l'apprentissage automatique en JavaScript .
En janvier 2019, Google a annoncé TensorFlow 2.0. Il est devenu officiellement disponible en septembre 2019.
En mai 2019, Google a annoncé TensorFlow Graphics pour l'apprentissage profond dans le domaine de l'infographie.
Unité de traitement tensoriel (TPU)
En mai 2017, Google a annoncé la deuxième génération, ainsi que la disponibilité des TPU dans Google Compute Engine . Les TPU de deuxième génération offrent jusqu'à 180 téraflops de performance et, lorsqu'ils sont organisés en clusters de 64 TPU, fournissent jusqu'à 11,5 pétaflops .téraflops et une mémoire à large bande passante (HBM) de 128 Go . Les pods Cloud TPU v3 offrent une puissance de calcul supérieure à 100 pétaflops et une mémoire HBM de 32 To.
En février 2018, Google a annoncé qu'ils rendaient les TPU disponibles en version bêta sur la plateforme Google Cloud .
Bordure TPU
En juillet 2018, l'Edge TPU a été annoncé. L'Edge TPU est une puce ASIC spécialement conçue par Google pour exécuter des modèles d'apprentissage automatique TensorFlow Lite (ML) sur de petits appareils informatiques clients tels que les smartphones connus sous le nom de edge computing .
TensorFlow Lite
En mai 2017, Google a annoncé TensorFlow Lite, une pile logicielle destinée à prendre en charge les modèles d'apprentissage automatique pour les appareils mobiles et embarqués, et a fourni une préversion pour les développeurs en novembre 2017. En janvier 2019, l'équipe TensorFlow a publié une préversion pour les développeurs du moteur d'inférence GPU mobile avec des shaders de calcul OpenGL ES 3.1 sur les appareils Android et des shaders de calcul Metal sur les appareils iOS. En mai 2019, Google a annoncé la fusion de TensorFlow Lite Micro (également connu sous le nom de TensorFlow Lite pour microcontrôleurs) et d'uTensor d'ARM . Cette solution a été renommée LiteRT en 2024.
TensorFlow 2.0
Alors que la part de marché de TensorFlow dans les publications scientifiques diminuait au profit de PyTorch [ équipe TensorFlow a annoncé la sortie d'une nouvelle version majeure de la bibliothèque en septembre 2019. TensorFlow 2.0 a introduit de nombreux changements, le plus important étant TensorFlow eager, qui a remplacé le schéma de différentiation automatique basé sur un graphe de calcul statique par le schéma « Define-by-Run », popularisé initialement par Chainer puis par PyTorch . Parmi les autres changements majeurs, on peut citer la suppression des anciennes bibliothèques, la compatibilité entre les modèles entraînés sur différentes versions de TensorFlow et des améliorations significatives des performances sur GPU
Caractéristiques
Autodifférenciation
L'autodifférentiation est le processus de calcul automatique du vecteur gradient d'un modèle par rapport à chacun de ses paramètres. Grâce à cette fonctionnalité, TensorFlow peut calculer automatiquement les gradients des paramètres d'un modèle, ce qui est utile pour des algorithmes tels que la rétropropagation qui nécessitent des gradients pour optimiser leurs performances. Pour ce faire, le framework doit conserver la trace de l'ordre des opérations effectuées sur les tenseurs d'entrée d'un modèle, puis calculer les gradients par rapport aux paramètres appropriés.
Exécution enthousiaste
TensorFlow inclut un mode d'« exécution immédiate », ce qui signifie que les opérations sont évaluées instantanément, au lieu d'être ajoutées à un graphe de calcul exécuté ultérieurement. Le code exécuté de manière immédiate peut être examiné pas à pas à l'aide d'un débogueur, car les données sont ajoutées à chaque ligne de code et non ultérieurement dans un graphe de calcul. Ce paradigme d'exécution est considéré comme plus facile à déboguer en raison de sa transparence pas à pas.
Distribuer
Que ce soit en mode d'exécution immédiate ou sur graphe, TensorFlow fournit une API permettant de répartir les calculs sur plusieurs appareils selon différentes stratégies de distribution. Ce calcul distribué peut souvent accélérer l'exécution de l'entraînement et de l'évaluation des modèles TensorFlow et constitue une pratique courante dans le domaine de l'IA.
Pertes
Pour entraîner et évaluer des modèles, TensorFlow fournit un ensemble de fonctions de perte (également appelées fonctions de coût ). Parmi les exemples courants, on peut citer l'erreur quadratique moyenne (MSE) et l'entropie croisée binaire (BCE).
Métrique
Afin d'évaluer les performances des modèles d'apprentissage automatique, TensorFlow fournit un accès API aux métriques couramment utilisées. Il s'agit notamment de diverses métriques de précision (binaire, catégorielle, catégorielle éparse) ainsi que d'autres métriques telles que la précision, le rappel et l'intersection sur l'union (IoU).
TF.nn
TensorFlow.nn est un module permettant d'exécuter des opérations de base sur les réseaux de neurones . Parmi ces opérations figurent des variantes de convolutions (1D/2D/3D, à trous, par profondeur), des fonctions d'activation ( Softmax , Relu , GELU, Sigmoïde , etc.) et leurs variantes, ainsi que d'autres opérations ( max-pooling , ajout de biais, etc.).
Optimiseurs
TensorFlow propose un ensemble d'optimiseurs pour l'entraînement des réseaux de neurones, notamment ADAM , ADAGRAD et la descente de gradient stochastique (SGD). Lors de l'entraînement d'un modèle, différents optimiseurs offrent différents modes de réglage des paramètres, ce qui affecte souvent la convergence et les performances du modèle.
Utilisation et extensions
TensorFlow
TensorFlow constitue une plateforme et une bibliothèque essentielles pour l'apprentissage automatique. Ses API utilisent Keras pour permettre aux utilisateurs de créer leurs propres modèles d'apprentissage automatique. Outre la création et l'entraînement du modèle, TensorFlow peut également faciliter le chargement des données d'entraînement et le déploiement du modèle via TensorFlow Serving.
TensorFlow fournit une interface de programmation ( API ) Python stable , ainsi que des API sans garantie de rétrocompatibilité pour ] tierces sont également C # , Haskell [ 54 ] 56 ] Pascal [ R [ Scala [ Rust [ OCaml [ Crystal [ 62 Les bibliothèques ] Swift sont désormais archivées prises
TensorFlow.js
TensorFlow propose également une bibliothèque pour l'apprentissage automatique en JavaScript. Grâce aux API JavaScript fournies , TensorFlow.js permet aux utilisateurs d'utiliser des modèles Tensorflow.js ou des modèles convertis depuis TensorFlow ou TFLite, de réentraîner ces modèles et de les exécuter sur le Web.
Littérature
LiteRT, anciennement connu sous le nom de TensorFlow Lite, propose des API permettant aux applications mobiles ou aux systèmes embarqués de générer et de déployer des modèles TensorFlow. Ces modèles sont compressés et optimisés afin d'être plus efficaces et d'offrir de meilleures performances sur les appareils à capacité réduite.
LiteRT utilise FlatBuffers comme format de sérialisation des données pour les modèles de réseau, évitant ainsi le format Protocol Buffers utilisé par les modèles TensorFlow standard.
TFX
TensorFlow Extended (TFX) fournit de nombreux composants permettant d'effectuer toutes les opérations nécessaires à la production de bout en bout. Ces composants incluent le chargement, la validation et la transformation des données, le réglage, l'entraînement et l'évaluation du modèle d'apprentissage automatique, ainsi que le déploiement du modèle en production.
Intégrations
Numpy
NumPy est l'une des bibliothèques de données Python les plus populaires , et TensorFlow offre une intégration et une compatibilité avec ses structures de données. Les N-Tableaux NumPy, le type de données natif de la bibliothèque, sont automatiquement convertis en tenseurs TensorFlow lors des opérations TF ; la réciproque est également vraie. Cela permet aux deux bibliothèques de fonctionner de concert sans que l'utilisateur ait à écrire de conversions de données explicites. De plus, l'intégration s'étend à l'optimisation de la mémoire en faisant partager aux tenseurs TF les représentations en mémoire sous-jacentes des N-Tableaux NumPy chaque fois que cela est possible.
Extensions
TensorFlow propose également diverses bibliothèques et extensions pour faire évoluer et étendre les modèles et méthodes utilisés. Par exemple, TensorFlow Recommenders et TensorFlow Graphics sont des bibliothèques dédiées à leurs fonctionnalités respectives. Parmi les autres modules complémentaires, bibliothèques et frameworks , on trouve TensorFlow Model Optimization, TensorFlow Probability, TensorFlow Quantum et TensorFlow Decision Forests.
Google Colab
Google a également lancé Collaboratory , un environnement de notebook Jupyter TensorFlow qui ne nécessite aucune configuration. Il fonctionne sur Google Cloud et permet aux utilisateurs d'accéder gratuitement aux GPU et de stocker et partager des notebooks sur Google Drive .
Google JAX
- grad : différentiation automatique
- jit : compilation
- vmap : auto-vectorisation
- pmap : programmation SPMD
Applications
Médical
GE Healthcare a utilisé TensorFlow pour améliorer la vitesse et la précision des IRM dans l'identification de parties spécifiques du corps. Google a utilisé TensorFlow pour créer DermAssist, une application mobile gratuite permettant aux utilisateurs de prendre des photos de leur peau et d'identifier d'éventuelles complications de santé. Sinovation Ventures a utilisé TensorFlow pour identifier et classifier les maladies oculaires à partir de scans de tomographie par cohérence optique (OCT).
Réseaux sociaux
Twitter a implémenté TensorFlow pour classer les tweets par ordre d'importance pour un utilisateur donné et a modifié sa plateforme afin d'afficher les tweets selon ce classement. Auparavant, les tweets étaient simplement affichés par ordre chronologique inverse. L'application de partage de photos VSCO a utilisé TensorFlow pour suggérer des filtres personnalisés pour les photos.
Moteur de recherche
Google a officiellement lancé RankBrain le 26 octobre 2015, basé sur TensorFlow.
Éducation
InSpace, une plateforme d'apprentissage virtuel, a utilisé TensorFlow pour filtrer les messages de chat toxiques dans les salles de classe. Liulishuo, une plateforme d'apprentissage de l'anglais en ligne, a utilisé TensorFlow pour créer un programme adaptatif pour chaque étudiant. TensorFlow a été utilisé pour évaluer les compétences actuelles des étudiants et a également aidé à décider quel contenu afficher en fonction de ces compétences.
Vente au détail
La plateforme de commerce électronique Carousell a utilisé TensorFlow pour fournir des recommandations personnalisées à ses clients. La société de cosmétiques ModiFace a utilisé TensorFlow pour créer une expérience de réalité augmentée permettant à ses clients de tester différentes teintes de maquillage sur leur visage.
Recherche
TensorFlow est la base du logiciel de légende d'images automatisé DeepDream .
Plus d articles de Worldlex Wiki
Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.
Explorer l index