Bildklassifizierung mit ResNet
Du hast das Modell aus dem vortrainierten ResNet18 erstellt. Jetzt ist es Zeit, das Ganze an einem Beispielbild auszuprobieren.
Du wirst Vorverarbeitungstransformationen auf ein Bild anwenden und es klassifizieren. Du musst die Schicht „ softmax()
“ und dann „ argmax()
“ verwenden, weil ResNet18 mit einem Datensatz mit mehreren Klassen trainiert wurde.
Du hast das folgende Bild für den Vorhersagetest ausgewählt:
Die Vorverarbeitungstransformation wird als „ preprocess
“ gespeichert. Das PIL-Bild ist als „ img
“ hochgeladen.
Diese Übung ist Teil des Kurses
Deep Learning für Bilder mit PyTorch
Anleitung zur Übung
- Wende die Vorverarbeitungstransformationen auf das Bild an und formiere es mit „
.unsqueeze(0)
“, um die Batch-Dimension hinzuzufügen. - Schick das Bild durch das Modell, form die Ausgabe mit „
.squeeze(0)
“ um, um die Batch-Dimension zu entfernen, und füge eine „softmax()
“-Schicht hinzu. - Wende „
argmax()
“ an, um die Klasse mit der höchsten Wahrscheinlichkeit auszuwählen.
Interaktive Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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)