arrow_back

TensorFlow : Qwik Start

Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

TensorFlow : Qwik Start

Atelier 45 minutes universal_currency_alt 1 crédit show_chart Débutant
info Cet atelier peut intégrer des outils d'IA pour vous accompagner dans votre apprentissage.
Testez vos connaissances et partagez-les avec notre communauté
done
Accédez à plus de 700 ateliers pratiques, badges de compétence et cours

GSP637

Google Cloud – Ateliers adaptés au rythme de chacun

Présentation

Dans cet atelier, vous allez apprendre les bases du machine learning (apprentissage automatique) avec un modèle Hello World. Cependant, au lieu de programmer des règles explicites dans un langage comme Java ou C++, vous allez créer un système entraîné à partir de données pour déduire les règles qui déterminent une relation entre des nombres.

Objectifs

Dans cet atelier, vous allez apprendre à effectuer les tâches suivantes :

  • Configurer l'environnement de développement dans le notebook Jupyter
  • Concevoir un modèle de machine learning
  • Entraîner un réseau de neurones
  • Tester un modèle

Préparation

Avant de cliquer sur le bouton "Démarrer l'atelier"

Lisez ces instructions. Les ateliers sont minutés, et vous ne pouvez pas les mettre en pause. Le minuteur, qui démarre lorsque vous cliquez sur Démarrer l'atelier, indique combien de temps les ressources Google Cloud resteront accessibles.

Cet atelier pratique vous permet de suivre vous-même les activités dans un véritable environnement cloud, et non dans un environnement de simulation ou de démonstration. Nous vous fournissons des identifiants temporaires pour vous connecter à Google Cloud le temps de l'atelier.

Pour réaliser cet atelier :

  • vous devez avoir accès à un navigateur Internet standard (nous vous recommandons d'utiliser Chrome) ;
Remarque : Ouvrez une fenêtre de navigateur en mode incognito/navigation privée pour effectuer cet atelier. Vous éviterez ainsi les conflits entre votre compte personnel et le temporaire étudiant, qui pourraient entraîner des frais supplémentaires facturés sur votre compte personnel.
  • vous disposez d'un temps limité ; une fois l'atelier commencé, vous ne pouvez pas le mettre en pause.
Remarque : Si vous possédez déjà votre propre compte ou projet Google Cloud, veillez à ne pas l'utiliser pour réaliser cet atelier afin d'éviter que des frais supplémentaires ne vous soient facturés.

Introduction

Réfléchissez au problème suivant : vous êtes en train de créer un système capable de reconnaître l'activité pour le suivi de la forme physique. Vous pouvez avoir accès à la vitesse à laquelle une personne se déplace et tenter de déduire son activité à partir de cette donnée à l'aide d'une expression conditionnelle :

if(speed<4){ status=WALKING; }
  • Vous pouvez utiliser ce code pour la course avec une autre condition :
if(speed<4){ status=WALKING; } else { status=RUNNING; }
  • De la même manière, vous pouvez détecter une activité de cyclisme avec une autre condition :
if(speed<4){ status=WALKING; } else if(speed<12){ status=RUNNING; } else { status=BIKING; }
  • Réfléchissez maintenant à ce qui se passe lorsque vous souhaitez inclure une activité comme le golf. Il est tout de suite moins évident de créer une règle pour identifier une telle activité.
// Now what?

Il est extrêmement difficile d'écrire un programme (sous forme de code) qui vous permettra de reconnaître cette activité.

Comment faire ? Vous pouvez utiliser le machine learning pour résoudre le problème.

Qu'est-ce que le machine learning ?

Dans la section précédente, vous avez rencontré un problème lorsque vous avez essayé de déterminer l'activité physique d'un utilisateur. Les résultats que vous pouvez obtenir en ajoutant du code sont limités, car vos conditions doivent être plus complexes pour détecter une activité comme le golf.

Envisagez de créer des applications de façon classique, comme illustré dans le diagramme suivant :

Diagramme illustrant les flux de données et de règles en entrée dans un programme traditionnel dont les réponses constituent les données de sortie

Vous exprimez des règles dans un langage de programmation. Elles agissent sur les données, et votre programme fournit des réponses. Dans le cas de la détection d'activité, les règles (le code que vous avez écrit pour définir les types d'activité) ont pris en compte les données (la vitesse de mouvement de la personne) pour produire une réponse : la valeur renvoyée par la fonction permettant de déterminer l'état de l'activité de l'utilisateur (qu'il soit en train de marcher, de courir, de faire du vélo, etc.).

