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
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
____