Uruchamianie segmentacji semantycznej
Świetna robota przy projektowaniu U-Net! Do dyspozycji masz już wstępnie wytrenowany model, bardzo podobny do tego, który właśnie zbudowałeś. Model ten był trenowany na dużym zbiorze obrazów i zawiera kilka drobnych uzupełnień architektury, takich jak warstwy normalizacji wsadowej (batch norm).
Możesz utworzyć instancję modelu jako UNet() – spowoduje to załadowanie wstępnie wytrenowanych wag. Twoim zadaniem jest użycie go do wygenerowania masek segmentacji dla poniższego zdjęcia samochodu.

Image z biblioteki PIL jest już zaimportowany.
To ćwiczenie jest częścią kursu
Głębokie uczenie dla obrazów z PyTorch
Instrukcje do ćwiczenia
- Utwórz instancję
UNet()i przypisz ją do zmiennej o nazwiemodel. - Wczytaj obraz z pliku
car.jpgdo zmiennej o nazwieimage. - Wygeneruj maski segmentacji, przekazując obraz do modelu i stosując
squeeze(0)na wyniku.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Load model
model = ____
model.eval()
# Load and transform image
image = ____
transform = transforms.Compose([transforms.ToTensor()])
image_tensor = transform(image).unsqueeze(0)
# Predict segmentation mask
with torch.no_grad():
prediction = ____
# Display mask
plt.imshow(prediction[1, :, :])
plt.show()