ComenzarEmpieza gratis

Construcción de una red U-Net: método directo

Una vez definidas las capas del codificador y el decodificador, ya puedes implementar el método « forward() » (envío de datos) de la red U-net. Las entradas ya se han pasado por el codificador por ti. Sin embargo, debes definir el último bloque decodificador.

El objetivo del decodificador es aumentar la resolución de los mapas de características para que su salida tenga la misma altura y anchura que la imagen de entrada de U-Net. Esto te permitirá obtener máscaras semánticas a nivel de píxel.

Este ejercicio forma parte del curso

Aprendizaje profundo para imágenes con PyTorch

Ver curso

Instrucciones del ejercicio

  • Define el último bloque decodificador utilizando un torch.cat() para formar la conexión de salto.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

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 y ejecutar código