MulaiMulai sekarang secara gratis

Discriminator

Dengan generator sudah didefinisikan, langkah berikutnya dalam membangun GAN adalah menyusun discriminator. Komponen ini mengambil keluaran dari generator sebagai masukan, lalu menghasilkan prediksi biner: apakah masukan tersebut hasil generasi atau nyata?

Anda akan menemukan torch.nn sudah diimpor untuk Anda sebagai nn. Anda juga dapat mengakses fungsi kustom disc_block() yang mengembalikan satu blok yang berisi layer linear diikuti aktivasi LeakyReLU. Anda akan menggunakannya sebagai blok penyusun untuk discriminator.

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

Latihan ini adalah bagian dari kursus

Deep Learning untuk Gambar dengan PyTorch

Lihat Kursus

Petunjuk latihan

  • Tambahkan blok discriminator terakhir ke model, dengan ukuran masukan yang sesuai dan keluaran 256.
  • Setelah blok discriminator terakhir, tambahkan layer linear untuk memetakan keluaran ke ukuran 1.
  • Definisikan metode forward() untuk meneruskan citra masukan melalui blok berurutan yang didefinisikan di __init__().

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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