U-Net kurma: forward yöntemi
Encoder ve decoder katmanları tanımlandığına göre, artık U-Net'in forward() yöntemini uygulayabilirsin. Girdiler senin için zaten encoder'dan geçirildi. Ancak son decoder bloğunu tanımlaman gerekiyor.
Decoder'ın amacı, çıktı U-Net'in girdi görüntüsüyle aynı yükseklik ve genişliğe sahip olacak şekilde öznitelik haritalarını yukarı örneklemektir. Bu sayede piksel düzeyinde semantik maskeler elde edebilirsin.
Bu egzersiz, kursun bir parçasıdır
PyTorch ile Görüntüler için Deep Learning
Egzersiz talimatları
- Atlama bağlantısını (skip connection) oluşturmak için
torch.cat()kullanarak son decoder bloğunu tanımla.
Uygulamalı etkileşimli egzersiz
Bu egzersizi bu örnek kodu tamamlayarak deneyin.
def forward(self, x):
x1 = self.enc1(x)
x2 = self.enc2(self.pool(x1))
x3 = self.enc3(self.pool(x2))
x4 = self.enc4(self.pool(x3))
x = self.upconv3(x4)
x = torch.cat([x, x3], dim=1)
x = self.dec1(x)
x = self.upconv2(x)
x = torch.cat([x, x2], dim=1)
x = self.dec2(x)
# Define the last decoder block with skip connections
x = ____
x = ____
x = ____
return self.out(x)