MulaiMulai sekarang secara gratis

Generator

Generator GAN menerima vektor noise acak sebagai masukan dan menghasilkan sebuah gambar. Agar arsitekturnya lebih mudah digunakan kembali, Anda akan meneruskan bentuk masukan dan keluaran sebagai parameter ke model. Dengan cara ini, Anda dapat menggunakan model yang sama untuk berbagai ukuran noise masukan dan gambar dengan bentuk yang bervariasi.

Anda akan menemukan torch.nn sudah diimpor untuk Anda sebagai nn. Anda juga dapat mengakses fungsi kustom gen_block() yang mengembalikan satu blok berisi: layer linear, batch norm, dan aktivasi ReLU. Anda akan menggunakannya sebagai blok penyusun untuk generator.

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

Latihan ini adalah bagian dari kursus

Deep Learning untuk Gambar dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Definisikan self.generator sebagai model sekuensial.
  • Setelah gen_block terakhir, tambahkan layer linear dengan ukuran masukan yang sesuai dan ukuran keluaran out_dim.
  • Tambahkan aktivasi sigmoid setelah layer linear.
  • Dalam metode forward(), teruskan masukan model melalui self.generator.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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 ____
Edit dan Jalankan Kode