CommencezCommencez gratuitement

Apprentissage zéro-shot avec CLIP

Vous allez utiliser l'apprentissage zéro-shot pour classer une image du jeu de données rajuptvs/ecommerce_products_clip, qui contient environ 2 k images de produits accompagnées de descriptions :

Image d'une femme présentant une robe

Le jeu de données (dataset), le CLIPProcessor (processor) et le CLIPModel (model) ont été chargés pour vous, ainsi qu'une liste de catégories :

categories = ["shirt", "trousers", "shoes", "dress", "hat", 
              "bag", "watch", "glasses", "jacket", "belt"]

Cette activité fait partie du cours

Modèles multimodaux avec Hugging Face

Voir le cours

Instructions de l’exercice

  • Utilisez le processor pour prétraiter les categories et l'image à l'indice 999 de dataset; activez le remplissage (padding).
  • Passez les inputs décompressés au model.
  • Calculez les probabilités de chaque catégorie à l'aide de l'attribut .logits_per_image et de la méthode .softmax().
  • Trouvez la catégorie la plus probable en utilisant probs et categories.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Preprocess the categories and image 
inputs = ____(text=____, images=____, return_tensors="pt", padding=____)

# Process the unpacked inputs with the model
outputs = ____

# Calculate the probabilities of each category
probs = outputs.____.____(dim=1)

# Find the most likely category
category = categories[probs.____.item()]
print(f"Predicted category: {category}")
Modifier et exécuter le code