Le processus permettant de détecter le type d'activité à l'aide du machine learning est très similaire. Seuls les axes sont différents :

Diagramme illustrant les flux de données et de réponses en entrée dans un contexte de machine learning où les règles constituent les données de sortie

Au lieu d'essayer de définir les règles et de les exprimer dans un langage de programmation, vous fournissez les réponses (généralement appelées étiquettes) ainsi que les données. La machine déduit ensuite les règles qui déterminent la relation entre les réponses et les données. Par exemple, votre scénario de détection d'activité peut se présenter comme suit dans un contexte de machine learning :

Les quatre étiquettes (marche, course, cyclisme et golf) au format binaire

Vous recueillez un important volume de données auxquelles vous ajoutez des étiquettes indiquant que telle ou telle donnée correspond à un aspect de la marche ou de la course. À partir de ces informations, l'ordinateur peut alors déduire les règles qui déterminent les tendances spécifiques propres à une activité en particulier.

En plus d'être une méthode alternative permettant de programmer ce scénario, cette approche vous donne la possibilité de l'appliquer à de nouveaux cas d'utilisation, par exemple au golf, ce qui n'aurait peut-être pas été possible avec l'approche de programmation classique basée sur des règles.

En programmation classique, votre code est compilé dans un binaire généralement appelé "programme". En machine learning, l'élément que vous créez à partir des données et des étiquettes est appelé "modèle".

Revenons au diagramme ci-dessous :

Diagramme illustrant les flux de données et de réponses en entrée dans un contexte de machine learning où les règles constituent les données de sortie

Considérez le résultat obtenu ci-dessus comme un modèle, qui est utilisé de la façon suivante au moment de l'exécution :

Diagramme illustrant le flux de données en entrée d&#39;un modèle dont les données de sortie sont des prédictions

Vous transmettez certaines données au modèle, qui utilise les règles qu'il a déduites de l'entraînement pour effectuer une prédiction, par exemple en associant les données à l'activité de marche ou de cyclisme.

Dans cet atelier, vous allez créer un modèle Hello World très simple composé de blocs de base pouvant être utilisés dans n'importe quel scénario de machine learning.

Tâche 1 : Ouvrir le notebook dans Vertex AI Workbench

  1. Dans la console Google Cloud, accédez au menu de navigation et cliquez sur Vertex AI > Workbench.

  2. Recherchez l'instance , puis cliquez sur le bouton Ouvrir JupyterLab.

L'interface JupyterLab de votre instance Workbench s'ouvre dans un nouvel onglet de navigateur.

Installer TensorFlow et des packages supplémentaires

  1. Dans le menu de lancement, sous Other (Autre), sélectionnez Terminal.

  2. Vérifiez si votre environnement Python est déjà configuré. Copiez et collez la commande ci-dessous dans le terminal :

python --version

Exemple de résultat :

Python 3.10.14
  1. Exécutez la commande ci-dessous pour installer le package TensorFlow :
pip3 install tensorflow
  1. Pour mettre à niveau pip3, exécutez la commande ci-dessous dans le terminal :
pip3 install --upgrade pip

Pylint est un outil qui recherche les erreurs dans le code Python. Il met en évidence les problèmes syntaxiques et stylistiques dans votre code source Python.

  1. Exécutez la commande ci-dessous pour installer le package pylint :
pip install -U pylint --user
  1. Installez les packages du fichier requirements.txt dont vous avez besoin pour l'atelier :
pip install -r requirements.txt

Votre environnement est désormais configuré.

Tâche 2 : Créer votre premier modèle de machine learning

