For AI agents: the complete documentation index is available at https://docs.ovhcloud.com/fr/llms.txt, the full documentation bundle is available at https://docs.ovhcloud.com/fr/llms-full.txt, and this page is available as Markdown at https://docs.ovhcloud.com/fr/guides/public-cloud/ai-machine-learning/ai-notebooks-transfer-learning-resnet.md.

AI Notebooks - Tutoriel - Utiliser ResNet pour la classification d'images

Voir en Markdown

Comment utiliser un modèle existant pour faire de l'apprentissage par transfert?

Objectif

Ce tutoriel vous permettra d'utiliser le Transfer Learning pour entraîner un modèle existant sur un jeu de données personnalisé grâce à OVHcloud AI Notebooks.

Pour montrer en quoi le Transfer Learning peut être utile, ResNet50 sera entraîné sur un jeu de données personnalisé.

CAS D'USAGE : Classification de fleurs

Info

Pour classifier des images de fleurs, le jeu de données Flower Classification sera utilisé. Il est disponible sur Kaggle.

Contient des informations issues de Flower Classification, mis à disposition ici sous licence CC0: Public Domain.

Définition

Transfer learning

En Machine Learning, l'objectif du Transfer Learning est d'utiliser les connaissances déjà acquises pour résoudre un problème entièrement nouveau, mais lié. Autrement dit, la technique consiste à transférer les notions apprises sur un jeu de données source pour être plus efficace dans le traitement d'un nouveau jeu de données cible.

Pour ce tutoriel, l'objectif est de faire de la classification d'images. Un modèle existant est utilisé : ResNet50.

Modèle ResNet50

ResNet est une structure de réseau de neurones résiduel (Residual neural Network). C'est un réseau de neurones innovant créé pour la classification d'images.

L'architecture du modèle ResNet permet de réduire l'erreur d'entraînement avec un réseau plus profond grâce au connection skip.

Les réseaux de neurones résiduels ignorent certaines connexions et effectuent des sauts de deux ou trois couches contenant des non-linéarités (ReLU).

Schéma d'un bloc résiduel où l'entrée x traverse deux couches de poids séparées par un relu puis est additionnée au raccourci identité avant un relu final

Avec cette méthode, la performance est généralement améliorée.

ResNet possède de nombreuses variantes qui reposent sur le même concept mais qui ont un nombre de couches différent. Resnet50 désigne la variante qui peut fonctionner avec cinquante couches de réseau de neurones. Il a été entraîné sur plus d'un million d'images de la base de données ImageNet.

Prérequis


Accès à l'espace client OVHcloud

  • Lien direct :
  • Pour accéder à vos services : Public Cloud > Sélectionnez votre projet

En pratique

Tout d'abord, vous devez créer 2 conteneurs d'objets dans votre Object Storage OVHcloud.

  • Le premier contient les données non pré-traitées (images de base).
  • Le second conteneur d'objets est vide. Il est destiné à recevoir les données une fois traitées et réparties pour l'entraînement.
Info

Pour en savoir plus sur la manière d'envoyer vos données vers l'Object Storage, veuillez vous référer à la documentation dédiée.

Ensuite, vous pouvez lancer votre notebook depuis l' ou via la CLI ovhai.

Lancer un notebook Jupyter avec "Miniconda" via l'UI

Pour lancer votre notebook depuis l', référez-vous aux étapes suivantes.

Éditeur de code

Choisissez l'éditeur de code Jupyterlab.

Framework

Dans ce tutoriel, le framework TensorFlow est utilisé.

Pour ce tutoriel, vous pouvez utiliser la version de framework TensorFlow suivante : tf2.4-py38-cuda11.0-v22-4.

Ressources

Vous pouvez choisir le nombre de CPU ou de GPU que vous souhaitez.

Info

Ici, l'utilisation d'1 GPU est suffisante.

Attacher un conteneur ou un dépôt Git

  1. Attachez le conteneur d'objets (depuis l'Object Storage) qui contient votre jeu de données pour la classification d'images.
  • Répertoire de montage : /workspace/data
  • Permission : read only (RO)
  1. Attachez un conteneur d'objets vide pour stocker vos données, une fois traitées et réparties pour l'entraînement, la validation et le test.
  • Répertoire de montage : /workspace/data-split
  • Permission : read write (RW)
  1. Attachez un conteneur d'objets vide pour stocker votre modèle après l'entraînement.
  • Répertoire de montage : /workspace/saved_model
  • Permission : read write (RW)
Info

Pour en savoir plus sur l'utilisation et la gestion de vos données dans un notebook avec l'UI, consultez cette documentation.

Lancer un notebook Jupyter avec TensorFlow via la CLI

Si vous souhaitez le lancer avec la CLI, choisissez l'éditeur jupyterlab et le framework tensorflow.

Pour ce tutoriel, vous pouvez utiliser la version de framework TensorFlow suivante : tf2.4-py38-cuda11.0-v22-4.

Info

Pour en savoir plus sur l'utilisation et la gestion de vos données dans un notebook avec la CLI, référez-vous à cette documentation.

Choisissez le nombre de GPU (<nb-gpus>) à utiliser dans votre notebook et utilisez la commande suivante.

ovhai notebook run tensorflow jupyterlab \
        --name <notebook-name> \
        --framework-version tf2.4-py38-cuda11.0-v22-4 \
        --volume <my-data>@<region>/:/workspace/data:RO:cache \
        --volume <my-model>@<region>/:/workspace/saved_model:RW \
        --gpu <nb-gpus>

Vous pourrez ensuite accéder à l'URL de votre notebook une fois celui-ci en cours d'exécution.

Accéder au notebook

Une fois le dépôt cloné, trouvez votre notebook en suivant ce chemin : ai-training-examples > notebooks > computer-vision > image-classification > tensorflow > notebook-resnet-transfer-learning-image-classification.ipynb.

Un aperçu de ce notebook est disponible sur GitHub ici.

Aller plus loin

  • Si vous souhaitez déployer une application Gradio pour la classification d'images ou la reconnaissance de croquis, consultez cette documentation.
  • Si vous vous intéressez à la Computer Vision, familiarisez-vous avec la détection d'objets en suivant ce tutoriel.

Pour une formation ou une assistance technique sur la mise en œuvre de nos solutions, contactez votre commercial ou consultez la page Professional Services pour obtenir un devis et faire analyser votre projet par nos experts.

Votre avis nous intéresse !

N’hésitez pas à nous faire part de vos questions, retours et suggestions pour améliorer le service :

Cette page vous a-t-elle aidé ?