CommencezCommencez gratuitement

Créer un U-Net : méthode forward

Avec les couches de l'encodeur et du 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.

Cette activité fait partie du cours

Deep Learning pour les images avec PyTorch

Voir le cours

Instructions de l’exercice

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

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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