Considérons les ensembles de nombres suivants. Voyez-vous la relation entre eux ?

x :

-1

0

1

2

3

4

y :

-2

1

4

7

10

13

En parcourant le tableau de gauche à droite, vous remarquez que la valeur de x augmente de 1 quand celle de y augmente de 3. Vous estimez alors que y est plus ou moins égal à 3x.

Ensuite, en observant la valeur 0 de x, vous constatez que la valeur de y correspondante est 1.

À partir de ces observations, vous pouvez déterminer que la relation est y=3x+1.

C'est presque exactement de cette façon que vous devez utiliser le code pour entraîner un modèle (ou réseau de neurones) à identifier les tendances dans les données.

Vous vous servez des données pour entraîner le réseau de neurones. Si vous l'alimentez avec des ensembles de x et de y, il devrait parvenir à déterminer la relation entre eux.

Créer un notebook et importer des bibliothèques

  1. Cliquez sur l'icône + dans la partie gauche de Workbench pour ouvrir un nouveau menu de lancement.

  2. Dans le menu de lancement, sous Notebook, sélectionnez Python3.

Nouveau fichier notebook

Un nouveau notebook Jupyter s'affiche. Consultez la documentation sur les notebooks Jupyter pour savoir comment les utiliser.

  1. Importez et configurez logging et google-cloud-logging pour Cloud Logging. Dans la première cellule, ajoutez le code suivant :
import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler())
  1. Importez tensorflow pour entraîner et évaluer le modèle. Pour plus de simplicité, appelez-le tf. Ajoutez le code ci-dessous à la première cellule :
# Import TensorFlow import tensorflow as tf
  1. Importez numpy pour analyser les données à des fins de débogage. Pour plus de simplicité, appelez-le np. Ajoutez le code ci-dessous à la première cellule :
# Import numpy import numpy as np
  1. Pour exécuter la cellule, cliquez sur le bouton Exécuter ou appuyez sur Maj+Entrée.

  2. Enregistrez le notebook. Cliquez sur Fichier > Enregistrer. Nommez le fichier model.ipynb, puis cliquez sur OK.

Remarque : Vous pouvez ignorer les avertissements qui s'affichent dans le résultat.

Préparer les données

Vous allez ensuite préparer les données à partir desquelles votre modèle sera entraîné. Dans cet atelier, vous allez utiliser les six valeurs de x et les six valeurs de y utilisées précédemment :

x :

-1

0

1

2

3

4

y :

-2

1

4

7

10

13

Comme vous le voyez, la relation entre les x et les y est y=3x+1. Ainsi, quand x est égal à 1, y est égal à 4, et ainsi de suite.

Une bibliothèque Python appelée numpy fournit de nombreuses structures de données de type tableau, qui constituent un moyen classique d'ajouter des données. Pour les utiliser, spécifiez les valeurs sous forme de tableau dans numpy avec np.array([]).

  1. Dans la deuxième cellule, ajoutez le code suivant :
xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float)

Concevoir le modèle

Dans cette section, vous allez concevoir votre modèle à l'aide de TensorFlow.

Vous allez utiliser un algorithme de machine learning appelé "réseau de neurones" pour entraîner votre modèle et créer le réseau de neurones le plus simple possible. Il comporte une couche, qui contient un seul neurone. Les données du réseau de neurones ne peuvent prendre qu'une seule valeur à la fois. C'est pourquoi la forme d'entrée doit être [1].

Remarque : Vous en apprendrez plus sur les réseaux de neurones dans les prochains ateliers de cette quête.
  1. Dans la deuxième cellule, ajoutez le code suivant :
model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])])

Compiler le modèle

Vous allez ensuite écrire le code pour compiler votre réseau de neurones. Pour cela, vous devez spécifier deux fonctions : loss et optimizer.

Si vous avez vu de nombreux concepts mathématiques pour le machine learning, c'est ici que vous devriez les appliquer. Cependant, tf.keras les encapsule dans des fonctions pour vous.

  • D'après ce que vous avez observé précédemment, vous savez que la relation entre les nombres est y=3x+1.

  • Lorsque l'ordinateur essaie d'apprendre cette relation, il réalise une estimation (y=10x+10 par exemple). La fonction loss mesure les réponses déduites par rapport aux bonnes réponses connues et mesure ses performances.

