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

Generátor

Generátor sítě GAN přijímá na vstupu náhodný šumový vektor a produkuje vygenerovaný obrázek. Aby byla jeho architektura co nejznovupoužitelnější, předáš jak vstupní, tak výstupní tvar jako parametry modelu. Díky tomu budeš moci stejný model použít s různými velikostmi vstupního šumu i obrázků různých rozměrů.

torch.nn je již naimportovaný jako nn. Máš k dispozici také vlastní funkci gen_block(), která vrací blok skládající se z: lineární vrstvy, batch normalizace a aktivační funkce ReLU. Použiješ ji jako stavební prvek generátoru.

def gen_block(in_dim, out_dim):
    return nn.Sequential(
        nn.Linear(in_dim, out_dim),
        nn.BatchNorm1d(out_dim),
        nn.ReLU(inplace=True)
    )

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

Deep Learning pro obrázky s PyTorchem

Zobrazit kurz

Pokyny k cvičení

  • Definuj self.generator jako sekvenční model.
  • Za poslední gen_block přidej lineární vrstvu s odpovídající velikostí vstupu a výstupní velikostí out_dim.
  • Za lineární vrstvu přidej sigmoidovou aktivaci.
  • V metodě forward() předej vstup modelu přes self.generator.

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 Generator(nn.Module):
    def __init__(self, in_dim, out_dim):
        super(Generator, self).__init__()
        # Define generator block
        self.generator = ____(
            gen_block(in_dim, 256),
            gen_block(256, 512),
            gen_block(512, 1024),
          	# Add linear layer
            ____
            # Add activation
            ____
        )

    def forward(self, x):
      	# Pass input through generator
        return ____
Upravit a spustit kód