Apprentissage en profondeur avec TensorFlow 2.0 : tout ce que vous devez savoir
Publié: 2021-01-05TensorFlow est le framework Machine Learning de Google. Il est principalement utilisé pour les tâches liées au Deep Learning et s'intègre également de manière transparente avec d'autres API Google. TensorFlow est clairement l'une des bibliothèques les plus utilisées pour le Deep Learning dans l'industrie en ce moment et vaut vraiment la peine d'être apprise !
À la fin de ce didacticiel, vous aurez connaissance des éléments suivants.
- Qu'est-ce que TensorFlow ?
- Quoi de neuf dans TF 2.0 ?
- TensorFlow contre Keras
- Installer TensorFlow
- Classificateur d'images dans TensorFlow
Table des matières
Qu'est-ce que TensorFlow ?
TensorFlow a commencé comme une bibliothèque d'apprentissage en profondeur Open Source par Google et est maintenant un cadre complet pour les processus d'apprentissage automatique de bout en bout. Vous vous demandez peut-être pourquoi Google a choisi ce nom et que signifie « Tensor ».
Qu'est-ce qu'un tenseur ?
Les tenseurs sont en fait des tableaux multidimensionnels qui vous permettent d'effectuer des opérations complexes sur des tableaux multidimensionnels. Cependant, ils ne sont pas simplement un tableau à N dimensions.
Un tenseur comprend également les transformations telles que le produit scalaire, l'addition, la multiplication matricielle, etc.
Mais pourquoi sont-ils importants ?
Les tenseurs ne sont pas nouveaux. Ils sont utilisés depuis longtemps, mais leurs caractéristiques sont fortement exploitées dans le domaine du Deep Learning, où les données sont généralement volumineuses et multidimensionnelles.

Les tenseurs, tout comme les tableaux Numpy, ont également une forme et un type de données. Tous les tenseurs sont immuables comme les nombres et les chaînes Python : vous ne pouvez jamais mettre à jour le contenu d'un tenseur, mais seulement en créer un nouveau.
Mais ce qui les différencie des baies Numpy habituelles, c'est leur capacité à utiliser la mémoire GPU et la puissance de calcul, ce qui est de la plus haute importance lorsque les données sont de grande dimension et que la taille est en millions ou plus.
Les tenseurs sont très utilisés dans les frameworks de Deep Learning tels que Pytorch de Facebook et TensorFlow de Google, qui porte même leur nom !
Google a également développé un autre accélérateur d'IA, appelé Tensor Processing Unit (TPU), spécialement pour TensorFlow, qui fait passer l'optimisation à un niveau supérieur !
Lire : Régularisation dans le Deep Learning
Quoi de neuf dans TF 2.0 ?
Google avait publié la première version de TensorFlow 1 en 2015 par la Google Brain Team.
Utiliser TensorFlow 1.x pour créer des réseaux de neurones n'était pas une tâche facile car cela nécessitait l'écriture de beaucoup de code.
Évaluation paresseuse vs évaluation impatiente
Avec TensorFlow 1.x, il était nécessaire de créer des sessions et d'exécuter ces sessions pour générer la sortie de n'importe quel "graphique". Comprenons cela avec le code ci-dessous
importer tensorflow en tant que tf a = tf.constante(1) |
L'exécution du code ci-dessus ne vous donnera pas la sortie souhaitée, c'est-à-dire 3. C'est parce que TensorFlow 1.x fonctionnait en sessions.
Une session est un type d'environnement qui contient toutes les variables et les transformations qu'il doit effectuer.
Un graphe de transformations a été créé qui n'a pas été évalué jusqu'à ce qu'il soit spécifiquement appelé en exécutant tf.session.run().
Par conséquent, le code ci-dessus renverra ce que vous attendez si vous le faites :
tf.Session.run(c) |
C'est ce qu'on appelle l'évaluation paresseuse. Comme il attend paresseusement jusqu'à ce qu'on lui dise spécifiquement de courir.
Ce processus long et compliqué devait être résolu, d'où le besoin de TensorFlow 2.x.
TF 2.x est livré avec une évaluation Eager par défaut, ce qui nous permet de coder et d'exécuter très facilement les processus.
Il n'y a plus de sessions actuellement et la formation au réseau de neurones qui prenait 100 lignes dans TF 1.x en prend moins de 20 avec TF 2.x.
L'exécution rapide de TensorFlow est un environnement de programmation impératif qui évalue les opérations immédiatement, sans créer de graphes : les opérations renvoient des valeurs concrètes au lieu de construire un graphe de calcul à exécuter plus tard.
Cela facilite la mise en route avec TensorFlow et les modèles de débogage, et réduit également le passe-partout.
TensorFlow contre Keras
La question n'est vraiment pas TensorFlow vs Keras. C'est TensorFlow avec Keras. Keras a fourni une API de haut niveau sur TensorFlow 1.x, ce qui a facilité son utilisation.

