Fine-tuning CV: classi del modello
In questo esercizio caricherai il modello pre-addestrato e adatterai l'output per gestire una nuova classificazione dei tipi di modelli di auto dal dataset Stanford Cars, invece delle 1000 classi usate per l'addestramento originale su ImageNet. Il dataset contiene immagini di auto etichettate.
L'insieme di dati è stato caricato (dataset), così come AutoModelForImageClassification da transformers. Il dataset è stato filtrato in modo da includere tre tipi di modelli.
Questo esercizio fa parte del corso
Modelli multi-modali con Hugging Face
Istruzioni dell'esercizio
- Ricava i nuovi nomi delle etichette dal dataset
- Aggiungi il nuovo mapping
id2labeldurante il caricamento del modello. - Aggiungi il corrispondente mapping
label2id. - Aggiungi il flag necessario per cambiare il numero di classi.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Obtain the new label names from the dataset
labels = dataset["train"].features["____"].____
label2id, id2label = dict(), dict()
for i, label in enumerate(labels):
label2id[label] = str(i)
id2label[str(i)] = label
model = AutoModelForImageClassification.from_pretrained(
"google/mobilenet_v2_1.0_224",
num_labels=len(labels),
# Add the id2label mapping
id2label=____,
# Add the corresponding label2id mapping
label2id=____,
# Add the required flag to change the number of classes
ignore_mismatched_sizes=____
)