Classification d'images avec ResNet
Vous avez créé le modèle à partir du modèle ResNet18 pré-entraîné. Il est maintenant temps de le tester sur une image d'exemple.
Vous allez appliquer des transformations de prétraitement à une image et la classer. Vous devrez utiliser la couche d'softmax()
, suivie de la couche de réinitialisation des classes ( argmax()
), car ResNet18 a été entraîné sur un ensemble de données multi-classes.
Vous avez sélectionné l'image suivante pour effectuer les tests de prédiction :
La transformation de prétraitement est enregistrée sous le nom « preprocess
». L'image PIL est téléchargée sous le nom « img
».
Cet exercice fait partie du cours
Deep learning pour les images avec PyTorch
Instructions
- Appliquez les transformations de prétraitement à l'image et remodelez-la à l'aide de la méthode «
.unsqueeze(0)
» afin d'ajouter la dimension de lot. - Transmettez l'image au modèle, remodelez la sortie à l'aide de la fonction «
.squeeze(0)
» pour supprimer la dimension batch, puis ajoutez une couche «softmax()
». - Appliquez l'algorithme de classification par échantillonnage aléatoire (
argmax()
) pour sélectionner la classe la plus probable.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Apply preprocessing transforms
batch = ____.____
# Apply model with softmax layer
prediction = ____.____.____
# Apply argmax
class_id = prediction.____.item()
score = prediction[class_id].item()
category_name = weights.meta["categories"][class_id]
print(category_name)