LoslegenKostenlos loslegen

Aufbau eines U-Net: Definition der Schichten

In dieser und der nächsten Übung baust du eine U-Net-Architektur von Grund auf auf. Hier startest du mit dem Definieren der Methode „ __init__() “, wo du die Ebenen und Ebenenblöcke festlegst, die das Modell verwenden soll.

Der Encoder und die transponierte Faltung sind schon für dich definiert. Was noch übrig ist, sind die Faltungsblöcke des Decoders. Du musst die richtige Anzahl an Eingangs- und Ausgangskanälen an jeden von ihnen weitergeben und dabei die Überspringverbindungen berücksichtigen.

Der erste Block, „ dec1 “, nimmt als Eingabe die Verkettung der Ausgabe von „ upconv3 “ mit der Ausgabe von „ enc3 “. Die Ausgabe von „ dec1 “ sollte dann gleich der Ausgabe von „ enc3 “ sein. Kannst du alle fehlenden Eingangs- und Ausgangsgrößen eintragen?

Diese Übung ist Teil des Kurses

Deep Learning für Bilder mit PyTorch

Kurs anzeigen

Anleitung zur Übung

  • Definiere die drei Faltungsblöcke im Decoder, indem du die richtige Anzahl an Eingangs- und Ausgangskanälen an jeden von ihnen weitergibst.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

class UNet(nn.Module):
    def __init__(self, in_channels, out_channels):
        super(UNet, self).__init__()

        self.enc1 = self.conv_block(in_channels, 64)
        self.enc2 = self.conv_block(64, 128)
        self.enc3 = self.conv_block(128, 256)
        self.enc4 = self.conv_block(256, 512)

        self.pool = nn.MaxPool2d(kernel_size=2, stride=2)

        self.upconv3 = nn.ConvTranspose2d(512, 256, kernel_size=2, stride=2)
        self.upconv2 = nn.ConvTranspose2d(256, 128, kernel_size=2, stride=2)
        self.upconv1 = nn.ConvTranspose2d(128, 64, kernel_size=2, stride=2)
        
        # Define the decoder blocks
        self.dec1 = self.conv_block(____, ____)
        self.dec2 = self.conv_block(____, ____)
        self.dec3 = self.conv_block(____, ____)

        self.out = nn.Conv2d(64, out_channels, kernel_size=1)
Code bearbeiten und ausführen