Mulai sekarangMulai gratis

Discriminator Konvolusional

Dengan generator DCGAN siap, langkah terakhir sebelum Anda dapat melanjutkan ke pelatihan adalah mendefinisikan discriminator konvolusional.

torch.nn telah diimpor untuk Anda dengan alias biasanya. Untuk membangun discriminator konvolusional, Anda akan menggunakan fungsi kustom gc_disc_block() yang mengembalikan sebuah blok berisi konvolusi diikuti oleh batch norm dan aktivasi leaky ReLU. Anda dapat meninjau definisi dc_disc_block() di bawah ini.

def dc_disc_block(in_dim, out_dim, kernel_size, stride):
    return nn.Sequential(
        nn.Conv2d(in_dim, out_dim, kernel_size, stride=stride),
        nn.BatchNorm2d(out_dim),
        nn.LeakyReLU(0.2),
    )

Latihan ini merupakan bagian dari kursus

Deep Learning untuk Gambar dengan PyTorch

Lihat Kursus

Instruksi latihan

  • Tambahkan blok discriminator pertama menggunakan fungsi kustom dc_disc_block() dengan 3 peta fitur masukan dan 512 peta fitur keluaran.
  • Tambahkan layer konvolusional dengan ukuran keluaran 1.
  • Dalam metode forward(), teruskan masukan melalui blok sequential yang Anda definisikan dalam __init__().

Latihan interaktif langsung praktik

Cobalah latihan ini dengan melengkapi kode contoh ini.

class DCDiscriminator(nn.Module):
    def __init__(self, kernel_size=4, stride=2):
        super(DCDiscriminator, self).__init__()
        self.disc = nn.Sequential(
          	# Add first discriminator block
            dc_disc_block(3, 512, kernel_size, stride),
            dc_disc_block(512, 1024, kernel_size, stride),
          	# Add a convolution
            nn.Conv2d(1024, 1, kernel_size, stride=stride),
        )

    def forward(self, x):
        # Pass input through sequential block
        x = ____
        return x.view(len(x), -1)
Edit dan Jalankan Kode