CommencerCommencer gratuitement

Construire un U-Net : méthode forward

Avec les couches d’encodeur et de décodeur définies, vous pouvez maintenant implémenter la méthode forward() du U-Net. Les entrées ont déjà été passées dans l’encodeur pour vous. Cependant, vous devez définir le dernier bloc du décodeur.

L’objectif du décodeur est de suréchantillonner les cartes de caractéristiques afin que sa sortie ait la même hauteur et la même largeur que l’image d’entrée du U-Net. Cela vous permettra d’obtenir des masques sémantiques au niveau des pixels.

Cet exercice fait partie du cours

Deep Learning pour l’image avec PyTorch

Afficher le cours

Instructions

  • Définissez le dernier bloc du décodeur, en utilisant torch.cat() pour créer la connexion de raccourci (skip connection).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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)
Modifier et exécuter le code