Začněte nyníZačněte zdarma

Diskriminátor

Když máš generátor hotový, dalším krokem při stavbě GANu je sestavení diskriminátoru. Ten přijímá výstup generátoru jako vstup a produkuje binární predikci: je vstup vygenerovaný, nebo skutečný?

torch.nn je už naimportovaný jako nn. Máš také k dispozici pomocnou funkci disc_block(), která vrací blok složený z lineární vrstvy a aktivační funkce LeakyReLU. Použij ji jako stavební kámen diskriminátoru.

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

Toto cvičení je součástí kurzu

Deep Learning pro obrázky s PyTorchem

Zobrazit kurz

Pokyny k cvičení

  • Přidej poslední blok diskriminátoru do modelu se správnou velikostí vstupu a výstupem 256.
  • Za posledním blokem diskriminátoru přidej lineární vrstvu, která namapuje výstup na velikost 1.
  • Definuj metodu forward() tak, aby vstupní obrázek prošel sekvenčním blokem definovaným v __init__().

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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
        ____
Upravit a spustit kód