Remarque : Pour en savoir plus sur les différents types de fonctions de perte disponibles dans tf.keras, consultez la documentation "Module : tf.keras.losses".
  • Ensuite, le modèle utilise la fonction d'optimiseur pour faire une autre estimation. Le système essaie de réduire au maximum la perte sur la base du résultat de la fonction loss. À ce stade, il peut afficher quelque chose comme y=5x+5. Bien que cela soit encore un résultat assez mauvais, il est plus proche du résultat attendu (c'est-à-dire que la perte est moins importante).
Remarque : Pour en savoir plus sur les différents types de fonctions d'optimiseur disponibles dans tf.keras, consultez la documentation "Module : tf.keras.optimizers".
  • Le modèle répète l'opération pour le nombre d'époques que vous spécifiez.
  1. Ajoutez le code suivant à la deuxième cellule :
model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError())

Dans l'extrait de code ci-dessus, vous indiquez au modèle d'utiliser mean_squared_error pour la perte et la descente de gradient stochastique (SGD) pour l'optimiseur. Vous n'avez pas encore besoin de comprendre ces notions mathématiques, mais vous pouvez voir qu'elles fonctionnent.

Remarque : Au fil du temps, vous découvrirez les différentes fonctions de perte et d'optimiseur adaptées à différents scénarios.

Entraîner le réseau de neurones

Pour entraîner le réseau de neurones à apprendre la relation entre les valeurs x et y, vous allez utiliser model.fit.

Cette fonction entraîne le modèle sous la forme d'une boucle durant laquelle elle effectue une estimation, détermine si elle est bonne ou mauvaise (la perte), utilise l'optimiseur pour faire une autre estimation, etc. Elle répète l'opération selon le nombre d'époques que vous spécifiez, qui est de 500 dans cet atelier.

  1. Ajoutez le code suivant à la deuxième cellule :
model.fit(xs, ys, epochs=500)

Dans le code ci-dessus, model.fit entraîne le modèle pour un nombre fixe d'époques.

Remarque : Pour en savoir plus sur la fonction model.fit, consultez la section "fit" de la documentation sur tf.keras.Model.

Votre fichier devrait se présenter comme suit (veuillez noter que le code sera réparti dans deux cellules) :

import logging import google.cloud.logging as cloud_logging from google.cloud.logging.handlers import CloudLoggingHandler from google.cloud.logging_v2.handlers import setup_logging cloud_logger = logging.getLogger('cloudLogger') cloud_logger.setLevel(logging.INFO) cloud_logger.addHandler(CloudLoggingHandler(cloud_logging.Client())) cloud_logger.addHandler(logging.StreamHandler()) import tensorflow as tf import numpy as np xs = np.array([-1.0, 0.0, 1.0, 2.0, 3.0, 4.0], dtype=float) ys = np.array([-2.0, 1.0, 4.0, 7.0, 10.0, 13.0], dtype=float) model = tf.keras.Sequential([tf.keras.layers.Dense(units=1, input_shape=[1])]) model.compile(optimizer=tf.keras.optimizers.SGD(), loss=tf.keras.losses.MeanSquaredError()) model.fit(xs, ys, epochs=500)

Exécuter le code

Votre script est prêt ! Exécutez-le et observez le résultat.

  1. Cliquez sur le bouton Exécuter ou appuyez sur Maj+Entrée pour exécuter la deuxième cellule du notebook.

  2. Examinez le résultat. Notez que le script affiche la perte pour chaque époque. Le résultat peut être légèrement différent de celui obtenu ici.

Remarque : Un nombre suivi de la valeur e- est écrit en notation scientifique avec un exposant négatif.

Si vous parcourez les époques, vous constatez que la valeur de perte est plutôt élevée au départ, mais qu'elle diminue à chaque étape. Exemple :

