ÎncepețiÎncepe gratuit

Discriminatorul

Acum că generatorul este definit, următorul pas în construirea unui GAN este să creezi discriminatorul. Acesta primește la intrare rezultatul generatorului și produce o predicție binară: intrarea este generată sau reală?

Vei găsi torch.nn deja importat ca nn. Ai, de asemenea, acces la o funcție personalizată disc_block(), care returnează un bloc format dintr-un strat liniar urmat de o activare LeakyReLU. O vei folosi ca element de bază pentru discriminator.

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

Acest exercițiu face parte din cursul

Deep Learning pentru imagini cu PyTorch

Vezi cursul

Instrucțiuni pentru exercițiu

  • Adaugă ultimul bloc al discriminatorului în model, cu dimensiunea de intrare corespunzătoare și o ieșire de 256.
  • După ultimul bloc al discriminatorului, adaugă un strat liniar care să mapeze ieșirea la dimensiunea 1.
  • Definește metoda forward() pentru a transmite imaginea de intrare prin blocul secvențial definit în __init__().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

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
        ____
Editează și rulează codul