ПочатиПочніть безкоштовно

Побудова U-Net: метод forward

Маючи визначені шари енкодера та декодера, ви можете реалізувати метод forward() для U-Net. Вхідні дані вже пропущено через енкодер. Однак вам потрібно визначити останній блок декодера.

Мета декодера — підвищити роздільність (upsample) карт ознак так, щоб його вихід мав ту саму висоту та ширину, що й вхідне зображення U‑Net. Це дасть змогу отримати семантичні маски на рівні пікселів.

Ця вправа є частиною курсу

Глибоке навчання для зображень із PyTorch

Переглянути курс

Інструкції до вправи

  • Визначте останній блок декодера, використовуючи torch.cat() для формування skip‑з'єднання.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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)
Редагувати та запускати код