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

Дискримінатор

Після визначення генератора наступний крок у побудові GAN — створити дискримінатор. Він приймає на вхід вихід генератора та видає бінарне передбачення: вхід згенерований чи справжній?

Бібліотека torch.nn уже імпортована для вас як nn. Також доступна користувацька функція disc_block(), яка повертає блок із лінійного шару з подальшою активацією LeakyReLU. Ви використаєте її як будівельний блок для дискримінатора.

def disc_block(in_dim, out_dim):
    return nn.Sequential(
        nn.Linear(in_dim, out_dim),
        nn.LeakyReLU(0.2)
    )

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

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

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

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

  • Додайте до моделі останній блок дискримінатора з відповідним розміром входу та виходом 256.
  • Після останнього блока дискримінатора додайте лінійний шар, щоб відобразити вихід у розмір 1.
  • Визначте метод forward(), щоб пропустити вхідне зображення через послідовний блок, визначений у __init__().

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

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

class Discriminator(nn.Module):
    def __init__(self, im_dim):
        super(Discriminator, self).__init__()
        self.disc = nn.Sequential(
            disc_block(im_dim, 1024),
            disc_block(1024, 512),
            # Define last discriminator block
            ____,
            # Add a linear layer
            ____,
        )

    def forward(self, x):
        # Define the forward method
        ____
Редагувати та запускати код