Lignes illustrant la perte par époque qui diminue progressivement. La deuxième ligne indique une perte de 52,1992. À la neuvième ligne, elle n&#39;est plus que de 9,7403.

À mesure que l'entraînement progresse, la perte devient très faible :

À la ligne 45, la perte est de 0,0023. À la ligne 54, elle est de 7,1057e-04.

Une fois l'entraînement terminé, la perte est extrêmement faible, ce qui montre que notre modèle excelle dans l'inférence de la relation entre les nombres :

À la ligne 495, la perte est de 5,4194e-08. À la ligne 500, elle est de 4,8896e-08.

Vous n'aurez probablement pas besoin des 500 époques. C'est pourquoi nous vous conseillons de tester différentes valeurs. Comme vous le voyez dans cet exemple, la perte est très faible après seulement 50 époques. Ce nombre peut donc suffire.

Cliquez sur Vérifier ma progression pour valider l'objectif. Créer des modèles de machine learning

Utiliser le modèle

Vous disposez désormais d'un modèle qui a été entraîné pour apprendre la relation entre x et y.

Vous pouvez utiliser la méthode model.predict pour déterminer la valeur de y pour une valeur de x que le modèle n'a pas vue pendant l'entraînement. Par exemple, si x = 10, quelle sera la valeur de y ?

  1. Ajoutez le code suivant à la troisième cellule pour effectuer une prédiction :
cloud_logger.info(str(model.predict(np.array([10.0])))) Remarque : Le résultat de votre prédiction est transmis à cloud_logger afin de générer des journaux cloud que vous pourrez consulter pour suivre la progression.
  1. Appuyez sur Ctrl+S ou cliquez sur Fichier > Enregistrer pour enregistrer votre notebook.

  2. Pour exécuter la troisième cellule, cliquez sur le bouton Exécuter ou appuyez sur Maj+Entrée.

La valeur de y apparaît après le journal d'entraînement (époques).

Exemple de résultat :

La valeur de y est de 31,005917.

Vous pensiez peut-être que la valeur de y serait de 31, mais elle est au final un peu supérieure (31,005917). À votre avis, pourquoi ?

Réponse : Les réseaux de neurones fonctionnent avec les probabilités. Ils ont donc calculé qu'il est très probable que la relation entre x et y soit y=3x+1. Mais avec seulement six points de données, il est impossible d'affirmer avec certitude que ce résultat est exact. Ainsi, le résultat pour 10 est très proche de 31, mais n'est pas forcément égal à 31.

Lorsque vous utiliserez des réseaux de neurones, cette tendance sera récurrente. Vous aurez toujours affaire à des probabilités, et non à des certitudes. Vous ferez également un peu de codage pour déterminer le résultat sur la base de probabilités, en particulier pour la classification.

Cliquez sur Vérifier ma progression pour valider l'objectif. Utiliser le modèle

Félicitations !

Félicitations ! Dans cet atelier, vous avez créé, entraîné et testé votre propre modèle de machine learning avec TensorFlow.

Étapes suivantes et informations supplémentaires

Formations et certifications Google Cloud

Les formations et certifications Google Cloud vous aident à tirer pleinement parti des technologies Google Cloud. Nos cours portent sur les compétences techniques et les bonnes pratiques à suivre pour être rapidement opérationnel et poursuivre votre apprentissage. Nous proposons des formations pour tous les niveaux, à la demande, en salle et à distance, pour nous adapter aux emplois du temps de chacun. Les certifications vous permettent de valider et de démontrer vos compétences et votre expérience en matière de technologies Google Cloud.

Dernière mise à jour du manuel : 16 septembre 2024

Dernier test de l'atelier : 16 septembre 2024

Copyright 2024 Google LLC Tous droits réservés. Google et le logo Google sont des marques de Google LLC. Tous les autres noms d'entreprises et de produits peuvent être des marques des entreprises auxquelles ils sont associés.

Ce contenu n'est pas disponible pour le moment

Nous vous préviendrons par e-mail lorsqu'il sera disponible

Parfait !

Nous vous contacterons par e-mail s'il devient disponible