Zero-shot learning con CLIP
Userai lo zero-shot learning per classificare un’immagine dal dataset rajuptvs/ecommerce_products_clip, che contiene circa 2.000 immagini di prodotti con le relative descrizioni:

Il dataset (dataset), il CLIPProcessor (processor) e il CLIPModel (model) sono già stati caricati per te, insieme a un elenco di categorie:
categories = ["shirt", "trousers", "shoes", "dress", "hat",
"bag", "watch", "glasses", "jacket", "belt"]
Questo esercizio fa parte del corso
Modelli multi-modali con Hugging Face
Istruzioni dell'esercizio
- Usa il
processorper pre-processare lecategoriese l’immagine all’indice999didataset; abilita il padding. - Passa gli
inputsunpackati almodel. - Calcola le probabilità di ciascuna categoria usando l’attributo
.logits_per_imagee il metodo.softmax(). - Trova la categoria più probabile usando
probsecategories.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# 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}")