ComeçarComece de graça

Construindo uma U-Net: método direto

Com as camadas codificadora e descodificadora definidas, agora você pode implementar o método “ forward() ” da U-net. As entradas já foram passadas pelo codificador pra você. Mas você precisa definir o último bloco do decodificador.

O objetivo do decodificador é fazer o upsample dos mapas de recursos para que a saída tenha a mesma altura e largura da imagem de entrada da U-Net. Isso vai te ajudar a conseguir máscaras semânticas em nível de pixel.

Este exercício faz parte do curso

Aprendizado profundo para imagens com PyTorch

Ver curso

Instruções do exercício

  • Defina o último bloco decodificador, usando um torch.cat() e para formar a conexão de salto.

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

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)
Editar e executar o código