執行語意分割
U-Net 設計得很好!現在你可以使用一個和你剛剛建立的模型非常相似、且已經預先訓練好的模型。這個模型在大量影像上完成訓練,並在架構中加入了一些小幅度的改動,例如 batch norm 層。
你可以用 UNet() 來建立這個模型,它會自動載入預先訓練的權重。你的任務是用它為下面這張汽車影像產生分割遮罩。

PIL 中的 Image 已為你匯入。
本練習屬於課程
使用 PyTorch 進行影像深度學習
練習說明
- 在名為
model的變數中建立UNet()。 - 將
car.jpg這張影像載入到名為image的變數。 - 將影像傳入模型並對輸出套用
squeeze(0),以產生分割遮罩。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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()