Désormais, avec TF 2.0, TensorFlow a officiellement intégré Keras à son API pour la conception et la formation de modèles avec tf.keras.
Il est maintenant suggéré de faire tout le code qui était auparavant fait dans Keras avec tf.keras dans TF 2.0 car il lui permet d'utiliser tous les composants et l'écosystème TensorFlow tels que :
- TensorFlow Serving qui est utilisé pour servir/déployer des modèles TensorFlow de manière transparente.
- TensorFlow Lite qui est la version mobile de TensorFlow capable de fonctionner sur Android et IOS.
- TensorFlow.js est une collection d'API qui nous permet de créer et d'entraîner des modèles à l'aide de la bibliothèque d'algèbre linéaire JavaScript de bas niveau ou de l'API de couches de haut niveau. Par conséquent, les modèles d'apprentissage en profondeur peuvent être formés et exécutés dans un navigateur.
- TensorBoard est une suite d'outils de visualisation pour comprendre, déboguer et optimiser les programmes TensorFlow.
Installer TensorFlow
Si vous débutez dans l'apprentissage automatique, le moyen le plus simple de faire avancer les choses consiste à ouvrir un bloc-notes Colab. Allez simplement sur https://colab.research.google.com/ et cliquez sur "Nouveau bloc-notes Python 3".
Assurez-vous que le noyau indique "connecté" en haut à droite. Bonne nouvelle, TensorFlow est préinstallé dans Google Colab.
Voilà! Vous êtes prêt.
Pour vérifier si vous utilisez la bonne version, exécutez l'extrait ci-dessous.
importer tensorflow en tant que tf tf.__version__ |
Il devrait indiquer n'importe quelle version supérieure à 2.0.0 et vous êtes prêt à partir.
Classificateur d'images dans TensorFlow
Passons maintenant en revue le "Hello World" des problèmes d'apprentissage en profondeur - l'ensemble de données MNIST.
Nous allons construire un court réseau de neurones à prédire sur l'ensemble de données MNIST. Nous suivrons les étapes ci-dessous.
- Construire un réseau de neurones qui classe les images.
- Former un réseau de neurones.
- Évaluer la précision du modèle
Importation de TensorFlow.
importer tensorflow en tant que tf |
Chargement des données MNIST.
mnist = tf.keras.datasets.mnist (x_train, y_train), (x_test, y_test) = mnist.load_data() |
Construire un modèle tf.keras.Sequential en empilant les couches.
Nous aurions également besoin de choisir un optimiseur et une fonction de perte pour que le modèle puisse s'entraîner.
modèle = tf.keras.models.Sequential([ tf.keras.layers.Flatten(input_shape=(28, 28)), tf.keras.layers.Dense(128, activation='relu'), tf.keras.layers.Dropout(0.2), tf.keras.layers.Dense(10) ]) |
Définition de la fonction de perte d'entropie croisée catégorielle éparse.
loss_fn = tf.keras.losses.SparseCategoricalCrossentropy(from_logits=True) |
Compilation du modèle.
model.compile(optimizer='adam', perte=perte_fn, metrics=['précision']) |
Entraînement du modèle avec 5 époques.
model.fit(x_train, y_train, époques=5) |
Évaluation du modèle.
model.evaluate(x_test, y_test, verbose=2) |
313/313 – 0s – perte : 0,0825 – précision : 0,9753 [0.082541823387146, 0.9753000140190125] |
Le classificateur d'images est maintenant formé à une précision d'environ 98 % sur cet ensemble de données.
Avant que tu partes
TensorFlow 2 met l'accent sur la simplicité et la facilité d'utilisation, avec des mises à jour telles que l'exécution rapide, des API intuitives de niveau supérieur et la création de modèles flexibles sur n'importe quelle plate-forme.

TensorFlow est la bibliothèque / l'outil incontournable pour toute tâche d'apprentissage en profondeur de nos jours. L'autre bibliothèque la plus utilisée et la plus populaire est PyTorch de Facebook.
L'écosystème étendu de TensorFlow en fait un endroit idéal pour commencer votre voyage Deep Learning. Il est facile à comprendre et, plus important encore, facile à mettre en œuvre.
Le meilleur endroit pour commencer est l'API séquentielle conviviale. Vous pouvez créer des modèles en connectant des blocs de construction. En savoir plus sur les techniques d'apprentissage en profondeur.
Conclusion
Ainsi, maintenant que vous avez une idée détaillée de tous les principaux frameworks d'apprentissage en profondeur, vous pouvez prendre une décision éclairée et choisir celui qui convient le mieux à votre projet.
Si vous souhaitez en savoir plus sur l'apprentissage en profondeur et l'intelligence artificielle, consultez notre programme de diplôme PG en apprentissage automatique et IA qui est conçu pour les professionnels en activité et fournit plus de 30 études de cas et missions, plus de 25 sessions de mentorat de l'industrie, plus de 5 mains pratiques. -sur les projets Capstone, plus de 450 heures de formation rigoureuse et d'aide au placement dans les meilleures entreprises.