CommencerCommencer gratuitement

Construire un réseau U-Net : méthode directe

Une fois les couches encodeur et décodeur définies, vous pouvez maintenant implémenter la méthode d'forward() du réseau U-net. Les entrées ont déjà été transmises à l'encodeur pour vous. Cependant, il est nécessaire de définir le dernier bloc 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 de U-Net. Cela vous permettra d'obtenir des masques sémantiques au niveau des pixels.

Cet exercice fait partie du cours

Deep learning pour les images avec PyTorch

Afficher le cours

Instructions

  • Définissez le dernier bloc décodeur en utilisant l'torch.cat() e pour former la connexion de saut.

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