Exemples TensorFlow
Ce tutoriel a été conçu pour plonger facilement dans TensorFlow, à travers des exemples. Pour plus de lisibilité, il comprend à la fois des cahiers et des codes sources avec explication, pour TF v1 et v2.
Il convient aux débutants qui souhaitent trouver des exemples clairs et concis sur TensorFlow. Outre les implémentations traditionnelles « brutes » de TensorFlow, vous pouvez également trouver les dernières pratiques de l'API TensorFlow (telles que layers
, estimator
, dataset
, ...).
Mise à jour (16/05/2020) : Déplacement de tous les exemples par défaut vers TF2. Pour les exemples TF v1 : vérifiez ici.
Index du didacticiel
0 - Prérequis
- Introduction à l'apprentissage automatique.
- Introduction à l'ensemble de données MNIST.
1 - Introduction
- Bonjour tout le monde (carnet). Exemple très simple pour apprendre à imprimer "hello world" à l'aide de TensorFlow 2.0+.
- Opérations de base (ordinateur portable). Un exemple simple qui couvre les opérations de base de TensorFlow 2.0+.
2 - Modèles de base
- Régression linéaire (carnet). Implémentez une régression linéaire avec TensorFlow 2.0+.
- Régression logistique (carnet). Implémentez une régression logistique avec TensorFlow 2.0+.
- Word2Vec (Incorporation de mots) (ordinateur portable). Créez un modèle d'intégration de mots (Word2Vec) à partir de données Wikipédia, avec TensorFlow 2.0+.
- GBDT (Gradient Boosted Decision Trees) (ordinateurs portables). Implémentez un arbre de décision amélioré par gradient avec TensorFlow 2.0+ pour prédire la valeur d'une maison à l'aide de l'ensemble de données Boston Housing.
3 - Réseaux de neurones
Supervisé
- Réseau neuronal simple (ordinateur portable). Utilisez l'API « couches » et « modèle » de TensorFlow 2.0 pour créer un réseau neuronal simple permettant de classer l'ensemble de données de chiffres MNIST.
- Réseau neuronal simple (bas niveau) (ordinateur portable). Implémentation brute d'un réseau neuronal simple pour classer l'ensemble de données de chiffres MNIST.
- Réseau de neurones convolutifs (ordinateur portable). Utilisez l'API « couches » et « modèle » de TensorFlow 2.0+ pour créer un réseau neuronal convolutif afin de classer l'ensemble de données de chiffres MNIST.
- Réseau de neurones convolutifs (bas niveau) (ordinateur portable). Implémentation brute d'un réseau neuronal convolutif pour classer l'ensemble de données de chiffres MNIST.
- Réseau neuronal récurrent (LSTM) (ordinateur portable). Créez un réseau neuronal récurrent (LSTM) pour classer l'ensemble de données de chiffres MNIST, à l'aide des « couches » et de l'API « modèle » TensorFlow 2.0.
- Réseau neuronal récurrent bidirectionnel (LSTM) (ordinateur portable). Créez un réseau neuronal récurrent bidirectionnel (LSTM) pour classer l'ensemble de données de chiffres MNIST, à l'aide des « couches » et de l'API « modèle » de TensorFlow 2.0+.
- Réseau neuronal récurrent dynamique (LSTM) (ordinateur portable). Créez un réseau neuronal récurrent (LSTM) qui effectue des calculs dynamiques pour classer des séquences de longueur variable, à l'aide des « couches » et de l'API « modèle » de TensorFlow 2.0+.
Sans surveillance
- Encodeur automatique (ordinateur portable). Créez un encodeur automatique pour encoder une image dans une dimension inférieure et la reconstruire.
- DCGAN (Deep Convolutional Generative Adversarial Networks) (carnet). Créez un réseau contradictoire génératif à convolution profonde (DCGAN) pour générer des images à partir du bruit.
4 - Utilitaires
- Enregistrez et restaurez un modèle (notebook). Enregistrez et restaurez un modèle avec TensorFlow 2.0+.
- Créez des calques et des modules personnalisés (ordinateur portable). Apprenez à créer vos propres couches/modules et à les intégrer dans les modèles TensorFlow 2.0+.
- Tensorboard (carnet). Suivez et visualisez le graphique de calcul du réseau neuronal, les métriques, les pondérations et bien plus encore à l'aide du tensorboard TensorFlow 2.0+.
5 - Gestion des données
- Charger et analyser des données (ordinateur portable). Créez un pipeline de données efficace avec TensorFlow 2.0 (tableaux Numpy, images, fichiers CSV, données personnalisées, ...).
- Créez et chargez des TFRecords (ordinateur portable). Convertissez les données au format TFRecords et chargez-les avec TensorFlow 2.0+.
- Transformation d'image (c'est-à-dire augmentation d'image) (ordinateur portable). Appliquez diverses techniques d'augmentation d'image avec TensorFlow 2.0+ pour générer des images déformées pour l'entraînement.
6 - Matériel
- Formation multi-GPU (ordinateur portable). Entraînez un réseau neuronal convolutif avec plusieurs GPU sur l'ensemble de données CIFAR-10.
TensorFlow v1
L'index du didacticiel pour TF v1 est disponible ici : Exemples TensorFlow v1.15. Ou voir ci-dessous pour une liste des exemples.
Ensemble de données
Certains exemples nécessitent un ensemble de données MNIST pour la formation et les tests. Ne vous inquiétez pas, cet ensemble de données sera automatiquement téléchargé lors de l'exécution d'exemples. MNIST est une base de données de chiffres manuscrits, pour une description rapide de cet ensemble de données, vous pouvez consulter ce cahier.
Site officiel : http://yann.lecun.com/exdb/mnist/.
Installation
Pour télécharger tous les exemples, clonez simplement ce dépôt :
git clone https://github.com/aymericdamien/TensorFlow-Examples
Pour les exécuter, vous avez également besoin de la dernière version de TensorFlow. Pour l'installer :
ou (avec prise en charge GPU) :
pip install tensorflow_gpu
Pour plus de détails sur l'installation de TensorFlow, vous pouvez consulter le guide d'installation de TensorFlow
Exemples TensorFlow v1 – Index
L'index du didacticiel pour TF v1 est disponible ici : Exemples TensorFlow v1.15.
0 - Prérequis
- Introduction à l'apprentissage automatique.
- Introduction à l'ensemble de données MNIST.
1 - Introduction
- Bonjour tout le monde (carnet) (code). Exemple très simple pour apprendre à imprimer "hello world" en utilisant TensorFlow.
- Opérations de base (ordinateur portable) (code). Un exemple simple qui couvre les opérations de base de TensorFlow.
- Notions de base de l'API TensorFlow Eager (notebook) (code). Démarrez avec l'API Eager de TensorFlow.
2 - Modèles de base
- Régression linéaire (carnet) (code). Implémentez une régression linéaire avec TensorFlow.
- Régression linéaire (API impatiente) (ordinateur portable) (code). Implémentez une régression linéaire à l'aide de l'API Eager de TensorFlow.
- Régression logistique (carnet) (code). Implémentez une régression logistique avec TensorFlow.
- Régression logistique (API impatiente) (ordinateur portable) (code). Implémentez une régression logistique à l'aide de l'API Eager de TensorFlow.
- Voisin le plus proche (ordinateur portable) (code). Implémentez l'algorithme du voisin le plus proche avec TensorFlow.
- K-Means (carnet) (code). Créez un classificateur K-Means avec TensorFlow.
- Random Forest (carnet) (code). Créez un classificateur de forêt aléatoire avec TensorFlow.
- Arbre de décision boosté par gradient (GBDT) (carnet) (code). Créez un arbre de décision amélioré par gradient (GBDT) avec TensorFlow.
- Word2Vec (Word Embedding) (ordinateur portable) (code). Créez un modèle d'intégration de mots (Word2Vec) à partir de données Wikipédia, avec TensorFlow.
3 - Réseaux de neurones
Supervisé
- Réseau neuronal simple (ordinateur portable) (code). Créez un réseau neuronal simple (alias Perceptron multicouche) pour classer l'ensemble de données de chiffres MNIST. Implémentation brute de TensorFlow.
- Réseau neuronal simple (tf.layers/estimator api) (notebook) (code). Utilisez l'API « couches » et « estimateur » de TensorFlow pour créer un réseau neuronal simple (alias Perceptron multicouche) afin de classer l'ensemble de données de chiffres MNIST.
- Réseau neuronal simple (API enthousiaste) (ordinateur portable) (code). Utilisez l'API TensorFlow Eager pour créer un réseau neuronal simple (alias Perceptron multicouche) afin de classer l'ensemble de données de chiffres MNIST.
- Réseau de neurones convolutifs (ordinateur portable) (code). Créez un réseau neuronal convolutif pour classer l'ensemble de données de chiffres MNIST. Implémentation brute de TensorFlow.
- Réseau neuronal convolutif (tf.layers/estimator api) (notebook) (code). Utilisez les API « couches » et « estimateur » de TensorFlow pour créer un réseau neuronal convolutionnel afin de classer l'ensemble de données de chiffres MNIST.
- Réseau neuronal récurrent (LSTM) (ordinateur portable) (code). Créez un réseau neuronal récurrent (LSTM) pour classer l'ensemble de données de chiffres MNIST.
- Réseau neuronal récurrent bidirectionnel (LSTM) (ordinateur portable) (code). Créez un réseau neuronal récurrent bidirectionnel (LSTM) pour classer l'ensemble de données de chiffres MNIST.
- Réseau neuronal récurrent dynamique (LSTM) (ordinateur portable) (code). Créez un réseau neuronal récurrent (LSTM) qui effectue des calculs dynamiques pour classer des séquences de différentes longueurs.
Sans surveillance
- Encodeur automatique (ordinateur portable) (code). Créez un encodeur automatique pour encoder une image dans une dimension inférieure et la reconstruire.
- Encodeur automatique variationnel (ordinateur portable) (code). Créez un encodeur automatique variationnel (VAE), pour encoder et générer des images à partir du bruit.
- GAN (Generative Adversarial Networks) (carnet) (code). Créez un réseau contradictoire génératif (GAN) pour générer des images à partir du bruit.
- DCGAN (Deep Convolutional Generative Adversarial Networks) (carnet) (code). Créez un réseau contradictoire génératif à convolution profonde (DCGAN) pour générer des images à partir du bruit.
4 - Utilitaires
- Enregistrez et restaurez un modèle (carnet) (code). Enregistrez et restaurez un modèle avec TensorFlow.
- Tensorboard - Visualisation graphique et perte (carnet) (code). Utilisez Tensorboard pour visualiser le graphique de calcul et tracer la perte.
- Tensorboard - Visualisation avancée (notebook) (code). Aller plus profondément dans Tensorboard ; visualisez les variables, les dégradés, et plus encore...
5 - Gestion des données
- Créez un ensemble de données d'image (carnet) (code). Créez votre propre ensemble de données d'images avec les files d'attente de données TensorFlow, à partir de dossiers d'images ou d'un fichier d'ensemble de données.
- API de l'ensemble de données TensorFlow (notebook) (code). Présentation de l'API TensorFlow Dataset pour optimiser le pipeline de données d'entrée.
- Charger et analyser des données (ordinateur portable). Construisez un pipeline de données efficace (tableaux Numpy, images, fichiers CSV, données personnalisées, ...).
- Créez et chargez des TFRecords (ordinateur portable). Convertissez les données au format TFRecords et chargez-les.
- Transformation d'image (c'est-à-dire augmentation d'image) (ordinateur portable). Appliquez diverses techniques d'augmentation d'image pour générer des images déformées pour la formation.
6 - Multi-GPU
- Opérations de base sur multi-GPU (ordinateur portable) (code). Un exemple simple pour introduire le multi-GPU dans TensorFlow.
- Former un réseau de neurones sur multi-GPU (notebook) (code). Une implémentation TensorFlow claire et simple pour entraîner un réseau neuronal convolutif sur plusieurs GPU.
Plus d'exemples
Les exemples suivants proviennent de TFLearn, une bibliothèque qui fournit une interface simplifiée pour TensorFlow. Vous pouvez y jeter un œil, il existe de nombreux exemples et opérations et couches prédéfinies.
Tutoriels
- Démarrage rapide TFLearn. Apprenez les bases de TFLearn à travers une tâche concrète de machine learning. Créez et entraînez un classificateur de réseau neuronal profond.
Exemples
- Exemples TFLearn. Une large collection d'exemples utilisant TFLearn.