Klasyfikacja obrazów z użyciem ResNet
Model na bazie wstępnie wytrenowanego ResNet18 jest już gotowy. Czas przetestować go na przykładowym obrazie.
Zastosujesz przekształcenia wstępnego przetwarzania do obrazu, a następnie sklasyfikujesz go. Ponieważ ResNet18 był trenowany na zbiorze danych wieloklasowych, będziesz potrzebować warstwy softmax() oraz funkcji argmax().
Do testowania predykcji wybrano następujący obraz:

Przekształcenie wstępnego przetwarzania jest zapisane jako preprocess. Obraz PIL jest wczytany jako img.
To ćwiczenie jest częścią kursu
Głębokie uczenie dla obrazów z PyTorch
Instrukcje do ćwiczenia
- Zastosuj przekształcenia wstępnego przetwarzania do obrazu i zmień jego kształt za pomocą
.unsqueeze(0), aby dodać wymiar wsadu (batch). - Przepuść obraz przez model, zmień kształt wyników za pomocą
.squeeze(0), aby usunąć wymiar wsadu, i dodaj warstwęsoftmax(). - Zastosuj
argmax(), aby wybrać klasę z najwyższym prawdopodobieństwem.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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)